Skip to main content

概要

Datadog は、MCP Marketplace で利用できる公式の MCP 連携です。HTTPトランスポートを使用し、API key と Application key による認証を通じて、Devin が Datadog アカウントに直接アクセスして、ログ、メトリクス、モニター、トレースなどをクエリできるようにします。 接続後は、アラート調査の自動化を設定することもできます。軽量な webhook bridge を介して Datadog のアラートを Devin にルーティングすることで、インシデントが自動的にトリアージされます。

Datadog MCPを有効にする

1

MCP Marketplaceを開く

Settings > MCP Marketplace に移動し、Datadog を探します。
2

認証情報を設定する

Enable をクリックし、次に以下を行います。
  1. Datadog の site/region (例: datadoghq.com, datadoghq.eu) を選択します
  2. DD-API-KEYDD-APPLICATION-KEY を入力します
これらのキーを生成するには:
3

接続を確認する

Test listing tools をクリックして、Devin が Datadog アカウントに接続できることを確認します。テストが成功したら、連携を利用できます。

機能

Datadog MCP を有効にすると、Devin は任意のセッション内で次の操作を実行できます。
CapabilityDescription
エラーログをクエリするサービス、ステータス、時間範囲でログエントリを検索・絞り込みできます
メトリクスの時系列データを取得するダッシュボードや分析用にメトリクスのデータポイントを取得できます
アクティブなモニターを一覧表示する設定済みのすべてのモニターと現在のステータスを確認できます
トレースを検索するサービスをまたいだ分散トレースを検索できます
インシデントを管理するインシデントレコードの表示、作成、更新を行えます
ダッシュボードを管理するダッシュボード設定を一覧表示し、内容を確認できます
Datadog MCP を、サービスに関する Knowledge (通常時のしきい値、アーキテクチャ図、オンコール対応手順書など) と組み合わせることで、Devin はチームのコンテキストを踏まえて調査を開始できます。

自動アラート調査

対話型クエリに加えて、Datadog アラートを Devin に連携させることで、インシデントを自動的に調査できます。これは Webhook ブリッジ パターンを利用する方法です。小規模なサービスが Datadog Webhook のペイロードを受信し、Devin API を呼び出して調査セッションを開始します。
1

Webhook ブリッジサービスをデプロイする

Datadog Webhook を受信して Devin セッションを開始する軽量なサービスを作成します。サーバーレス関数 (AWS Lambda、Cloudflare Worker) または小規模なコンテナとしてデプロイしてください。
from flask import Flask, request, jsonify
import requests, os, hmac, hashlib

app = Flask(__name__)

def verify_signature(req):
    """Datadog webhook で設定した共有シークレットを使用してリクエストを検証する。"""
    signature = req.headers.get("X-Webhook-Secret", "")
    expected = os.environ["WEBHOOK_SECRET"]
    return hmac.compare_digest(signature, expected)

@app.route("/alert", methods=["POST"])
def handle_alert():
    if not verify_signature(request):
        return jsonify({"error": "bad signature"}), 401

    payload = request.json
    if not payload:
        return jsonify({"error": "no payload"}), 400

    # Datadog webhook ペイロードのフィールド
    alert_title = payload.get("title", "Unknown alert")
    tags = payload.get("tags", "")
    if isinstance(tags, str):
        tags = [t.strip() for t in tags.split(",")]
    service = next(
        (t.split(":", 1)[1] for t in tags if t.startswith("service:")),
        "unknown-service"
    )
    alert_url = payload.get("link", "")

    org_id = os.environ["DEVIN_ORG_ID"]
    response = requests.post(
        f"https://api.devin.ai/v3/organizations/{org_id}/sessions",
        headers={"Authorization": f"Bearer {os.environ['DEVIN_API_KEY']}"},
        json={
            "prompt": (
                f"Datadog alert fired: '{alert_title}'\n"
                f"Service: {service}\n"
                f"Alert link: {alert_url}\n\n"
                "Using the Datadog MCP:\n"
                "1. Pull error logs for this service from the past 30 min\n"
                "2. Identify the top error messages and stack traces\n"
                "3. Check if this correlates with a recent deploy\n"
                "4. If the root cause is clear, open a hotfix PR\n"
                "5. Post your findings to #incidents on Slack"
            ),
        }
    )
    return jsonify(response.json()), 200
Settings > Service Users で、ManageOrgSessions 権限を持つサービスユーザーを作成します。ブリッジサービス側で、API トークンを DEVIN_API_KEY、組織 ID を DEVIN_ORG_ID、共有シークレットを WEBHOOK_SECRET として保存します。次のステップでは、Datadog Webhook の Custom Headers にこの同じシークレットを設定します。
2

Datadog Webhook を設定する

  1. Datadog ダッシュボードで Integrations > Webhooks に移動します
  2. New Webhook をクリックし、URL をブリッジエンドポイント (例: https://your-bridge.example.com/alert) に設定します
  3. Custom Headers で、ブリッジサービスに WEBHOOK_SECRET として保存したものと同じ値の X-Webhook-Secret を追加します
  4. 任意の monitor の通知メッセージに @webhook-devin-bridge を追加します。Devin はその monitor が発報されるたびに調査を実行します
3

warning レベルの monitor でテストする

重要なアラートをルーティングする前に、まずは warning レベルまたは低重要度の monitor で、パイプライン全体が正しく動作することを確認します。Devin セッションが作成され、調査が正しく実行されることを確認できたら、より高い重要度の monitor に広げてください。
Devin API のリクエストボディで playbook_id を渡すと、調査内容をカスタマイズできます。!triage テンプレート playbook を複製し、自社のスタックに合わせて調査手順を調整してください。