mcpField
D
datadog-logs

datadog-logs

github.com/composio-community云与 DevOps17.1k455 次安装14 周前更新
代码仓库

关于 datadog-logs

datadog-logs 是一项通过 Composio CLI 查询 Datadog 日志的技能,供 Agent 调查错误、延迟和部署影响。它支持筛选、聚合、跨服务追踪及将结果用于本地分析或定时摘要。

主要功能

  1. 01搜索并筛选日志
  2. 02按维度聚合日志
  3. 03追踪跨服务请求
  4. 04创建可复用的查询视图
  5. 05通过 JSON 管道进行分析

适用场景

  1. 01调查服务错误激增
  2. 02比较部署前后的日志变化
  3. 03追踪请求在多个服务间的记录
  4. 04生成每日故障摘要

安装

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

$npx skills add https://github.com/composio-community/awesome-codex-skills --skill datadog-logs

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

详细介绍

Datadog 日志

通过 Composio CLI 查询 Datadog 日志,让 Agent 无需你粘贴截图,就能筛选、切换分析维度并汇总信息。

适用场景

  • 调查流量峰值、错误激增或延迟回退,并希望获取结构化的 JSON。
  • 关联部署与不同服务或环境的日志量变化。
  • 构建定时运行的“昨晚发生了什么故障”摘要。

前提条件

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

发现工具

composio search "search logs" --toolkits datadog
composio search "aggregate logs" --toolkits datadog
composio tools list datadog

常用的 slug(使用 --get-schema 确认):

  • DATADOG_SEARCH_LOGS
  • DATADOG_AGGREGATE_LOGS
  • DATADOG_LIST_ACTIVE_METRICS
  • DATADOG_GET_EVENT

筛选示例

查询过去 15 分钟内某个服务的错误
composio execute DATADOG_SEARCH_LOGS -d '{
  "filter": {
    "query": "service:checkout status:error env:prod",
    "from": "now-15m",
    "to": "now"
  },
  "page": { "limit": 100 },
  "sort": "-timestamp"
}'
按端点汇总错误数量
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" }]
}'
跨服务追踪单个请求
composio execute DATADOG_SEARCH_LOGS -d '{
  "filter": { "query": "@trace_id:7f3a2b1c env:prod", "from": "now-1h", "to": "now" },
  "sort": "timestamp"
}'
保存可复用的查询
composio search "save log view" --toolkits datadog
composio execute DATADOG_CREATE_SAVED_VIEW -d '{
  "name": "checkout-errors-prod",
  "query": "service:checkout status:error env:prod"
}'

传入本地分析

Datadog 输出为 stdout 上的 JSON,可通过管道传给 jq,快速生成摘要:

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,然后运行 composio run --file scripts/dd-incident.ts -- --service checkout:

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));

安排每日摘要

使用 cron(或通过 composio dev listen 监听触发器)运行工作流,并将结果转发到 Slack:

composio run --file scripts/dd-incident.ts -- --service checkout \
  | tee /tmp/digest.json

composio execute SLACK_SEND_MESSAGE -d "$(jq -n \
  --slurpfile d /tmp/digest.json \
  '{channel:"oncall", text: ($d[0] | tojson)}')"

故障排查

  • 结果为空 → 确认 env: 和 service: 标签;Datadog 索引按区域划分,请在 composio link datadog 时设置正确的站点。
  • 403 Forbidden → APP 密钥缺少 logs_read 权限;请使用该权限重新生成密钥并重新关联。
  • 查询较慢 → 缩小 from/to 范围,添加 facet 筛选条件,或使用 DATADOG_AGGREGATE_LOGS,而不是拉取原始事件。
  • Facet 未知 → 运行 composio search "list log facets" --toolkits datadog。

完整的 CLI 参考文档:docs.composio.dev/docs/cli

评论

支持 Markdown