mcpField
D
datadog-automation

datadog-automation

github.com/davepoon云与 DevOps3.7k118 次安装1 天前更新
代码仓库

关于 datadog-automation

datadog-automation 是一项通过 Composio 的 Datadog 工具包和 Rube MCP 自动执行 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/davepoon/buildwithclaude --skill datadog-automation

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

详细介绍

通过 Rube MCP 实现 Datadog 自动化

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

工具包文档:composio.dev/toolkits/datadog

前提条件

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

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥,只需添加端点即可使用。

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

核心工作流

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

由 Composio 提供支持

评论

支持 Markdown