[超簡単] SymfonyプロジェクトにSentryを導入する
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を導入すると幸せになれると思います
Discussion