mcpField
D
datadog-automation

datadog-automation

github.com/sickn33云与 DevOps48.8k90 次安装今天更新
代码仓库

关于 datadog-automation

此工作流技能通过 Rube MCP 上的 Composio Datadog 工具包自动处理监控与可观测性任务,涵盖数据查询以及监控器、仪表板、事件、停机时段、主机和追踪数据,并包含操作防护要求。

主要功能

  1. 01查询指标并搜索日志
  2. 02创建、查看和静默监控器
  3. 03查看和更新仪表板
  4. 04发布事件并安排停机时段
  5. 05列出主机并检索追踪数据

适用场景

  1. 01调查指标趋势和应用错误
  2. 02检查或调整监控器配置
  3. 03为服务准备仪表板
  4. 04安排有明确结束时间的维护停机

MCP 相关

通过 Rube MCP 使用 Composio 的 Datadog 工具包。技能要求客户端先查询当前工具定义,并在查询或更改数据前确认 Datadog 连接已授权且处于活动状态。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill datadog-automation

安装后在 Claude Code 中输入/datadog-automation确认已加载。

详细介绍

通过 Rube MCP 自动化 Datadog

通过 Rube MCP 调用 Composio 的 Datadog 工具包,自动化 Datadog 监控和可观测性操作。

前提条件

  • 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
  • 必须通过 RUBE_MANAGE_CONNECTIONS 建立有效的 Datadog 连接,工具包为 datadog
  • 始终先调用 RUBE_SEARCH_TOOLS,以获取当前工具架构

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。添加端点并不会对 Datadog 进行身份验证;请使用主机支持的授权连接。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用
  2. 使用工具包 datadog 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请访问返回的身份验证链接,完成 Datadog 身份验证
  4. 运行任何工作流前,确认连接状态显示为 ACTIVE

核心工作流

读取或更改状态前,确认 Datadog 站点/组织、环境、服务和时间范围。日志/追踪可能包含凭据和个人数据;请限制并脱敏输出。监控器/事件消息可能会通知 Slack/PagerDuty 接收者,因此发送消息/提及接收者需要明确的范围授权。停机/静音会抑制告警:请使用经批准且范围最小的监控器/范围,设置有时限的结束时间,并确认已恢复。替换/删除前保留仪表板定义;遇到含糊的写入操作时,先核实再重试。缺少指标/日志或采样后的追踪并不能证明服务正常;请说明数据保留、采样和查询覆盖范围。当前 API 版本在停机时段的结构和仪表板行为上可能有所不同;请使用发现的架构。

1. 查询和探索指标

适用场景:用户想要查询指标数据或列出可用指标

工具调用顺序:

  1. DATADOG_LIST_METRICS - 列出可用的指标名称[可选]
  2. DATADOG_QUERY_METRICS - 查询指标时间序列数据[必需]

关键参数:

  • query:Datadog 指标查询字符串(例如,avg:system.cpu.user{host:web01})
  • from:开始时间戳(Unix 纪元秒)
  • to:结束时间戳(Unix 纪元秒)
  • q:用于列出指标的搜索字符串

注意事项:

  • 查询语法遵循 Datadog 的指标查询格式:aggregation:metric_name{tag_filters}
  • from 和 to 是以秒为单位的 Unix 纪元时间戳,不是毫秒
  • 有效的聚合方式:avg、sum、min、max、count
  • 标签筛选条件使用花括号:{host:web01,env:prod}
  • 时间范围不应超过该指标类型的 Datadog 数据保留期限
2. 搜索和分析日志

适用场景:用户想要搜索日志条目或列出日志索引

工具调用顺序:

  1. DATADOG_LIST_LOG_INDEXES - 列出可用的日志索引[可选]
  2. DATADOG_SEARCH_LOGS - 使用查询和筛选条件搜索日志[必需]

关键参数:

  • query:使用 Datadog 日志查询语法的日志搜索查询
  • from:开始时间(ISO 8601 或 Unix 时间戳)
  • to:结束时间(ISO 8601 或 Unix 时间戳)
  • sort:排序顺序('asc' 或 'desc')
  • limit:要返回的日志条目数量

注意事项:

  • 日志查询使用 Datadog 的日志搜索语法:service:web status:error
  • 搜索范围仅限于配置的保留期限内留存的日志
  • 大型结果集需要分页;请检查是否有游标/页令牌
  • 日志索引控制路由和数据保留;如果已知索引,请按索引筛选
3. 管理监控器

适用场景:用户想要创建、更新、静音或检查监控器

工具调用顺序:

  1. DATADOG_LIST_MONITORS - 根据筛选条件列出所有监控器 [必需]
  2. DATADOG_GET_MONITOR - 获取特定监控器的详细信息 [可选]
  3. DATADOG_CREATE_MONITOR - 创建新的监控器 [可选]
  4. DATADOG_UPDATE_MONITOR - 更新监控器配置 [可选]
  5. DATADOG_MUTE_MONITOR - 暂时静音监控器 [可选]
  6. DATADOG_UNMUTE_MONITOR - 重新启用已静音的监控器 [可选]

关键参数:

  • monitor_id:数字型监控器 ID
  • name:监控器显示名称
  • type:监控器类型('metric alert'、'service check'、'log alert'、'query alert' 等)
  • query:定义告警条件的监控器查询
  • message:包含 @提及的通知消息
  • tags:标签字符串数组
  • thresholds:告警阈值(critical、warning、ok)

注意事项:

  • 监控器的 type 必须与查询类型匹配;不匹配会导致创建失败
  • message 支持用于通知的 @提及(例如,@slack-channel、@pagerduty)
  • 阈值因监控器类型而异;指标监控器至少需要 critical
  • 静音监控器会抑制通知,但监控器仍会继续评估
  • 监控器 ID 是数字整数
4. 管理仪表板

适用场景:用户想要列出、查看、更新或删除仪表板

工具调用顺序:

  1. DATADOG_LIST_DASHBOARDS - 列出所有仪表板 [必需]
  2. DATADOG_GET_DASHBOARD - 获取完整的仪表板定义 [可选]
  3. DATADOG_UPDATE_DASHBOARD - 更新仪表板布局或小组件 [可选]
  4. DATADOG_DELETE_DASHBOARD - 删除仪表板(不可撤销)[可选]

关键参数:

  • dashboard_id:仪表板标识符字符串
  • title:仪表板标题
  • layout_type:'ordered'(网格)或 'free'(自由定位)
  • widgets:小组件定义对象数组
  • description:仪表板描述

注意事项:

  • 仪表板 ID 是字母数字字符串(例如,'abc-def-ghi'),而非数字
  • 创建后无法更改 layout_type;必须重新创建仪表板
  • 小组件定义是复杂的嵌套对象;请先获取现有仪表板以了解其结构
  • DELETE 操作无法撤销
5. 创建事件并管理停机时间

适用场景:用户想要发布事件或安排维护停机时间

工具调用顺序:

  1. DATADOG_LIST_EVENTS - 列出现有事件 [可选]
  2. DATADOG_CREATE_EVENT - 发布新事件 [必需]
  3. DATADOG_CREATE_DOWNTIME - 安排维护停机时间 [可选]

事件的关键参数:

  • title:事件标题
  • text:事件正文(支持 Markdown)
  • alert_type:事件严重程度('error'、'warning'、'info'、'success')
  • tags:标签字符串数组

停机时间的关键参数:

  • scope:停机时间的标签范围(例如,host:web01)
  • start:开始时间(Unix 纪元时间)
  • end:结束时间(Unix 纪元时间;省略则表示无限期)
  • message:停机时间说明
  • monitor_id:指定要停机的监控器(可选,基于范围时省略)

注意事项:

  • 事件的 text 支持 Datadog 的 Markdown 格式,包括 @提及
  • 停机时间范围使用标签语法:host:web01、env:staging
  • 省略 end 会创建无限期停机时间;维护时请务必设置结束时间
  • 停机时间的 monitor_id 会将范围缩小到单个监控器;范围条件则适用于所有匹配的监控器
6. 管理主机和跟踪

使用时机:用户想要列出基础设施主机或检查分布式跟踪

工具调用顺序:

  1. DATADOG_LIST_HOSTS - 列出所有上报数据的主机 [必需]
  2. DATADOG_GET_TRACE_BY_ID - 获取特定的分布式跟踪 [可选]

关键参数:

  • filter:主机搜索筛选字符串
  • sort_field:按字段对主机排序(例如:'name'、'apps'、'cpu')
  • sort_dir:排序方向('asc' 或 'desc')
  • trace_id:用于查询跟踪的分布式跟踪 ID

注意事项:

  • 主机列表包含保留期限内所有向 Datadog 上报数据的主机
  • 跟踪 ID 是较长的数字字符串;请确保完全匹配
  • 停止上报的主机会保留一段已配置的时间,然后才会被移除

常见模式

监控查询语法

指标告警:

avg(last_5m):avg:system.cpu.user{env:prod} > 90

日志告警:

logs("service:web status:error").index("main").rollup("count").last("5m") > 10
标签筛选
  • 标签使用 key:value 格式:host:web01、env:prod、service:api
  • 多个标签:{host:web01,env:prod}(AND 逻辑)
  • 通配符:host:web*
分页
  • 根据端点使用 page 和 page_size,或基于偏移量的分页
  • 检查响应中的总数,以确定是否还有更多页面
  • 持续获取,直到检索到所有结果

已知注意事项

时间戳:

  • 大多数端点使用 Unix 纪元秒数(而非毫秒)
  • 某些端点接受 ISO 8601 格式;请检查工具架构
  • 时间范围应合理(不要查询数年的数据)

查询语法:

  • 指标查询:aggregation:metric{tags}
  • 日志查询:field:value 对
  • 监控器查询因类型而异;请查看 Datadog 文档

速率限制:

  • Datadog API 对每个端点都有限制
  • 收到 429 响应时实施退避
  • 尽可能批量执行操作

快速参考

任务工具标识关键参数
查询指标DATADOG_QUERY_METRICSquery, from, to
列出指标DATADOG_LIST_METRICSq
搜索日志DATADOG_SEARCH_LOGSquery, from, to, limit
列出日志索引DATADOG_LIST_LOG_INDEXES(none)
列出监控器DATADOG_LIST_MONITORStags
获取监控器DATADOG_GET_MONITORmonitor_id
创建监控器DATADOG_CREATE_MONITORname, type, query, message
更新监控器DATADOG_UPDATE_MONITORmonitor_id
静默监控器DATADOG_MUTE_MONITORmonitor_id
取消静默监控器DATADOG_UNMUTE_MONITORmonitor_id
列出仪表板DATADOG_LIST_DASHBOARDS(none)
获取仪表板DATADOG_GET_DASHBOARDdashboard_id
更新仪表板DATADOG_UPDATE_DASHBOARDdashboard_id, title, widgets
删除仪表板DATADOG_DELETE_DASHBOARDdashboard_id
列出事件DATADOG_LIST_EVENTSstart, end
创建事件DATADOG_CREATE_EVENTtitle, text, alert_type
创建停机时间DATADOG_CREATE_DOWNTIMEscope, start, end
列出主机DATADOG_LIST_HOSTSfilter, sort_field
获取跟踪DATADOG_GET_TRACE_BY_IDtrace_id

适用场景

此技能适用于执行概述中描述的工作流或操作。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown