Laravel上でREST APIを実行しているのですがエラーが起こるとユーザには何が原因でエラーになったのかがわかりにくくなります。
なので、Laravel側でFatalエラーが発生した際に開発者側にアラート通知をする仕組みが欲しいなと思ったので実装してみました。
Laravelのログ機能を利用
こちらの記事を参考にしてLarvel側の設定を行いました。
Laravelの.envファイルに以下を記述
.env
LOG_CHANNEL=slack
LOG_LEVEL=error
LOG_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxxxxxxx/xxxxxxxxxxxxxxx
LOG_SLACK_WEBHOOK_URLのアドレスはSlack側で設定を行なって取得します。
Slack側の設定
Slack Help Centerに記述があります。
- Slack上で通知を受け取りたいワークスペースを作成
- Slack APIで新しいAPIを作成
- Slack APIのAppHomeメニューを開き、App Display Nameを設定
- 上記記事に従ってWebHookを設定
App Display Nameの設定についてはSlack Help Centerに記載がありませんが、行わないとエラーになりますのでご注意ください
生成されたWebHookURLをLaravelの.envに設定してください。
まとめ
今回はエラーレベルをerrorにしましたが、この辺のレベルは要件によって変更が必要ですね。
今後、他のメトリクス監視の通知もSlackに送るように設定してみたいと思います。