自动化与脚本
用 Datadog CLI 排查生产日志…
当需要借助 Datadog 日志、指标和 trace 调试生产事故或做可观测性分诊时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
用 Datadog CLI 排查生产日志特定
解决思路
- 使用任何命令前,先阅读相关参考文档:references/logs-commands.md、references/metrics.md、references/query-syntax.md、references/workflows.md、references/dashboards.md。
- 配置必需环境变量:export DD_API_KEY="your-api-key";export DD_APP_KEY="your-app-key"。
- 从 https://app.datadoghq.com/organization-settings/api-keys 获取 API keys。
- 通过 npx @leoflores/datadog-cli <command> 运行 CLI。
- 非美国 Datadog 站点使用 --site 标志,例如 npx @leoflores/datadog-cli logs search --query "*" --site datadoghq.eu。
- 使用 logs search 命令:带过滤器搜索日志。
- 使用 logs tail 命令:实时流式查看日志。
- 使用 logs trace 命令:查找某个分布式 trace 的日志。
- 使用 logs context 命令:获取某个时间戳前后的日志。
- 使用 logs patterns 命令:对相似日志消息分组。
- 使用 logs compare 命令:比较两个时间段之间的日志数量。
- 使用 logs multi 命令:并行运行多个查询。
- 使用 logs agg 命令:按 facet 聚合日志。
- 使用 metrics query 命令:查询时间序列指标。
- 使用 errors 命令:按 service/type 快速生成错误摘要。
- 使用 services 命令:列出有日志活动的服务。
- 使用 dashboards 命令:管理 dashboards(CRUD)。
- 使用 dashboard-lists 命令:管理 dashboard lists。
- 搜索错误示例:npx @leoflores/datadog-cli logs search --query "status:error" --from 1h --pretty。
- 实时 tail 日志示例:npx @leoflores/datadog-cli logs tail --query "service:api status:error" --pretty。
- 错误摘要示例:npx @leoflores/datadog-cli errors --from 1h --pretty。
- Trace 关联示例:npx @leoflores/datadog-cli logs trace --id "abc123def456" --pretty。
- 查询指标示例:npx @leoflores/datadog-cli metrics query --query "avg:system.cpu.user{*}" --from 1h --pretty。
- 比较周期示例:npx @leoflores/datadog-cli logs compare --query "status:error" --period 1h --pretty。
- 使用全局标志 --pretty:输出带颜色的人类可读结果。
- 使用全局标志 --output <file>:将结果导出到 JSON 文件。
- 使用全局标志 --site <site>:指定 Datadog site(例如 datadoghq.eu)。
- 时间参数支持相对格式:30m、1h、6h、24h、7d。
- 时间参数支持 ISO 8601 格式:2024-01-15T10:30:00Z。
- 事故分诊第 1 步:快速错误概览,运行 npx @leoflores/datadog-cli errors --from 1h --pretty。
- 事故分诊第 2 步:判断是否为新问题,与上一周期比较,运行 npx @leoflores/datadog-cli logs compare --query "status:error" --period 1h --pretty。
- 事故分诊第 3 步:查找错误模式,运行 npx @leoflores/datadog-cli logs patterns --query "status:error" --from 1h --pretty。
- 事故分诊第 4 步:按服务缩小范围,运行 npx @leoflores/datadog-cli logs search --query "status:error service:api" --from 1h --pretty。
- 事故分诊第 5 步:获取某时间戳附近上下文,运行 npx @leoflores/datadog-cli logs context --timestamp "2024-01-15T10:30:00Z" --service api --pretty。
- 事故分诊第 6 步:跟踪分布式 trace,运行 npx @leoflores/datadog-cli logs trace --id "TRACE_ID" --pretty。
- 更多调试工作流参见 references/workflows.md。
适用边界 · 注意事项
- 不适用于没有 Datadog 账号或未配置 DD_API_KEY/DD_APP_KEY 的场景。
- 不适用于排查非 Datadog 的可观测性数据、日志或指标平台。
- 如果环境无法执行 npx 包或无法访问对应 Datadog site/API,则不可用。