仮説の利用シナリオ
プロダクトの実行環境はGoogle Cloud Platform(GCP)。
通常稼働およびリリース直後の強制実行でCloud function実行エラーが発生したら自動Slack通知を飛ばす
上の自動Slack通知仕組み実現できるようGCPのドキュメントを調べて実現した。
実現できたGCPログとSlack連携仕組みの構成要素
。(Slack App)Google Cloud Monitoring,
。GCP Log-based metric,
。GCP Alert Policy
以降、step a b, c1, c2を順次に簡単なサンプル画像で紹介していきます
a. 対象SlackチャネルにGoogle Cloud Monitoringを設置
対象チャネルのChannel detailsをクリック
“Integrations”タブをクリック
Add appsを押下、“Google Cloud Monitoring”を選択する
Addをクリック、対象チャネルにGoogle Cloud MonitoringとのAppが追加されたことを確認
b. GCPにてLog based metric (User-defined)を新規作成
対象GCP環境で https://console.cloud.google.com/logs/metrics に遷移する
CREATE METRICを押下
次にLog metric nameとLog query(フィルター条件)を記入する。
例
CREATE METRICボタンを押下
MANAGE METRICSをクリックし、一つの新しいUser-defined metricが追加されたことを確認
c1.対象Slackチャネルを対象GCP環境に連携させる
対象環境のGCP MonitoringにてAlertingを選択する
EDIT NOTIFICATION CHANNELSタブに遷移し、Slackまで下方スクローンしてADD NEWをクリック
下記のポップアップが出て、そこで対象Slackチャネルの親Workspaceへのアクセス権限をGoogle Cloud Monitoringに渡す
Allowボタンをクリック
上で対象Slack Channel Name及びCloud Alerting Display Nameを記入する
例
SEND TEST NOTIFICATIONをクリックしてみて、対象チェネルにテストメッセージが送信されたか確認する
c2.GCP上ALERT POLICYをセットアップ
https://console.cloud.google.com/logs/metrics に戻る
b.で作成したLog-based metricの一番右側縦3点アイコンをクリックして "Create alert from metric"を選択する
Create Alerting Policy画面が表示され、その画面の左メニューから"Notifications and name"を選択する
次に、ステップc1.で設定されたSlackチャネルをNotification Channels項目に指定する
Alert policy nameを記入する
例
NEXTボタンをクリックして、デフォルト値のままで後続して設定を完了させる
上が完了後、GCP Log及びSlack連携が出来上がって、意図した挙動がうまく行くかテスト開始いただけます
:)
以上。