mcpField
D
datadog-analyser

datadog-analyser

github.com/delexw云与 DevOps251 次安装31 周前更新
代码仓库

关于 datadog-analyser

datadog-analyser 是通过 `pup` 命令行调查 Datadog 可观测性数据的技能。它指导查询监控器、日志、指标、事件等数据,并将结构化报告写入 `.datadog-analyser-tmp/report.md`。

主要功能

  1. 01使用 `pup` 查询 Datadog 数据
  2. 02分析监控器、日志和指标
  3. 03设置分析时间范围与服务筛选
  4. 04汇总发现与异常
  5. 05保存结构化 Markdown 报告

适用场景

  1. 01调查触发告警的监控器和错误日志
  2. 02按时间范围检查服务健康状况
  3. 03汇总事件及可观测性调查结果

安装

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

$npx skills add https://github.com/delexw/claude-code-misc --skill datadog-analyser

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

详细介绍

Datadog 分析器

使用 pup CLI 调查和分析 Datadog 可观测性数据。

输入

原始参数:$ARGUMENTS

根据参数推断:

  • QUERY:要分析的内容。
  • SINCE:(可选)分析时间范围的 UTC ISO8601 起始时间。提供时,将其转换为 epoch 秒,以用于 pup --from 标志(例如,在 Linux 上运行 date -d "2026-03-20T02:30:00Z" +%s,或在 macOS 上运行 date -jf "%Y-%m-%dT%H:%M:%SZ" "2026-03-20T02:30:00Z" +%s)。
  • UNTIL:(可选)分析时间范围的 UTC ISO8601 结束时间。提供时,将其转换为 epoch 秒,以用于支持 --to 标志的命令;否则省略(默认值为现在)。
  • SERVICE_HINT:(可选)优先在查询中使用的服务名称(优先按此服务筛选监控器、日志和 APM)。

系统要求

  • 已安装 pup CLI — 请参阅 https://github.com/datadog-labs/pup/blob/main/README.md
  • 已设置 DD_API_KEY 和 DD_APP_KEY 环境变量。重要: 检查这些变量时,在确定它们未设置之前,至少验证 2 次。由于 shell 上下文差异,环境变量可能会显示为未设置。切勿泄露变量值 — 只检查变量是否存在(例如 test -n "$DD_API_KEY")。
  • 如果使用的不是 datadoghq.com,则设置 DD_SITE(可选)

输出目录

.datadog-analyser-tmp/
└── report.md    # Final analysis report

执行

1. 验证连接

运行 pup test,确认 CLI 已配置并连接:

pup test

如果失败,请使用 AskUserQuestion 告知用户 pup 尚未配置,或未设置 DD_API_KEY/DD_APP_KEY,并提供设置指南链接:https://github.com/datadog-labs/pup/blob/main/README.md

在 pup test 成功之前,请勿继续。

2. 发现可用命令

运行 pup agent guide,获取本次会话的完整可用命令列表和用法模式:

pup agent guide

如果 pup agent guide 不可用(找不到命令),请使用下方已知的命令参考并继续。

3. 分析

根据 QUERY,确定最相关的 pup 命令。所有命令均使用 --output=json(默认值)以获取结构化输出。按顺序运行命令。

时间窗口规则 — 当 QUERY 中包含特定日期(“今天”“昨天”)或日历日期范围时,请使用本地日期边界计算时间窗口,而不是按 UTC 日历日计算。用户说“今天”表示从本地午夜开始,因此即使某事件对应的 UTC 日期不同,只要它发生在本地时间上午 11 点,也应包含在内。

对于相对时长(“过去 1 小时”“过去 24 小时”),直接将其作为 pup 相对时间字符串传入:--from="1h"、--from="24h"。

对于特定日期,计算本地日期边界的 epoch 秒数,并传入 --from/--to:

# Start of local today as epoch (Linux / macOS)
date -d "$(date +%Y-%m-%d) 00:00:00" +%s          # Linux
date -jf "%Y-%m-%d %H:%M:%S" "$(date +%Y-%m-%d) 00:00:00" +%s  # macOS
# Current time as epoch
date +%s
# Start of local yesterday
date -d "$(date -d yesterday +%Y-%m-%d) 00:00:00" +%s          # Linux
date -jf "%Y-%m-%d %H:%M:%S" "$(date -v-1d +%Y-%m-%d) 00:00:00" +%s  # macOS

当提供了 SINCE 和 UNTIL,且其格式为 UTC ISO8601 时,将它们分别转换为 epoch 秒数,并用于所有 --from/--to 标志,而不是根据 QUERY 推断时间窗口。这样可确保所有 Datadog 查询都涵盖与其他 PIR 子技能完全相同的时间窗口:

# Linux
SINCE_EPOCH=$(date -d "2026-03-20T02:30:00Z" +%s)
UNTIL_EPOCH=$(date -d "2026-03-20T06:00:00Z" +%s)
# macOS
SINCE_EPOCH=$(date -jf "%Y-%m-%dT%H:%M:%SZ" "2026-03-20T02:30:00Z" +%s)
UNTIL_EPOCH=$(date -jf "%Y-%m-%dT%H:%M:%SZ" "2026-03-20T06:00:00Z" +%s)

当提供了 SERVICE_HINT 时,请在查询中优先使用它:

  • 筛选监视器:pup monitors search --query="service:<SERVICE_HINT>"
  • 在查询字符串中加入 service:<SERVICE_HINT>,限定日志搜索范围
  • 优先聚焦该服务的 APM 跟踪

常见分析模式:

目标命令
已触发/正在告警的监视器pup monitors list、pup monitors search --query="status:alert"
错误日志pup logs search --query="status:error" --from="1h"
指标趋势pup metrics query --query="<metric>" --from="<window>"
活跃事件pup incidents list
SLO 健康状况pup slos list、pup slos status <id>
APM 服务健康状况pup apm services、pup apm dependencies
安全信号pup security signals list、pup security findings search
错误跟踪pup error-tracking issues search --query="<service>"
Synthetics 失败pup synthetics tests list
CI 失败pup cicd pipelines list、pup cicd events list

所有命令默认输出 JSON。使用 --from、--to、--query、--tags 等标志缩小范围。可通过 pup <command> --help 查看可用标志。

4. 报告

报告中的所有时间戳都必须使用当前 Agent 的本地时区(通过系统时钟检测),而不是 UTC。格式:2026-03-20 15:30 NZDT(包含时区缩写)。面向用户的报告部分不得使用 UTC——这也包括直接来自 API 响应的时间戳(例如 last_triggered、overall_state_modified 和事件时间)。写入报告前,必须将每个时间戳转换为本地时间。

使用 Write 工具将结构化分析写入 .datadog-analyser-tmp/report.md:

  1. 摘要 — 整体健康状态和关键发现
  2. 详情 — 按领域(监视器、日志、指标等)分类列出发现
  3. 异常 — 任何告警、性能下降或异常情况
  4. 建议 — 建议采取的后续行动

告知用户报告位置:.datadog-analyser-tmp/report.md

评论

支持 Markdown