Sentryとは?エラー監視とトラッキングを解説
Sentryは、デバッグに必要なコンテキストとともに例外やクラッシュを捕捉する、エラー監視・アプリケーション監視プラットフォームです。
幅広いオブザーバビリティプラットフォームが全体の健全性を監視するのに対し、Sentryは明確な焦点から始まりました。本番環境でコードがスローするエラーを捕捉し、開発者がそれを修正するために必要なすべてを提供することです。パフォーマンス監視も含むように成長しましたが、エラートラッキングが依然としてその中核であり、最も際立った強みです。
単なるロギングではないエラートラッキング
Sentryは、未処理の例外やクラッシュが発生した瞬間に捕捉し、スタックトレース、ローカル変数、リクエストデータ、そして障害を取り巻くユーザーコンテキストを記録します。クラッシュを再構成しようとログをgrepする代わりに、構造化された実用的なエラーレポートが得られます。
グルーピングと重複排除
Sentryは、同じ根本的なバグの多数の発生を1つのissueにまとめ、それがどのくらいの頻度で起き、何人のユーザーに影響しているかを追跡します。これにより、同一エラーの氾濫を1つの優先度付け可能な項目に変え、チームは重複したノイズを追いかけるのではなく、最も影響の大きいバグを修正できます。
release トラッキング
Sentryは、バージョンとcommitの情報を用いて、各エラーをそれを導入したreleaseに関連付けます。deployの直後に新しいエラーが急増したとき、Sentryは正確なreleaseを、そして多くの場合は責任のあるcommitを指し示せるため、強力なdeploy後のセーフティネットになります。
CI/CDにおけるSentry
チームは、buildの際にsource mapやデバッグシンボルをアップロードし、releaseがデプロイされたときにSentryへ通知することで、Sentryをpipelineに組み込みます。この結びつきが整うと、deploy直後のエラー増加は責任のあるreleaseに自動的に帰属されます。これはまさに、canaryチェックやrollbackの判断が必要とするシグナルです。
エラーの先へ
Sentryはパフォーマンス監視とtracingへと拡大したため、遅いトランザクションを、それに関連するエラーと並べて表示できます。それでもなお、そのアイデンティティはエラー第一のままです。多くのチームにとって、releaseが何かを壊したことを迅速かつ詳細に知らせてくれるツールなのです。
重要なポイント
- Sentryは豊富なデバッグコンテキストとともに例外を捕捉します。
- 重複したエラーを優先度付け可能なissueにまとめます。
- release トラッキングが新しいエラーを、それを引き起こしたdeployに結びつけます。
- CI/CDに組み込むことで、deploy後のエラー急増を原因に帰属できます。