フロントエンドのエラー監視Sentyを導入した話 (original) (raw)

こんにちは。クルーズ株式会社CTOの鈴木です。

SHOPLISTでは、2021年の10月ごろからフロンエンドのエラー監視としてSentryを導入してしています。

導入から6ヶ月が経ち、運用にも乗ってきたので事例として共有したいと思います。

JSのエラーが原因で立て続けに問題が起こった

当時、特定ブラウザだけボタンを押しても動作しない問題や、サービスとしては正常に動くんだけど効果測定用に送っているイベントが発火しない問題が立て続けに起き、原因の特定と修正に長いものだと3営業日かかってしまうことがありました。

この件で問題だと感じた点は以下です。

上記問題を解決する方法の一つとして、以前にAWS Fargate上に構築したコンテナ上で動作するLaravelのエラー送信で使っているSentryでJSのエラー監視を行うことにしました。

Sentryの導入

導入はドキュメントの通りに行い、非常に容易に出来ました。

検知されたエラーはIssuesという形でチケットとして上がってくるので、運用としては

  1. 検知されたエラーはフロントエンドの専門職種長が対処が必要かどうかをまず判断する。
  2. 対処が必要なものは担当者をアサインして、リファクタリングタスク化する
  3. アサインされた担当者は修正し、直近のリリースに混ぜ込んで修正リリースする。

という形で行っています。

またエラー内容や件数といった情報は、エンジニア全員の参加する会議体の中で共有し、今どのような問題は発生しているかについてエンジニア全員が知ることができるようにしています。興味のある人はSenty上から詳細レポートを見れるよう、アカウントもエンジニア全員に配布しています。

Sentry以外で実施していること

実際にサービス側で発生していたエラーの中では、開発環境でも起こっていたけど気づかずにリリースされてしまったものも含まれていたため、eslintも合わせて導入しています。

これは各個人の開発環境と、GitLabに連携したJenkinsのCI/CD環境で動作しており、前者はデプロイ前にエラーが出ていないことの確認に、後者はエンジニア全体に共有するためノレポーティングとして活用しています。

なので、リリース前にエラーを最小にする+サービス上で発生していたエラーを早期検知できるようにするという2段構えでJSエラーへの対応を行なっています

運用していてよかったこと・課題感

ざっくりとですが、

よかったこと

課題感

です。

自分自身がサーバの経験の方が長く、フロントエンド分野について全てが把握できているわけではないため、技術寄り視点というよりは管理寄りな視点での感想となってしまいましたが上記のように感じています。

その他、エラー検知だけでなくパフォーマンス計測にもSentryを活用すべく、Performance Monitoring の運用も並行して進めていてその内容についても改めて共有します。