GCP LoggingのアラートをSlackに通知する
個人開発でGCPを使う機会が増えている。
というのも、Dockerfileを用意すれば手軽にCloud Runでアプリケーションサーバを動かすことができ、アプリケーションエラー時には自動でError Reportingに記録されるので、AWSを使うよりも楽に環境構築ができるからである。
スマホからはCloud Consoleを使えばエラー発生時に通知を受け取ることもできる。
今回はエラー時にSlackに通知するようにしたかったので、対応方法を調べてやってみた。
まずはLoggingに記録されたログのうちエラーとなっているものを抽出するフィルタを作成する。
ログビューアのフィルタに以下を入力し、エラーログを確認したら「指標を作成」を実行。
resource.type="cloud_run_revision" textPayload:"Error:"
「ログベースの指標」 => 「User-defined Metrics」にある作成した指標の「︙」メニューから「指標に基づいて通知を作成する」を選択。
アラートポリシー設定ができるので「1分間に1回以上エラーログが記録されたら通知」というルールを作成した。
指標を作成しても過去のエラーログはグラフに反映されないので注意。
最初、うまく反映されていないのかと焦ったけど記録されない仕様とのこと。
ログベースの指標のデータは、指標が作成された後に受信したログエントリから取得されます。指標には、Logging にすでにあるログエントリのデータが入力されていません。
あとはSettingでSlack認証を行い通知チャンネルを設定すればエラー時にSlack通知が来るようになる。