🔔
Cloud Run JobsのエラーをSlackに通知する
1. Slack 通知チャネルを準備する
- GCP コンソール → Notification channels を開く
- Slack セクションで Add new をクリックし、ワークスペースとチャンネルを認可・登録する
2. Logs Explorer でクエリを作成
-
GCP コンソール → Logs Explorer を開く
-
クエリ欄に以下を入力し、Run で結果を確認
resource.type="cloud_run_job" severity="ERROR" ( resource.labels.job_name="your-cloud-run-jobs-name" )
ORを使って、複数のCloud Run Jobsを選択することもできます
resource.type="cloud_run_job" severity="ERROR" ( resource.labels.job_name="your-cloud-run-jobs-name-1" OR resource.labels.job_name="your-cloud-run-jobs-name-2" )
自動生成ログを除外したい場合は、以下のようにlogNameを使って絞り込めます
resource.type="cloud_run_job" severity="ERROR" ( resource.labels.job_name="your-cloud-run-jobs-name" ) logName="projects/your-project-id/logs/run.googleapis.com%2Fstdout"
3. ログベースのアラートを作成
-
Logs Explorer の結果画面上部、操作 メニュー → ログアラートの作成 を選択
-
Alert details ペインで以下を設定:
項目 設定例 Alert Policy Name Your Alert Policy Name
Policy severity Error
Documentation - Markdown を選択
- Add documentation に以下を記述:*Job*: `${resource.labels.job_name}` *Error*: `${log.extracted_label.error_message}`
※
${log.extracted_label.error_message}
は次のステップで抽出するログ本文です -
Choose logs to include in the alert 画面で、先ほどのクエリがそのまま入っていることを確認
-
Extract log labels を使って、ログ本文を取り出すラベルを追加
ラベルを追加 ボタンをクリック
項目 設定内容 Display name error_message
Log field name textPayload
正規表現 ^(.*)$
(全文キャプチャ) -
Set notification frequency and autoclose duration画面で、通知の間隔とインシデントの自動クローズ期間を設定
項目 設定例 通知の間隔 5分 インシデントの自動クローズ期間 7日 -
Notification channels で先ほど作成した Slack チャネルを選択 → Save
Discussion