Data FusionでのSlackエラー通知設定について
皆さんCloud Data Fusion使ってますか?GUIベースでパイプライン構築が出来て便利ですよね。
コードじゃないと安心できない人のためにちゃんと設定はExportできるところもまた良いですよね。
しかしパイプラインに監視は付きものです。パイプラインが正常に稼働しなかった場合は勿論ですが、正常に稼働し終わったタイミングを知りたいユースケースもあるのではないでしょうか。
現在テスト的に運用しているData Fusionでは基本的に失敗時は必ずSlackへ通知を送るようにしています。
まだまだニッチな領域なのか、調べてもそこまでたくさん資料が出てこなかったので、その設定方法についてメモしていきます。
前準備
前準備として、SlackのWebhook URLが必要となりますのでその取得を行います。
SlackのWebhook URLは、こちらのページより取得出来ます。
Data Fusionの通知設定
準備が整ったらData Fusionに取得したSlack Webhook URLの設定を行います。
Data Fusionのパイプラインからの通知は「Pipeline alert」にて行えます。
具体的にはData Fusionのパイプライン設定画面で、Configureから「Pipeline alert」を選択し、「+」ボタンでアラートを追加出来ます。
ここでアラートの種類を選択することになります。メール送信などもありますが、Slack連携の場合は「Make HTTP Call」を選択します。
HTTP Callback Propertiesの画面が開くので、
-
Run Condition: failure / success / completionを選択します。失敗時のみに絞りたい場合はfailureです。
-
URL: SlackのWebhook URLを入力します。
-
HTTP Method: POSTでOKです。
-
Request Body: SlackのWebhookに対して送るPayloadのJSONをそのまま記入します。特にエスケープ等は不要でした。
- 例:
{”channel”: “#Slackチャンネル名”, “username”: “Data Fusion”, “text”: “エラーが発生しました”}
- 例:
通知のテスト
正しくSlackへ通知がいくよう設定が行えているかを確認するためには、 BigQuery Execute
単体を作るのが手っ取り早いと思います。
「Conditions and Actions」から、「BigQuery Execute」を選択します
中身は SELECT 1
とだけでも設定しておくと良いかと思います。
これで、Run Conditionを「completion」として実際にちゃんと通知がいくかを確認します。(実際のPipelineではRun Conditionをfailureとします)
実際にData Fusionをデプロイして実行すると…
問題無くエラー通知が飛びました!これで設定完了です。
まとめ
Data FusionでのSlackエラー通知を行う方法についてまとめてみました。
もちろん失敗時のみでなく成功時にも通知を行うことは出来るので、様々なユースケースに合わせて使える設定になっているかと思います。
やっぱりこのあたりの通知はSlackと連携して実施するのが一番ですね。まあ、もっとも、エラー通知ほど来て欲しくないものはないわけですが…