🎻

[超簡単] SymfonyプロジェクトにSentryを導入する

2020/06/23に公開

Sentryとは

Sentry は、Webアプリケーションのエラー監視をしてくれるWebサービスです。

めちゃくちゃ簡単に導入できて、基本的な機能なら 無料で使える ので、「エラー監視とかやりたいけどやれてないな〜」という人は今すぐすべてのプロジェクトに導入したほうがいいです!

Symfonyに導入する手順

例としてSymfonyのプロジェクトにSentryを導入する手順を具体的に紹介したいと思います。

1. Sentryにアカウントを作る

まず、こちら からSentryにアカウントを作ります。

2. プロジェクトを作る

ログインしたら、サイドメニューの Projects を開いて、画面右上の Create Project からプロジェクト作成画面へ行きます。

プロジェクト作成画面では、対応している言語やフレームワークを選択できるので、今回はSymfonyを選択して Create Project をクリックします。

プロジェクトが作成されると以下のようなインストールガイドの画面が表示されます。

3. 公式のSentryBundleをSymfonyプロジェクトにインストール

インストールガイドで言われているとおり sentry/sentry-symfony をインストールします。

$ composer require sentry/sentry-symfony

このライブラリはSymfonyバンドルになっていて、インストールすると

  • ライブラリのインストール
  • bundles.php へのバンドルの登録
  • 設定に必要な環境変数の .env への追記
  • config/packages/sentry.yaml の生成

まで一気に自動で行われます。

4. SentryBundleを設定

最後に .env.local などで実際にSentryBundleに渡す値を設定します。

Sentryのサイトでプロジェクト作成直後に表示されたインストールガイドにあった

sentry:
    dsn: "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@xxxxxxx.ingest.sentry.io/xxxxxxx"

これの値の部分をコピーして、 .env.local

SENTRY_DSN=https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@xxxxxxx.ingest.sentry.io/xxxxxxx

という感じで設定すればOKです👌

5. エラーが起こるとSentry上に記録される

セットアップ済みのプロジェクトが実行中に例外を吐いて終了したりすると、Sentryのサイドメニューの Issues にエラーログが詳細に記録されます。

また、エラーが発生したタイミングでメール通知もされます。

6. メール通知を設定

メニューの Alerts > Create Alert Rule > プロジェクトを選択、でアラート作成画面へ行き、以下のような感じで設定すればエラーの発生をメールで通知させることができます。

設定してある状態でエラーが発生すると以下のようなメールが届いて即座に気づくことができます。

何もお見せできないのでモザイクだらけですが、雰囲気だけでも伝われば幸いです😅

特定の例外を報告しないようにする

おまけです。

デフォルトの設定だとすべての例外が報告されますが、404や403など400番代のエラーに相当する例外はいちいち報告してくれなくてもいい、みたいなこともあると思います。

そんなときは、報告対象外にする例外クラスを設定ファイルで指定できます。

404と403なら(多くの場合)以下の2つを対象外にしておけば通知されないようになるかと思います。

sentry:
    dsn: '%env(SENTRY_DSN)%'
+   options:
+       excluded_exceptions:
+           - Symfony\Component\Security\Core\Exception\AccessDeniedException
+           - Symfony\Component\HttpKernel\Exception\NotFoundHttpException

まとめ

  • Sentry は導入が超簡単かつ無料なので、エラー監視を導入していないWebアプリケーションがあるなら今すぐSentryを導入すると幸せになれると思います
GitHubで編集を提案

Discussion