核心是将监控配置作为代码管理并集成到ci/cd中:所有yaml规则存git,ci用promtool校验语法与promql,ci任务自身暴露指标供采集,alertmanager按severity分级通知并附直达链接。

在 Linux 环境下的 CI/CD 流程中,集成 Prometheus 实现实时告警,核心在于让监控逻辑随代码变更自动生效,而不是等故障发生后手动排查。关键不在于装几个组件,而在于把监控配置当作代码来管理、测试和部署。
把监控规则写成可版本控制的 YAML
所有告警逻辑必须以文本形式存入 Git 仓库,例如:
• 主配置 prometheus.yml 定义抓取目标(Jenkins、Node Exporter、自定义脚本端点)
• 告警规则文件统一放在 rules/alerts.yml,用标准 PromQL 表达式定义异常条件
• 每条规则带 for 持续时间(如 for: 2m),避免瞬时抖动误报
• 标签(labels)里明确 severity、service、team,方便 Alertmanager 分路通知
用 promtool 在 CI 阶段做静态校验
每次提交监控配置前,CI 流水线必须执行两步验证:
• promtool check config prometheus.yml —— 检查语法与 target 地址是否合法
• promtool check rules rules/*.yml —— 验证 PromQL 表达式能否解析、是否有未定义变量
若任一检查失败,流水线直接中断,不进入部署环节。这能拦截 90% 以上的低级配置错误。
让 CI/CD 任务本身成为被监控对象
Jenkins 或 GitLab Runner 的构建状态需暴露为 Prometheus 可采集指标:
• 安装 Jenkins 的 Prometheus Metrics Plugin,自动提供 jenkins_builds_last_success_seconds_ago、jenkins_queue_length 等原生指标
• 对自研 CI 工具,通过简单 HTTP 接口返回 ci_job_status{job="deploy-prod", result="failure"} 1 这类格式的指标
• 抓取间隔设为 15–30 秒,确保构建失败后 1 分钟内触发告警
告警通知必须分级触达,不能只靠邮件
Alertmanager 配置需按严重程度分流:
• critical 级别(如主干构建连续失败、部署超时 >10 分钟)→ 触发 PagerDuty + 电话呼转
• warning 级别(如某项目构建时长突增 200%)→ 发送 Slack 频道 + 钉钉群
• 所有告警附带直达链接:跳转到对应 Jenkins 构建页或 Grafana 异常时段看板
避免“收到告警却不知从哪查起”的情况











