エラー監視「Sentry」について

2022 年 7 月 5 日 by bb

こんにちは。

本日はPythonのエラー監視に便利な「Sentry」について紹介します。
SentryとはWebアプリケーションのエラー監視に便利なツールです。
開発中のWebアプリケーションに簡単な設定をするだけで、
ブラウザ上からエラーを確認することが可能になります。

利用手順

①Sentryの公式サイトからアカウント登録
https://sentry.io/welcome/


②ブラウザ上でSentryの設定を以下の通り進める
・ログイン後、「Install Sentry」からプロジェクトのプラットフォームを選択(今回はDjangoを選択)
 使用できるプラットフォームは以下の通りで、広範囲をカバーしています。

 ・使用するインテグレーションの選択
 使用できるインテグレーションの一例は以下の通りです。

以上の設定を完了すると、対象プロジェクトへのSentryの設定方法が表示されるのでその通りに設定します。
今回はDjangoを選択したので、以下の通り設定します。
①以下コマンドで対象環境にSentryをインストールする

pip install --upgrade sentry-sdk

②Djangoのsettings.pyに以下を記載する

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn="https://xxxxxxxxxxxxxxxxxxxxxx.ingest.sentry.io/xxxxxx", # この部分は使用者によって変化します
    integrations=[
        DjangoIntegration(),
    ],

    # Set traces_sample_rate to 1.0 to capture 100%
    # of transactions for performance monitoring.
    # We recommend adjusting this value in production.
    traces_sample_rate=1.0,

    # If you wish to associate users to errors (assuming you are using
    # django.contrib.auth) you may enable sending PII data.
    send_default_pii=True
)


設定は以上で完了です。
動作確認をするために、Sentryから提供される動作確認方法を試してみます。
最上位のurls.pyに以下を追加して、エラーを意図的に発生させる画面を作ります。

def trigger_error(request):
    division_by_zero = 1 / 0

urlpatterns = [
    path('sentry-debug/', trigger_error),
    #...
]

次に追加した画面にブラウザで遷移します。
0除算のエラーが画面に表示されます。(以下は開発用のデバッグ画面です。)


その後、Sentryにブラウザでアクセスするとエラー情報が確認できます。
この中にはエラー発生箇所だけでなく、リクエストの中身やブラウザの情報など、
エラー発生時の詳細な情報を確認することができます。

以上でSentryの初期設定は完了です!


Sentryでは発生したエラーの確認だけでなく、エラーログの収集も可能です。
これにより、テキストファイルのログを文字列検索しながらエラー箇所を探す代わりに
ブラウザ上から該当エラーの情報を簡単に確認することができます。

他には、発生したエラーをエラーレベルに応じて
SlackやTeamsなどの連携ツールに送信することも可能です。

以上がSentryの紹介でした。
無料で試すことができるので、皆さんも是非試してみてください。

TrackBack