LoginSignup
10
7

More than 5 years have passed since last update.

silkでお手軽プロファイリング

Posted at

はじめに

この記事は、Django Advent Calendar 2017 11日目の記事です。

silkとは

Silk is a live profiling and inspection tool for the Django framework. Silk intercepts and stores HTTP requests and database queries before presenting them in a user interface for further inspection:

Request/ResponseのログとSQLクエリのログ、cProfileでのプロファイリングを記録してくれるやつです。

AWESOME DJANGOの「Debugging」の項目にも載ってますね。

今年のEuroPythoでもsilkを紹介しているトークがありました。

silkのいいところ

  • django-debug-toolbarではできないAjaxでの非同期リクエストが計測可能
  • Dashboardから誰でも確認できる(閲覧権限も設定可能)
    • 計測結果はDBに保存されている
  • /healthへのRequestはログから除外するなどの設定が柔軟にできる
  • DBに保存したやつをリセットするコマンド(python manage.py silk_clear_request_log)が便利

Dashboardはこんな感じです。

1.png

2.png

5.png

おわりに

このsilkには、Django REST frameworkを使ったSPAなアプリケーションで、N+1クエリを撲滅するときにお世話になってます。

この手のツールではdjango-debug-toolbarが有名ですが、Ajaxリクエストに対応できなかったり、toolbarをぽちぽちクリックするのが面倒だったりするので、そんな時にはsilkを試してみるのがおすすめです。

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7