Prometheus 告警反复抖动:用 for、keep_firing_for 与规则测试稳定通知
适用场景 本文适用于 Prometheus 根据错误率、延迟、资源使用率等指标触发告警,并通过 Alertmanager 发送通知的场景。典型问题是:指标在阈值附近波动,告警几分钟内反复触发和恢复;短暂采集缺口被误判为恢复;值班人员收到大量重复通知,却难以判断故障是否真正结束。 目标不是简单地“把告警调迟”,而是分别处
Tag
包含这个标签的文章。
适用场景 本文适用于 Prometheus 根据错误率、延迟、资源使用率等指标触发告警,并通过 Alertmanager 发送通知的场景。典型问题是:指标在阈值附近波动,告警几分钟内反复触发和恢复;短暂采集缺口被误判为恢复;值班人员收到大量重复通知,却难以判断故障是否真正结束。 目标不是简单地“把告警调迟”,而是分别处
适用场景 集群管理员准备升级内核、更换节点或缩容节点池,执行 kubectl drain 后命令长时间重试,并反复出现 Cannot evict pod as it would violate the pod's disruption budget。业务当前未必已经中断,但维护窗口正在被耗尽。 本文适用于由 Deplo
适用场景 应用运行一段时间后,新请求开始等待数据库连接,接口 P99 持续升高,最终出现连接池获取超时或 PostgreSQL too many connections。数据库 CPU、磁盘 I/O 和慢 SQL 指标却不高,重启应用后又能短暂恢复。 这类现象经常不是“连接池太小”,而是业务代码开启事务后没有及时提交或
适用场景 本文适用于 MySQL 8.0 或已启用 GTID 的 MySQL 5.7 主从/主备架构:监控显示 Seconds_Behind_Source 持续增长,报表、读库或故障切换的恢复点开始不可接受。目标是先确认延迟真实原因,再在不破坏复制一致性的前提下恢复追平。 现象描述 一次订单促销后,主库写入从平时每秒数
适用场景 适用于运行在 Linux 虚拟机、物理机或容器节点上的 Web 服务。业务表现为同一版本在部分机器上间歇出现登录失效、JWT token is not active / token expired、HTTPS 握手失败或调用云 API 返回签名过期;重试、重启应用有时短暂恢复,但问题会再次出现。 本文以“应用
适用场景 业务运行在 Linux 主机、Docker 或 Kubernetes 节点上,经过 NAT、iptables/nftables 防火墙或四层负载均衡转发。某个时段开始出现 API 偶发超时、DNS 请求失败、容器无法访问外部服务,但主机 CPU、内存和带宽看起来都正常;重启网络或重启节点后短暂恢复。 本文以
适用场景 业务使用 Redis 承载登录态、商品详情、计数器或排行榜。平时接口稳定,但在促销、定时任务或某些请求集中到来时,应用开始出现 Redis 超时;监控中 instantaneous_ops_per_sec 并不一定很高,CPU 也可能没有持续满载。 本文以单实例或主从架构为例,说明如何区分 Hot Key(极
适用场景 集群中的应用偶发报出 lookup xxx on 10.96.0.10:53: i/o timeout、SERVFAIL 或连接外部服务失败;重试后又恢复。故障通常集中在业务高峰,Pod 重建、扩容或切换节点后更明显。本文适用于使用 CoreDNS 作为集群 DNS,且 CoreDNS 需要转发外部域名查询的
适用场景 服务容器偶发或持续重启,docker ps -a 显示退出码为 137,应用日志末尾没有 Java、Python 或 Go 自己抛出的异常。宿主机看起来还有可用内存,但容器仍被杀掉;或者一次流量高峰后多个容器同时不可用。 本文以 Docker / Docker Compose 部署的 API 服务为例,说明如
适用场景 应用报出 No space left on device,但 df -h 显示磁盘使用率不高;Nginx 无法写入访问日志、容器无法创建临时文件、CI 构建失败,甚至 touch 一个空文件也失败。这通常不是字节空间耗尽,而是文件系统可分配的 inode 已经用完。 本文以 ext4/XFS 主机为例,给出从