エラー監視「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の紹介でした。
無料で試すことができるので、皆さんも是非試してみてください。