View a markdown version of this page

正在连接 DataDog - AWS DevOps 代理人

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

正在连接 DataDog

Built-in,单向集成

目前, AWS DevOps Agent 通过内置的单向集成支持 Datadog 用户,支持以下功能:

  • 自动触发调查-可以将 Datadog 事件配置为通过 AWS DevOps 代理 webhook 触发 AWS DevOps 代理事件解决调查。

  • 遥测内省 —— AWS DevOps 代理可以在通过每个提供商的远程 MCP 服务器调查问题时反省 Datadog 遥测数据。

信息载入

步骤 1:Connect

使用账户访问凭证与您的 Datadog 远程 MCP 端点建立连接

配置

  1. 转到能力提供者页面(可从侧面导航栏访问)

  2. 在 “遥测” 下的 “可用提供商” 部分中找到 Datadog,然后选择 “注册”

  3. 输入您的 Datadog MCP 服务器详细信息:

    • 服务器名称-唯一标识符(例如,my-datadog-server)

    • 端点 URL-您的 Datadog MCP 服务器端点。端点网址因您的 Datadog 网站而异。请参阅下面的 Datadog 站点端点表。

    • 描述-可选的服务器描述

  4. 选择下一步。

  5. 审核并提交

Datadog 网站端点

MCP 端点网址因您的 Datadog 网站而异。要识别您的网站,请在登录 Datadog 时在浏览器中查看网址,或者参阅访问 Dat adog 网站。

Datadog 网站 网站域名 MCP 端点网址
US1(默认) datadoghq.com https://mcp.datadoghq.com/api/unstable/mcp-server/mcp
US3 us3.datadoghq.com https://mcp.us3.datadoghq.com/api/unstable/mcp-server/mcp
US5 us5.datadoghq.com https://mcp.us5.datadoghq.com/api/unstable/mcp-server/mcp
EU1 datadoghq.eu https://mcp.datadoghq.eu/api/unstable/mcp-server/mcp
AP1 ap1.datadoghq.com https://mcp.ap1.datadoghq.com/api/unstable/mcp-server/mcp
AP2 ap2.datadoghq.com https://mcp.ap2.datadoghq.com/api/unstable/mcp-server/mcp

Authorization

通过以下方式完成 OAuth 授权:

  • 在 Datadog OAuth 页面上以您的用户身份进行授权

  • 如果未登录,请选择 “允许”、“登录”,然后选择 “授权”

配置完成后,Datadog 将在所有代理空间中使用。

步骤 2:启用

DataDog 在特定的代理空间中激活并配置适当的作用域

配置

  1. 在座席空间页面上,选择一个座席空间,然后按查看详情(如果您尚未创建座席空间,请参阅创建代理空间

  2. 选择 “权能” 选项卡

  3. 向下滚动到 “遥测” 部分

  4. 按添加

  5. 选择 Datadog

  6. 下一步

  7. 查看并按保存

  8. 复制 Webhook 网址和 API 密钥(保存时显示一次;API 密钥以后无法查看 — 如果您丢失了,请从 “功能” 选项卡上的 webhook 详细信息中重新生成它,这将使之前的密钥失效)

步骤 3:配置 Webhook

使用步骤 2 中的 Webhook 网址和 API 密钥,您可以将 Datadog 配置为发送触发调查的事件,例如监控器发出警报时。

Datadog 网络挂钩使用不记名令牌身份验证。有关一般的 webhook 请求格式和有效负载架构,请参阅通过 Webhook 调用 DevOps 代理。以下各节提供了现成的Datadog配置;您无需自己构造有效负载。

步骤 3.1:在 Datadog 中创建 webhook

  1. 在 Datadog 中,打开集成,搜索 Webhooks,然后打开集成磁贴。有关更多信息,请参阅 Datado g 文档中的 Webhook

  2. Webhook 下,选择新建

  3. 在 “名称” 中,输入一个名称,例如devops-agent。您可以像@webhook-devops-agent在监视器消息中一样引用此名称。

  4. 对于网址,请粘贴步骤 2 中的 Webhook 网址(可再次从代理空间的 “功能” 选项卡上的 Datadog 条目中查看)。

  5. 对于负载,将默认负载替换为步骤 3.2 中的模板。

  6. 取消配置身份验证方法,改为选择 “自定义标头”,然后输入以下示例中显示的标题,<API_KEY_FROM_STEP_2>替换为步骤 2 中的 API 密钥。

  7. 清除 “表单编码”。Webhook 端点需要原始的 JSON 正文;表单编码会导致有效负载处理失败。

  8. 保存 webhook。

步骤 6 的自定义标题值:

{"Authorization": "Bearer <API_KEY_FROM_STEP_2>"}

为避免将密钥存储在普通视图中,请在选中 “隐藏视图” 的情况下在 webhook 磁贴中定义一个自定义变量(例如$DEVOPS_AGENT_API_KEY),然后改为在标题值中引用该变量。

步骤 3.2:监控器触发的警报的负载模板

以下模板适用于标准监控器警报,包括指标、日志、APM 和 Synthetics 监控器。Datadog 在发送 webhook 时会替换$VARIABLE占位符;保持原样。

{ "eventType": "incident", "incidentId": "datadog-$ALERT_CYCLE_KEY", "action": "created", "priority": "HIGH", "title": "$ALERT_TITLE", "description": "$TEXT_ONLY_MSG", "service": "datadog", "data": { "monitorId": "$ALERT_ID", "eventType": "$EVENT_TYPE", "alertQuery": "$ALERT_QUERY", "alertScope": "$ALERT_SCOPE", "alertMetric": "$ALERT_METRIC", "alertTransition": "$ALERT_TRANSITION", "alertPriority": "$ALERT_PRIORITY", "tags": "$TAGS", "eventUrl": "$LINK", "hostname": "$HOSTNAME" } }

Datadog 变量如何映射到 webhook 架构

Webhook 字段 要使用的值 注意
eventType 字面字符串 incident 必需常量。
incidentId datadog-$ALERT_CYCLE_KEY $ALERT_CYCLE_KEY从监视器触发到解析一直保持不变,因此重新通知会将重复数据删除到单个调查中。仅当您希望每份通知都开始单独调查时,才使用$ID(每个事件的 ID)。
action 字面字符串 created 不要映射$ALERT_TRANSITION到此字段。其值(例如TriggeredRecovered)不是有效action值。改为通过监控消息控制 webhook 何时触发(参见步骤 3.3)。
priority 其中一个字面字符串CRITICALHIGHMEDIUMLOW、或 MINIMAL 不要$ALERT_PRIORITY在这里使用。它扩展为 Datadog 监视器优先级 (P1P5),这不是该字段的有效值。webhook 返回了 200 的响应,但没有开始调查。要发送不同的优先级,请为每个优先级创建一个 webhook(例如devops-agent-criticaldevops-agent-high),然后从每台显示器引用相应的 webhook。
title $ALERT_TITLE 显示器的警报标题。
description $TEXT_ONLY_MSG 删除了 Markdown 的事件文本。更喜欢这个$EVENT_MSG,它的 Markdown 格式会增加噪音。
service 字面上的服务名称 可选。标识来源的静态字符串,例如datadog或您的服务名称。
timestamp 省略 可选。Datadog 的日期变量 ($DATE,$DATE_POSIX) 是时代值,而不是该字段期望的 ISO 8601 格式,因此请省略该字段。
data Datadog 上下文变量 可选但不推荐。中的data所有内容都作为原始事件传递给代理,从而为调查提供监控查询、范围、标签以及返回 Datadog 事件的链接。

步骤 3.3:在显示器上引用 webhook

在警报应触发调查的每个监视器中,在监视器消息中添加 webhook 提及,其作用范围是只有警报过渡才会触发它:

{{#is_alert}} @webhook-devops-agent {{/is_alert}}

如果没有{{#is_alert}}条件通知,警告和恢复通知也会发送 webhook。恢复事件会对公开调查进行重复数据删除$ALERT_CYCLE_KEY,但是警告会开始调查您可能不想调查的阈值。

验证配置

从显示器发送测试通知(显示器编辑器中的测试通知)并确认以下内容:

  1. Webhook 返回 200 的响应。你可以在 Datadog webhook 集成的事件流中看到交付状态。4xx 响应表示标Authorization题错误。 Re-check API 密钥并确认已清除 “编码为表单”。

  2. 调查将在您的特工空间开始。(测试通知的调查在没有根本原因的情况下结束——这是预料之中的。) 未进行调查的 200 响应意味着有效载荷在被接受后未通过验证。检查 Datadog 事件流中的 webhook 响应正文:无效的负载会返回 200 响应,其正文列出了验证错误(例如'P2' is not one of ['CRITICAL', 'HIGH', ...]),而有效的负载则返回。{"message": "Webhook received"}最常见的原因是非文字priority值(参见前面的映射表)和同一警报incidentId周期中先前测试的重复项。

有关 Webhook 的一般疑难解答,请参阅通过 Webhook 调用 DevOps 代理

了解更多:Datadog 远程 MCP 服务器

移除

遥测源在两个级别上连接,分别是代理空间级别和账户级别。要将其完全删除,必须先将其从所有使用它的代理空间中删除,然后才能将其取消注册。

步骤 1:从代理空间中移除

  1. 在座席空间页面上,选择一个座席空间,然后按查看详情

  2. 选择 “权能” 选项卡

  3. 向下滚动到 “遥测” 部分

  4. 选择 Datadog

  5. 按移除

第 2 步:注销账号

  1. 转到能力提供者页面(可从侧面导航栏访问)

  2. 滚动到 “当前注册” 部分。

  3. 检查代理空间计数是否为零(如果不是,请在其他代理空间中重复上述步骤 1)

  4. 选择 Datadog,然后从 “操作” 菜单中选择 “取消注册”。