【Senryでエラー監視】Pythonのエラーを確認してみる
はじめに
本記事では、Sentryをとりあえず使ってみようと思います。
今回利用するSentryは、ローカルにDocker Composeで構築したものを利用します。Sentryとは何か、使い始めるまでの準備については下記で紹介しています。
【Sentry】どんなものか?使えるようにするには?
はじめに Sentryについて**どんなものかざっくりと解説し、実際に使えるようになるまでの準備
また、今回はFlaskアプリからエラーを発生させて、そのエラーをSentryから確認するので、Flask用のSDKを利用します。Flaskの基礎については下記で紹介しています。
いまさらFlask超入門
はじめに Flaskについて、これから使い始める人向けに超簡単なアプリを作成して、実行してみるま
プロジェクト作成
まずはFlaskのエラーを受けるプロジェクトを作成します。
Sentryの管理画面の「Create Project」からプロジェクトを作成します。
利用する言語やフレームワークを選択します。今回はFlaskを利用するのでFlaskを選択します。
プロジェクト名も設定します。
プロジェクトが作成されると言語やフレームワークに応じた簡単なドキュメントが表示されます。
SDKインストール
次に、Flask用のSentry SDKをインストールします。
1pip install --upgrade 'sentry-sdk[flask]'
アプリ作成
Flaskアプリを作成します。
1import sentry_sdk
2from flask import Flask
3from sentry_sdk.integrations.flask import FlaskIntegration
4
5app = Flask(__name__)
6
7sentry_sdk.init(
8 # プロジェクトのDSNに変更する
9 dsn="http://61beb34072464ec2be4e8ab56adff1af@localhost:9000/2",
10 integrations=[FlaskIntegration()],
11 traces_sample_rate=1.0,
12)
13
14app = Flask(__name__)
15
16
17@app.route('/debug-sentry')
18def trigger_error():
19 division_by_zero = 1 / 0
プロジェクトのDSNは対象のプロジェクトの設定画面から確認できます。
Flaskアプリを実行します。
1export FLASK_APP=sentry-sample
2flask run
エラー確認
SentryのプロジェクトとFlaskアプリの準備ができたら、実際にエラーを発生させてSentryから確認していきます。
http://localhost:5000/debug-sentry
にアクセスすることで「ZeroDivisionError
」を発生させることができます。
Sentryのプロジェクト管理画面から発生したエラーを確認することができます。
詳細を見てみるとエラー内容の詳細がわかります。
例えば、エラーが発生したコードもわかるようになっています。
参考
- Flask | Sentry Documentation
- getsentry/self-hosted: Sentry, feature-complete and packaged up for low-volume deployments and proofs-of-concept