8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Sentryを使ってエラー監視

Posted at

新しい話題ではないですが、エラーログのトラッキングサービスにSentryというものがあるので使ってみました。導入手順をまとめておきます。

環境

Laravel5.5

Sentryの仕組み

Sentryはアプリケーションサーバに出力されたログファイルを監視するのではなく、アプリケーション側にSentryにエラー情報を送信する仕組みを組み込む方式を取っています。
そのためエラーの情報だけがSentryに蓄積され、それらの傾向を見たり対策を立てることができます。
issueとしてSentry上でタスクとして管理することもできるため、エラー専用のタスク管理ツールとしても活用できます。

ただし、無料プランではプロジェクトの中にメンバーを追加できないため共有アカウントを使う等しないと複数人での利用は難しいです。本格的に使うなら有料プランが必須になりそうでした。

導入方法

sign up後、プロジェクトにLaravelを選んで作成します。
スクリーンショット 2019-05-06 19.42.44.png

すると導入に必要なコードが出力されるのでそれに沿って作業を進めます。

composer require sentry/sentry-laravel:1.0.2

次にエラー内容を送信する処理を書きます。

App\Exceptions\Handler.php
public function report(Exception $exception)
{
    if (app()->bound('sentry') && $this->shouldReport($exception)){
        app('sentry')->captureException($exception);
    }

    parent::report($exception);
}    

次に、Sentryの設定ファイル下記コマンドで生成します。

php artisan vendor:publish --provider="Sentry\Laravel\ServiceProvider"

最後に、.envにURLを指定します。

SENTRY_LARAVEL_DSN=https://XXXXXXXXXXXXXX

これで設定は完了です。

動作

動作確認のため、エラーを起こして見るとイベントが登録されているはずです。

メソッド名をちょっと変更して存在しないメソッド呼び出しにしたときのエラーです。
スクリーンショット 2019-05-06 22.56.55.png

エラーの箇所と内容をわかりやすく表示してくれています。

stacktraceもしっかり表示してくれます。
スクリーンショット 2019-05-06 23.02.00.png

そのほかにもリクエスト送信元の情報もあり

  • リクエスト元のipアドレス
  • 閲覧に使われたブラウザ
  • 稼働中のPHPのバージョン
  • 動作環境(stgかproductionか)

などを一箇所で見ることができます。
テキストログを眺めるよりは圧倒的に見やすく、検証の効率は良さそうです。

通知

Slackとの連携機能も可能です。
自分が作ったグループの設定ページからIntegrationメニューを選んだ先で選択可能です。

スクリーンショット 2019-05-06 23.10.22.png

ここで設定したら次いはAlertの設定です。
Laravelのプロジェクトページに移動した後のメニュー画面からAlertの設定画面に行きます。

Alertは基準となるイベントと閾値を選択することで設定できます。

とにかく何かエラーが起きたら通知して見るためには

スクリーンショット 2019-05-06 23.14.39.png

のように設定すれば良いです。これはerrorかfatalなログが送られてきたら発火する設定です。

また、この下にslackの通知設定も出てくるので、そこで通知したいグループを指定したらOKです。

通知内容はTagに含まれる内容であればカンマ区切りで指定可能です。
例えば、

environment,level,url,transaction

など。取得できる内容はエラー詳細ページにTagの一覧は載ってるのでそこから選べば良いです。

最後に

無料枠で試しましたが、Sentryはtextログと比べてエラーの調査をしやすくなるだろうなと思いました。有料版でしか使えない機能もたくさんあるので使える機会があったらいいなあと思った次第です。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?