ブラウザー上で各リクエストとレスポンスのデバッグ情報を表示する、設定可能なDjangoパネル集です。
jazzband/django-silk
リクエストやSQLクエリ、コードブロックを記録し、遅い箇所を特定できるDjango向けのリアルタイムプロファイラー兼インスペクションUI。
- スター
- 5,005
- フォーク
- 381
- 未解決の Issue
- 132
- 最終コミット
- 4 日前
これは何?
Silkは、Djangoアプリケーション向けのプロファイリングツールです。ミドルウェアが各HTTPリクエストとレスポンスを捕捉し、SQL実行をラップして、リクエストごとに発生したデータベースクエリを記録します。データは設定したデータベースに保存され、組み込みのWeb UI(/silk/)に表示されます。ここではリクエストを絞り込み、処理時間、クエリ数、クエリ時間、ヘッダー、本文を確認できます。
より詳細な分析では、リクエストごとにPythonのcProfileを実行し、その結果をUIで確認できます。オプションでコールグラフを表示したり、snakevizなどのツールで使える.profファイルをダウンロードしたりすることも可能です。デコレーターとコンテキストマネージャーを使えば、特定の関数やコードブロックをプロファイリングできます。また、動的プロファイリングを使うと、編集できないモジュール内の関数もラップできます。記録したリクエストを再実行するためのcurlコマンドやPythonコードも生成できます。
Djangoの認証と権限でアクセスを制限でき、パスワードやトークンなどの機密キーはマスクされます。記録対象は割合、ステータスコード、パスで絞り込めます。また、古い記録はガベージコレクションで削除できます。
主な機能
- 01Djangoミドルウェアを通じて、リクエスト、レスポンス、ヘッダー、本文を記録します。
- 02リクエストごとに、実行時間やスタックトレースを含むSQLクエリを追跡します。
- 03リクエストごとにcProfileを実行し、コールグラフの表示や.profファイルのダウンロードが可能です。
- 04デコレーターまたはコンテキストマネージャーを使って、特定の関数やコードブロックをプロファイリングします。
- 05記録したリクエストを再実行するためのcurlコマンドとPythonコードを生成します。
- 06認証、権限設定、機密キーのマスキングに対応しています。
ユースケース
- 遅いDjangoビューで発生しているN+1クエリの問題を見つける。
- 開発環境やステージング環境で、特定の関数やビジネスロジックのブロックをプロファイリングする。
- 指定したステータスコードのリクエストだけを記録し、本番環境のエラーを調査する。
- 再現可能なリクエストをcurlコマンドやPythonのテスト用コードとして共有する。
収録されている特集
トピック
よくある質問
- django-silk とは?
- リクエストやSQLクエリ、コードブロックを記録し、遅い箇所を特定できるDjango向けのリアルタイムプロファイラー兼インスペクションUI。 Silkは、Djangoアプリケーション向けのプロファイリングツールです。ミドルウェアが各HTTPリクエストとレスポンスを捕捉し、SQL実行をラップして、リクエストごとに発生したデータベースクエリを記録します。データは設定したデータベースに保存され、組み込みのWeb UI(/silk/)に表示されます。ここではリクエストを絞り込み、処理時間、クエリ数、クエリ時間、ヘッダー、本文を確認できます。
- django-silk は無料で使えますか?ライセンスは?
- django-silk は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- django-silk は今もメンテナンスされていますか?
- 活発にメンテナンス中。django-silk の最終コミットは 2026年11月3日 です。
- django-silk は何に使えますか?
- 遅いDjangoビューで発生しているN+1クエリの問題を見つける。 開発環境やステージング環境で、特定の関数やビジネスロジックのブロックをプロファイリングする。 指定したステータスコードのリクエストだけを記録し、本番環境のエラーを調査する。 再現可能なリクエストをcurlコマンドやPythonのテスト用コードとして共有する。
- django-silk はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/jazzband/django-silk
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
稼働中のアプリケーションからCPU、メモリ、I/Oのプロファイルを継続的に収集し、遅いコードの原因を行単位で特定できるプロファイリングプラットフォームです。
Pythonコード、ネイティブ拡張、インタープリターのメモリ割り当てを追跡し、複数形式のレポートを生成するPython用メモリプロファイラーです。
profile.proto形式のプロファイリングデータを可視化・分析するコマンドラインツール兼Webツール。
関数呼び出しを記録し、コードの実行をインタラクティブなタイムラインで可視化する、低オーバーヘッドのPythonトレーサーです。
Python関数の各ソース行にかかる時間を表示する、行単位のプロファイラー。