mcpField
D
datadog-automation

datadog-automation

github.com/composiohq云与 DevOps78.3k69 次安装14 周前更新
代码仓库

关于 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/composiohq/awesome-claude-skills --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