【セントリー】

Sentry とは?

💡 エラーの見張り番!バグを見逃さずに原因まで即特定
📌 このページのポイント
Sentry のエラー検知フロー アプリケーション Sentry SDK を組み込み エラー発生! 自動送信 Sentry エラーを自動グループ化 スタックトレース解析 ユーザー環境を記録 即座通知 開発者に通知 Slack / メール PagerDuty 等 Sentryが自動収集する情報 スタックトレース エラーの発生箇所 ソースマップ対応 ユーザー環境 ブラウザ・OS デバイス情報 パン屑リスト エラー前の操作 ログを時系列で パフォーマンス API応答速度 ページ読み込み
Sentry のエラー検知フローのイメージ
ひよこ ひよこ

Sentryって何をしてくれるの?

ペンギン先生 ペンギン先生

アプリケーションで発生したエラーを自動的にキャッチして、開発者に通知してくれるサービスだよ。ユーザーが「画面が真っ白になった」と報告する前に、開発者側でエラーを把握して対応できるんだ

ひよこ ひよこ

console.logで十分じゃないの?

ペンギン先生 ペンギン先生

ローカル開発ならそれでもいいけど、本番環境ではユーザーのブラウザやスマホで起きるエラーは見えないよね。Sentryを入れておけば、本番で起きたエラーのスタックトレースブラウザの種類、OSのバージョン、どのページで起きたかまで全部自動で記録してくれるんだ

ひよこ ひよこ

どうやって導入するの?

ペンギン先生 ペンギン先生

SDKインストールして、初期化コードを数行書くだけだよ。たとえばJavaScriptならSentry.initにDSNを渡すだけで、未キャッチの例外が全部Sentryに送られるようになるんだ。導入の手軽さも人気の理由だよ

ひよこ ひよこ

エラーが大量に来たら大変じゃないの?

ペンギン先生 ペンギン先生

Sentryは同じエラーを自動でグループ化してくれるから、「このエラーが100回起きている」みたいにまとめて表示されるんだ。さらにエラーごとにステータス(未対応・対応中・解決済み)を管理できるから、GitHubのIssue管理みたいにチームで分担できるよ

ひよこ ひよこ

パフォーマンスモニタリングもできるって聞いたけど?

ペンギン先生 ペンギン先生

そうだよ。APIレスポンスタイムやページの読み込み速度も計測できるんだ。「この画面の表示が3秒以上かかっているユーザーが20%いる」みたいな情報が分かるから、パフォーマンス改善の優先度を決めるのに使えるよ

ひよこ ひよこ

Sentryを使いこなすコツってあるの?

ペンギン先生 ペンギン先生

ソースマップの設定が超重要だよ。本番のJavaScriptは圧縮されているから、エラーのスタックトレースが読めないんだけど、ソースマップをSentryにアップロードしておけば元のコードの行番号で表示されるんだ。あと、リリースバージョンをSentryに紐付けておくと「このバージョンのデプロイ後にエラーが急増した」というのが一目で分かるから、デプロイパイプラインに組み込むのがベストプラクティスだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Sentry」って出てきたら「アプリのエラーをリアルタイムで検知・通知してくれるサービス」と思えればだいたいOK!
📖 おまけ:英語の意味
「Sentry」 = 歩哨・見張り
💬 「Sentry」は英語で「歩哨(見張り番)」の意味で、アプリケーションを常に監視してエラーを見張るという役割を表しているんだよ
← 用語集にもどる