Datadog Operations 技能用于对 Datadog 可观测性进行只读调查。
用途 该技能面向 Datadog 的只读可观测性调查,通过 Datadog 的 Pup CLI 查询实时遥测数据,包括日志、指标、追踪、Span、监控器、事件、仪表盘、服务与主机。当用户提出相关查询或排查需求时使用。
参考文档加载 根据请求条件加载参考文档:
- 任何 Datadog 操作:references/api-surface.md
- 日志搜索、指标查询、追踪查找、事件:references/common-use-cases.md、references/query-syntax.md
- 认证失败、权限错误或工具失败:references/troubleshooting-workarounds.md
工作流程 解析操作与目标:
- 判断请求属于日志搜索、指标查询、追踪/Span 检查、监控器查找、事件查找、仪表盘/笔记本查找、服务/主机列表,还是服务依赖图。
- 当用户提供明确的 env、service、host、monitor/incident ID、trace ID 或 Datadog URL 时,优先使用这些信息。
- 当用户未指定范围时,将对话配置中的 datadog.env 和 datadog.service 视为可选默认值。用户明确输入始终优先于配置。
- 仅当用户明确要求为当前对话或频道存储默认值时,才设置或更改 datadog.env 和 datadog.service。
- 如果请求间接引用先前的遥测项,先检查当前线程中已有的 ID 或 URL,再要求用户重述。
- 仅当搜索确实缺少必要信息时才提出一个简洁的追问,例如用户询问“errors”但没有 env、service 或时间窗口提示,且线程中没有先前上下文。
- 如果存在活跃的仓库上下文(已克隆仓库或已配置 github.repo),在形成查询前检查仓库根目录的 TELEMETRY.md。若存在,使用其中的查询配方、服务/环境映射和调查切入点作为仓库特定指导。用户明确的目标、ID、URL 和对话配置仍然优先。若不存在,则正常继续。
使用 Pup:
- 使用 pup --read-only --agent ... 运行 Datadog 命令。插件也会设置只读/agent 环境变量,但应包含这些标志,以便命令记录显示预期模式。
- 如果不确定命令或标志,先用 pup --read-only --agent agent schema --compact 或相关的 pup --read-only --agent <group> --help 输出检查 Pup 的 schema,不要猜测。
- 从窄范围开始:在更广泛的搜索之前,先选择最直接的单一命令。
- 已知事件 ID:pup --read-only --agent incidents get <incident_id>
- 已知监控器 ID:pup --read-only --agent monitors get <monitor_id>
- 已知笔记本 ID:pup --read-only --agent notebooks get <notebook_id>
- 已知指标名称:pup --read-only --agent metrics query --query="avg:<metric>{...}" --from="15m" --to="now";当用户需要可用标签或维度时,使用 metrics metadata get 或 metrics tags list。
- 对于探索性问题,优先使用一个聚焦的 Pup 搜索/列表/聚合命令,然后如有需要再进行一次后续获取。
- 对于“当前错误率/日志量/主要问题来源”类问题,优先使用 pup logs aggregate,而不是通过 pup logs search 拉取原始日志页。
- 对于服务拓扑问题(“什么调用了 checkout?”、“payment API 依赖什么?”),优先使用 pup apm dependencies list 或 pup apm flow-map,而不是手动拼接 Span。
- 对于“是否正在告警?”使用 pup monitors search 或 pup monitors list;对于事件上下文使用 pup incidents list / pup incidents get。
- 仅当用户询问真实用户/浏览器遥测时使用 RUM 命令,不用于后端问题。
约束每个查询:
- 始终限制时间窗口。对于“现在”类问题默认最近 15 分钟,对于回顾类问题默认最近 24 小时;否则使用用户指定的窗口。
- 当设置了 datadog.env 或用户指定了 env 时,始终包含 env:。
- 当用户指定了 service 或设置了 datadog.service 且命令是服务范围时,始终包含 service:。
- 限制结果规模。优先使用默认或较小的分页大小;当聚合命令能回答问题时,不要翻页浏览数千条日志。
报告结果:
- 先返回具体答案(计数、状态、事件严重性、追踪时序、主要问题来源),然后附上简短证据块。
- 当 Pup 返回 Datadog 深度链接,或能从 ID 构造稳定的应用链接时,包含这些链接。不要从不完整标识符编造链接。
- 仅当有趣的 Span、日志行或指标值作为答案证据时,才内联保留。不要转储原始命令输出。
- 保持常规工具交互静默。不要叙述每个 Pup 搜索或获取步骤。
防护规则
- 本技能仅限只读。不要创建、编辑、静音、删除、导入、提交或解决监控器、事件、笔记本、仪表盘、SLO、指标、API 密钥、RUM 资源或其他 Datadog 对象。
- 日志、RUM、APM 和事件负载可能包含 PII 或敏感客户数据。仅引用回答问题所需的最少内容。当摘要加深度链接足够时,不要粘贴完整原始日志正文或 Span 负载。
- 如果 Pup 返回 403、权限拒绝或类似错误,停止并告知用户 Datadog 凭据无法访问所请求的资源。不要猜测缺失的 RBAC 范围。
- 如果 Datadog 返回 429 Too Many Requests,短暂等待并重试同一查询一次。如果仍然失败,报告限流并停止。
- 对于不完整的大型追踪或 Span 响应,报告该事实;不要假装显示的 Span 是完整的。
- 不要将此技能用于 Sentry 问题、Linear/GitHub 工单或源代码调查。将这些交给匹配的技能。
适用场景 适用于需要对 Datadog 进行只读可观测性调查的场景,例如日志搜索、指标查询、追踪与 Span 检查、监控器与事件查找、仪表盘与笔记本查找、服务与主机列表、服务依赖图,以及真实用户/浏览器遥测查询。
限制 本技能仅限只读,不执行任何写操作。日志、RUM、APM 和事件负载可能包含 PII 或敏感数据,需最小化引用。遇到 403 或权限拒绝时停止并告知用户;遇到 429 时等待并重试一次,仍失败则报告并停止。不适用于 Sentry 问题、Linear/GitHub 工单或源代码调查。