Skip to content

终端查询 Datadog 日志与聚合错误计数

解决排查监控数据需手动打开网页逐个查看的效率问题。通过 Composio CLI 在终端直接检索、过滤、聚合 Datadog 日志,并自动导出结构化 JSON 供 AI 处理或本地分析。

为什么需要这个技能

运维团队在处理生产事故时,往往需要快速定位特定服务在特定时间窗内的报错信息。直接登录 Datadog 网页版不仅受限于浏览器标签页,且难以将原始日志直接管道化。

本技能允许 AI 代理在命令行中直接执行日志搜索、指标聚合和事件追踪,将网页操作转化为自动化脚本,大幅提升故障响应速度。

适用场景

  • 突发故障响应:系统出现延迟或错误激增,需要立即获取最近 15 分钟的错误日志详情。
  • 跨服务关联分析:需要对比不同环境或服务的日志量变化,寻找部署引发的异常。
  • 离线数据报告:构建定时任务,将日志分析结果结构化输出,避免依赖网页 UI 进行人工复制。

核心工作流

1. 环境初始化与认证

首先安装 Composio CLI 并关联你的 Datadog 账号,确保拥有 logs_read 权限:

bash
curl -fsSL https://composio.dev/install | bash
composio login
composio link datadog       # prompts for site + API/APP keys

2. 搜索与过滤日志

使用 DATADOG_SEARCH_LOGS 工具配合过滤参数,精准定位错误:

bash
composio execute DATADOG_SEARCH_LOGS -d '{
  "filter": {
    "query": "service:checkout status:error env:prod",
    "from": "now-15m",
    "to": "now"
  },
  "page": { "limit": 100 },
  "sort": "-timestamp"
}'

Tips:如果结果为空,请确认 env:service: 标签是否与你的实际配置一致。

3. 聚合与统计

利用 DATADOG_AGGREGATE_LOGS 按端点统计错误数量,快速找出高频故障接口:

bash
composio execute DATADOG_AGGREGATE_LOGS -d '{
  "filter": { "query": "service:checkout status:error", "from": "now-1h", "to": "now" },
  "group_by": [{ "facet": "@http.url_path", "limit": 20 }],
  "compute": [{ "aggregation": "count" }]
}'

4. 本地分析与管道化

Datadog 输出为 JSON 标准格式,可直接通过 jq 等工具处理:

bash
composio execute DATADOG_SEARCH_LOGS -d '{
  "filter": {"query":"service:api status:error","from":"now-30m","to":"now"},
  "page":{"limit":500}
}' | jq -r '.data[].attributes.message' | sort | uniq -c | sort -rn | head

高级工作流

可以将搜索与聚合逻辑封装为脚本文件 scripts/dd-incident.ts,并通过环境变量注入服务名,实现一键排查:

ts
const svc = process.argv[process.argv.indexOf("--service") + 1];

const errors = await execute("DATADOG_SEARCH_LOGS", {
  filter: { query: `service:${svc} status:error`, from: "now-1h", to: "now" },
  page: { limit: 200 }, sort: "-timestamp"
});

const topPaths = await execute("DATADOG_AGGREGATE_LOGS", {
  filter: { query: `service:${svc} status:error`, from: "now-1h", to: "now" },
  group_by: [{ facet: "@http.url_path", limit: 10 }],
  compute: [{ aggregation: "count" }]
});

console.log(JSON.stringify({ svc, sample: errors.data?.slice(0,5), topPaths }, null, 2));

运行脚本即可得到 JSON 格式的故障摘要,可直接管道传输给 Slack 或其他通知工具。

可能遇到的问题

  • 403 Forbidden:检查 API Key 是否缺少 logs_read 权限,或 site ID 配置错误。
  • Slow queries:缩小时间范围(from/to),使用聚合工具代替全量拉取。
  • Unknown facet:使用 composio search "list log facets" --toolkits datadog 获取可用字段。

获取与使用

你可以直接下载中文版 Skill 包,添加到你的 AI 工作流目录中。解压后请参考内附的 USAGE.zh.md 进行环境挂载。

下载 datadog-logs 中文版 Skill ZIP

你可能还需要

暂无推荐