后端与接口
管理 Datadog 监控与告警时:用 pup 安全创建…
适用于需要用 Datadog/pup 创建、查询、审查、静默或标记删除监控器,并优化告警阈值的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
管理 Datadog 监控与告警时:用 特定
解决思路
- 按 token 高效顺序执行有范围命令:先检查上下文(先前输出、对话、已保存值);缺失必需值时先运行发现命令;仍不明确则让用户确认;再运行目标命令;避免可能失败的可推测命令。
- 快速开始:运行 `pup auth login` 登录。
- 列出监控:运行 `pup monitors list`;按标签过滤时运行 `pup monitors list --tags "team:platform"`。
- 获取指定监控:运行 `pup monitors get <id>`。
- 创建监控:运行 `pup monitors create --file monitor.json`。
- 静默告警:由于没有 `pup monitors mute/unmute` 命令,使用 downtime 载荷静默监控通知;运行 `pup downtime create --file downtime.json` 创建静默;运行 `pup downtime cancel <downtime_id>` 取消静默。
- 避免告警疲劳:不要使用会频繁抖动/触发的告警,使用 `last_Xm` 而不是 `last_1m`。
- 设置有意义阈值:基于 SLO,而不是猜测。
- 设置可操作告警:如果无需操作就不要告警。
- 在告警消息中包含 runbook:在消息中使用 `@runbook-url`。
- 修正过于敏感的查询:不要用 `avg(last_1m):avg:system.cpu.user{*} > 50`;应使用稳定告警,例如 `avg(last_5m):avg:system.cpu.user{env:prod} by {host} > 80`。
- 使用正确作用域:不要对所有对象告警,例如 `avg(last_5m):avg:system.cpu.user{*} > 80` 无作用域;应限定重要范围,例如 `avg(last_5m):avg:system.cpu.user{env:prod,service:api} by {host} > 80`。
- 设置恢复阈值以防止抖动:在 monitor 的 `options.thresholds` 中设置 `critical: 80`、`critical_recovery: 70`、`warning: 60`、`warning_recovery: 50`。
- 在告警消息中包含上下文:示例消息包含 Host、当前值、阈值、Runbook 步骤,并通知 `@slack-ops @pagerduty-oncall`;Runbook 可包含 `ssh {{host.name}} 'top -bn1 | head -20'` 等步骤。
- 绝不直接删除监控:使用安全删除工作流,将监控名称前加 `[MARKED FOR DELETION]`;获取 monitor,检查 name 是否已包含该标记;若已标记则打印已标记并返回 False;否则设置 new_name 为 `[MARKED FOR DELETION] {name}`,调用 `client.update_monitor(monitor_id, {"name": new_name})`,打印成功。
- 选择监控类型:`metric alert` 用于 CPU、内存、自定义指标;`query alert` 用于复杂指标查询;`service check` 用于 Agent 检查状态;`event alert` 用于事件流模式;`log alert` 用于日志模式匹配;`composite` 用于组合多个监控;`apm` 用于 APM 指标。
- 审计无 owner 的监控:运行 `pup monitors list | jq '.[] | select(.tags | contains(["team:"]) | not) | {id, name}'`。
- 审计噪声监控(高告警数):运行 `pup monitors list | jq 'sort_by(.overall_state_modified) | .[:10] | .[] | {id, name, status: .overall_state}'`。
- 区分 downtime 与 muting:任何计划内静默窗口使用 Downtime;查询/阈值行为变化则编辑 Monitor;优先使用 Downtime,运行 `pup downtime create --file downtime.json`。
- 故障处理:告警未触发时检查 query 是否返回数据、检查阈值;告警太多时增大窗口、添加恢复阈值;无数据告警时检查 Agent 连通性、指标是否存在;认证错误时运行 `pup auth refresh`。
适用边界 · 注意事项
- 没有安装并在 PATH 中配置 `pup`,或没有 Datadog 账号/权限时不可用。
- 只需要普通应用日志或本地开发调试,不需要 Datadog 告警管理时不必使用。
- 不要直接删除监控器;需要下线时应使用标记删除工作流。