generated at
Sentry
Sentryは、エラートラッキングサービスです。

2019年頃にパフォーマンス監視機能も追加されました。
2024年には、パフォーマンス情報の収集を分散トレース情報の収集として扱い始めました。

Sentryの目的
アプリケーションの動作をSentryサーバーに送信してエラー時に通知を行う
エラー判定
ログ出力でログレベルがWARNINGやERRORの場合
プログラムで例外が発生しexceptされなかった場合
アプリケーションの動作をサンプリングしてSentryサーバーに送信
サンプリング
クライアント側でサンプリングレートを設定

Sentryのエラートラッキング
利用するメリット
例外が発生したときにすぐに気づける(チャット通知)
同じエラーは複数回通知されないので、通知で埋もれることがない
別のエラーを見逃さない(別の通知がくるし、埋もれない)
ログが発生したときの関数呼び出し履歴が分かる、クライアントの種別が分かる
Sentry上でエラーを見ると
そのログが出力されたときのPythonのトレースバック(コールスタック)
ブラウザの種別など
ログに出力していない情報まで閲覧できる
コスト
設定は簡単 -> sentry-sdk
サービス利用料 https://sentry.io/pricing/
Developer Plan (無料)では5K通知/月まで
Team Plan ($26/月)では50K通知/月まで ( +50K/$14, +150K/$29 )

別ページへ分割

Sentryとログサーバーとの違い
Sentryは、サーバー管理者がトラブル対応時にほしい機能を提供してくれている
同じエラーが何回連続で発生しても、通知は1種類につき1回だけという仕組み
あるエラーを見ると、同じエラーがいつどのくらい発生したかを確認できる
別のエラーは初回発生時にちゃんと通知が来る
重要な通知が多数の通知に埋もれることが無く、確実にどんなエラーが起こっているかを把握できる
1万回の優先度の低いエラー通知の中に、数回の重要な(支払系などの)エラー通知がまざっていても見逃さずに対処できる。

Sentryのその他の気になる機能
リリース情報をSentryサーバーに伝える
sentry-cli コマンドを使うと、git commit hashも一緒に送られる
エラー発生時にどのコミットが怪しいか判別してくれる(リポジトリ連携が必要)

Sensitive Data の扱い
Sentryサーバー側でセンシティブなデータをデフォルトでフィルタリングしてくれる
フォームから入力されたパスワードやHTTP Headerのトークンなど
ユーザー情報などを送りたいのでsentry-sdk側で send-default-pii をTrueにしても、Sentry側でよしなにできる