Sentry
https://sentry-brand.storage.googleapis.com/sentry-logo-black.png
2024年には、パフォーマンス情報の収集を分散トレース情報の収集として扱い始めました。 Sentryの目的
アプリケーションの動作をSentryサーバーに送信してエラー時に通知を行う
エラー判定
ログ出力でログレベルがWARNINGやERRORの場合
プログラムで例外が発生しexceptされなかった場合
アプリケーションの動作をサンプリングしてSentryサーバーに送信
サンプリング
クライアント側でサンプリングレートを設定
Sentryのエラートラッキング
利用するメリット
例外が発生したときにすぐに気づける(チャット通知)
同じエラーは複数回通知されないので、通知で埋もれることがない
別のエラーを見逃さない(別の通知がくるし、埋もれない)
ログが発生したときの関数呼び出し履歴が分かる、クライアントの種別が分かる
Sentry上でエラーを見ると
そのログが出力されたときのPythonのトレースバック(コールスタック) ブラウザの種別など
ログに出力していない情報まで閲覧できる
コスト
Developer Plan (無料)では5K通知/月まで
Team Plan ($26/月)では50K通知/月まで ( +50K/$14, +150K/$29 )
別ページへ分割
Sentryは、サーバー管理者がトラブル対応時にほしい機能を提供してくれている
同じエラーが何回連続で発生しても、通知は1種類につき1回だけという仕組み
あるエラーを見ると、同じエラーがいつどのくらい発生したかを確認できる
別のエラーは初回発生時にちゃんと通知が来る
重要な通知が多数の通知に埋もれることが無く、確実にどんなエラーが起こっているかを把握できる
1万回の優先度の低いエラー通知の中に、数回の重要な(支払系などの)エラー通知がまざっていても見逃さずに対処できる。
Sentryのその他の気になる機能
リリース情報をSentryサーバーに伝える
sentry-cli コマンドを使うと、git commit hashも一緒に送られる
エラー発生時にどのコミットが怪しいか判別してくれる(リポジトリ連携が必要)
Sensitive Data の扱い
Sentryサーバー側でセンシティブなデータをデフォルトでフィルタリングしてくれる
フォームから入力されたパスワードやHTTP Headerのトークンなど
ユーザー情報などを送りたいのでsentry-sdk側でsend-default-pii をTrueにしても、Sentry側でよしなにできる