Skip to main content

概述

Datadog 是 MCP Marketplace 中提供的官方 MCP 集成。它采用 HTTP 传输,并使用 API key 和 Application key 进行身份验证,让 Devin 可以直接访问你的 Datadog 账户,查询日志、指标、监控项、追踪等数据。 连接后,你还可以设置自动化告警排查——通过轻量级 webhook 桥将 Datadog 告警路由到 Devin,从而自动完成事件分诊。

启用 Datadog MCP

1

打开 MCP Marketplace

前往 Settings > MCP Marketplace,找到 Datadog
2

配置你的凭据

点击 Enable,然后:
  1. 选择你的 Datadog 站点/区域 (例如 datadoghq.comdatadoghq.eu)
  2. 输入你的 DD-API-KEYDD-APPLICATION-KEY
如需生成这些密钥:
3

验证连接

点击 Test listing tools,确认 Devin 可以连接到你的 Datadog 账户。如果测试成功,说明集成已可使用。

功能

启用 Datadog MCP 后,Devin 可以在任何会话中执行以下操作:
功能描述
查询错误日志按服务、状态和时间范围搜索并筛选日志条目
获取指标时间序列检索用于仪表板和分析的指标数据点
列出活动监控项查看所有已配置的监控项及其当前状态
搜索追踪查找跨服务的分布式追踪
管理事件查看、创建和更新事件记录
管理仪表板列出并检查仪表板配置
将 Datadog MCP 与你服务相关的 Knowledge 结合使用——例如正常阈值、架构图和值班处置手册——这样 Devin 在开始调查时就能利用你团队的上下文。

自动化告警调查

除了交互式查询外,你还可以将 Datadog 告警接入 Devin,让事故自动展开调查。这采用了 webhook bridge 模式:由一个小型服务接收 Datadog webhook payload,并调用 Devin API 启动调查会话。
1

部署 webhook bridge 服务

创建一个轻量级服务,用于接收 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 payload 字段
    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 permission 的服务用户。将 API token 存储为 DEVIN_API_KEY,将 organization ID 存储为 DEVIN_ORG_ID,并在 bridge 服务上将共享密钥存储为 WEBHOOK_SECRET。下一步中,你需要在 Datadog webhook 的 Custom Headers 里配置同一个密钥。
2

配置 Datadog webhook

  1. 在 Datadog 仪表板中,前往 Integrations > Webhooks
  2. 点击 New Webhook,并将 URL 设置为你的 bridge 端点 (例如 https://your-bridge.example.com/alert)
  3. Custom Headers 下添加 X-Webhook-Secret,其值应与你在 bridge 服务中存储为 WEBHOOK_SECRET 的值一致
  4. 在任意 monitor 的通知消息中添加 @webhook-devin-bridge —— 这样每当该 monitor 触发时,Devin 就会自动展开调查
3

使用 warning 级别 monitor 进行测试

建议先从 warning 级别或低严重性的 monitor 开始,在接入关键告警之前先端到端验证整条流程。确认 Devin 会话已成功创建,且调查运行正常后,再扩展到更高严重性的 monitor。
你可以通过在 Devin API 请求体中传入 playbook_id 来自定义调查。复制 !triage 模板 playbook,并根据你的技术栈调整调查步骤。