关于 metricwatch
metricwatch 是提供 Datadog 账户只读访问的命令行工具和 MCP 服务,涵盖指标、仪表板、日志、事件、监控器和停机时间,基于 Datadog 公共 API。
主要功能
- 01查询指标时间序列和元数据
- 02列出并查看仪表板
- 03搜索日志
- 04列出并查看事件
- 05列出监控器和停机时间
适用场景
- 01调查指标趋势
- 02查看仪表板组件
- 03搜索服务错误日志
- 04检查事件、监控器和停机时间
MCP 相关
通过 MCP 工具提供 Datadog 账户的只读查询。调用需要 `DATADOG_API_KEY` 和 `DATADOG_APP_KEY`。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
11收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| to | number | 是 | 时间范围的结束时间,以 Unix epoch 秒级时间戳表示。 |
| from | number | 是 | 时间范围的开始时间,以 Unix epoch 秒级时间戳表示。 |
| query | string | 是 | Datadog 指标查询表达式,例如对指标进行聚合,并可选地使用标签筛选。 |
详细介绍
metricwatch
metricwatch 为 MCP 客户端或终端提供对 Datadog 账号的只读访问能力:指标时间序列查询和指标元数据、仪表板、日志搜索、事件、监控器以及停机时间。它根据 Datadog 的公开 API 文档,以洁净室方式重新实现了 Datadog MCP 工具集,涵盖下方列出的只读核心功能。
每次调用都需要两个凭据,因为 Datadog API 要求同时提供两者:DATADOG_API_KEY 中的 API 密钥和 DATADOG_APP_KEY 中的应用密钥。它们会通过 DD-API-KEY 和 DD-APPLICATION-KEY 标头发送,且绝不会出现在输出中。设置 DATADOG_SITE(例如 datadoghq.eu)可指定其他 Datadog 站点;默认值为 datadoghq.com,调用将发送到 https://api.<site>。缺少任一密钥时,每次调用都会失败,并指出缺失的变量。
安装
npx @reneturcios/metricwatch list_metrics
或者运行容器镜像:
docker run -i -e DATADOG_API_KEY -e DATADOG_APP_KEY ghcr.io/cloudcorprecords/metricwatch
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
每个 MCP 工具也都是一个 CLI 子命令。工具参数以一个 JSON 对象的形式通过 --json 传入:
export DATADOG_API_KEY=<redacted>
export DATADOG_APP_KEY=<redacted>
metricwatch query_timeseries --json '{"from": 1700000000, "to": 1700003600, "query": "avg:system.cpu.user{*}"}'
metricwatch list_metrics --json '{"limit": 20}'
metricwatch get_dashboard --json '{"dashboard_id": "abc-123"}'
metricwatch search_logs --json '{"query": "service:web status:error", "limit": 25}'
metricwatch list_monitors
metricwatch get_monitor --json '{"monitor_id": 42}'
metricwatch --version
结果以 JSON 格式打印。退出代码:成功时为 0,API 调用失败(包括缺少密钥)时为 1,用法错误时为 2。
MCP 服务
一个可执行文件提供两种接口。mcp 子命令会启动 stdio MCP 服务:
npx -y @reneturcios/metricwatch mcp
MCP 客户端配置:
{
"mcpServers": {
"metricwatch": {
"command": "npx",
"args": ["-y", "@reneturcios/metricwatch", "mcp"],
"env": {
"DATADOG_API_KEY": "your Datadog API key",
"DATADOG_APP_KEY": "your Datadog application key"
}
}
}
}
工具
| 工具 | 输入(粗体为必填项) | 功能 |
|---|---|---|
query_timeseries | from、to、query | 查询指标时间序列(v1 查询端点)。 |
list_metrics | from、limit | 列出账号中的指标名称。 |
get_metric_metadata | metric_name | 返回一个指标的类型、单位和描述。 |
list_dashboards | limit | 列出仪表板。 |
get_dashboard | dashboard_id | 返回包含小组件的仪表板。 |
search_logs | query、from、to、limit | 搜索日志事件(v2 日志搜索)。 |
list_incidents | limit | 列出事件。 |
get_incident | incident_id | 返回一个事件。 |
list_monitors | name、limit | 列出监控器,可按名称筛选。 |
get_monitor | monitor_id | 按整数 ID 返回一个监控器。 |
list_downtimes | current_only | 列出停机时间(监控器静默时段)。 |
以下内容不在此只读核心的范围内:APM 跟踪/跨度详情、合成监控、RUM、笔记本、SLO 管理、事件写入、事件创建或修改以及值班功能——请参阅 BUILD-REPORT.md。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。