Datadog の Webhooks インテグレーションで外部サービスにアラート通知を API 連携してみた

Datadog の Webhooks インテグレーションで外部サービスにアラート通知を API 連携してみた

一例としてBacklog に連携してみました。
2026.01.15

こんにちは、なおにしです。

Datadog のWebhooks インテグレーションを使用する機会がありましたのでご紹介します。

はじめに

Datadog では豊富なインテグレーションが提供されており、モニタリングでイベントを検知した際の通知方法としてメール以外にも以下のようなサービス向けの通知用インテグレーションがあります。

  • Jira
  • PagerDuty
  • Slack
  • Microsoft Teams
  • ServiceNow

https://docs.datadoghq.com/ja/monitors/notify/

目的の通知先が既存の通知用インテグレーションとして存在していれば問題ありませんが、Zabbix や Backlog といった通知用インテグレーションが存在しないサービスや、スクラッチ開発のシステムに対して通知内容を API 連携したいといった需要もあるかと思います。

そのような場合には、通知用インテグレーションの一つである Webhooks を用いて API 連携を実現できます。

本記事では、 Datadog のモニタリングで検知したイベント内容を Webhooks インテグレーションを利用して Backlog のコメントに追加してみます。

やってみた

事前準備

Backlog のAPIキーを発行しておきます。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_1.jpg

Backlog のAPI仕様は公式ドキュメントをご確認ください。

https://developer.nulab.com/docs/backlog/auth/

https://developer.nulab.com/docs/backlog/api/2/add-comment/

Webhooks インテグレーションの設定

Datadog にログインして[Integrations] - [Integrations]を開き、検索ボックスでWebhooksを検索します。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_2.png

Webhooks インテグレーションを選択し、[Configure]-[Webhooks]タブで[New Webhook]ボタンを押下します。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_3.png

今回は以下のように設定しました。

  • Name: backlog-alert-notification

  • URL: https://your-space.backlog.jp/api/v2/issues/issueIdOrKey/comments?apiKey=$BACKLOG_API_KEY

    • your-space: BacklogのスペースID
    • issueIdOrKey: コメントを追加する課題のキー
    • $BACKLOG_API_KEYについては後述します
  • Payload: Template で [Blank]を選択し、以下を指定

    •   {
          "content": "## Datadogイベント通知\n### イベント名\n$EVENT_TITLE\n### ステータス\n$ALERT_STATUS\n### イベント内容\n$EVENT_MSG"
        }
      
  • Custom Headers: 指定無し

  • Encode as form: チェック無し

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_4.jpg

カスタム変数の設定

Backlog の APIキーは Webhooks インテグレーションのカスタム変数として保存します。カスタム変数の[hide from view]を有効化することで、Webhooks の設定画面を開いても APIキーを閲覧することができなくなるため、APIキーをセキュアに保管できます。

Webhooks インテグレーション設定画面の[Configure]-[Variables]タブで[New Variable]ボタンを押下し、以下を設定して[Save]します。

  • Name: BACKLOG_API_KEY
  • Value: Backlogで発行したAPIキー
  • hide from view: チェック

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_5.png

一度[hide from view]にチェックを入れて保存したカスタム変数は、[Edit]ボタンを押下しても内容を表示することはできません。

モニターの設定

今回は DynamoDB のリードキャパシティユニット(RCU)が閾値超過した時にアラートとして検知するように設定してみます。

[Monitoring]-[New Monitor] を開き、[Metric]を選択します。detection methodはデフォルトで選択されている[Threshold Alert]のまま進みます。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_6.png

以下のとおり設定します。name:attendance-tableは今回の検証に使用したDynamoDB テーブルに付与しているタグです。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_7.png

今回は通知内容を以下のとおりシンプルに定義します。先ほど設定した Webhooks と、Datadog のユーザーに紐づくメールアドレスを指定します。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_8.jpg

{{#is_alert}}といった構文については以下のドキュメントをご参照ください。今回の記載内容では、アラート状態になった場合と復旧した場合で通知内容を分けています。

https://docs.datadoghq.com/ja/monitors/notify/variables/

Notification OptionsについてはDefaultからHide Handlesに変更しました。Defaultを選択した場合、@webhook-backlog-alert-notification やメールアドレスなどの通知先の指定も通知内容に含まれるためです。詳細はこちらのドキュメントをご参照ください。

このまま[Create and Publish]ボタンを押下してモニターを作成しても良いのですが、その場合はすぐに監視が開始されることになります。このため、事前に通知のテストをする場合は、[Test Notifications]から通知の挙動を確認することが可能です。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_9.jpg

今回はアラートとその復旧だけが通知のルールで定義されているので、以下のとおり2項目しか選択することができません。この状態で[Run Test]を押下すると、Test notifications sentのメッセージが表示されます。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_10.png

アラート通知のメールは以下のとおりです。[TEST]という表記と、誰が通知をトリガーしたのか分かるようになっています。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_11.jpg

復旧通知の場合も同様です。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_12.jpg

続いて、Backlogにコメントされたアラート通知の内容は以下のとおりです。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_13.jpg

復旧通知は以下のとおりです。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_14.jpg

通知テストの結果が問題なければ[Create and Publish]ボタンを押下してモニターを作成します。なお、監視をまだ開始したくない場合は[Save as Draft]ボタンからドラフトモニターとして保存することも可能です。ただし、ドラフトモニターは半年間更新がないと期限切れになる(= 削除される)ようなので、放置していると意図せず消えてしまう可能性があることにご注意ください。

Drafts expire after 6 months without updates, but you can delete draft monitors at any time.

https://docs.datadoghq.com/monitors/draft/

実際に検知してみる

実際にDynamoDB で読み取り操作を実行してイベントを検知してみます。読み取り操作を行うことで、以下のとおり[Metrics]-[Explorer]からも値が増加していることが分かります。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_15.png

モニターでもアラート状態になりました。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_16.png

メールとBacklogにアラート通知がきました。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_17.jpg

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_18.png

DynamoDB の読み取り操作は数秒だけ行なっただけなので、すぐに復旧状態になりました。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_19.png

メールとBacklogに復旧通知がきました。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_20.jpg

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_21.png

補足:APIの実行が失敗した場合のトラブルシュート

今回の検証を行なっている際、Webhooks の設定が誤っていたため、モニタリングでのイベント検知によってAPIが実行されているはずでもBacklogのコメントには登録されていないという状況になりました。

このような場合、トラブルシュートのためには[Monitoring]-[Event Management]-[All Events] を開き、該当する時間やソースで対象イベントを絞り込むことで、エラーの原因を確認することが可能です。

20260115_naonishi_datadog-webhooks-integration-api-alert-notification_22.jpg

まとめ

Webhooks インテグレーションを使用することでモニターの通知をBacklog のコメントとしてAPIで登録することが確認できました。特に、モニターの設定時にテストイベントをすぐに試すことができる部分が便利だと感じました。
API連携用の仕組みを別途開発することなく、Backlog 以外にも様々なサービス/システムとの連携に役立つと思いますので、ぜひご活用ください。

本記事がどなたかのお役に立てれば幸いです。

この記事をシェアする

FacebookHatena blogX

関連記事