Prometheus 报警的延迟探索

格物致知 at 
Prometheus 报警的延迟探索的配图
0. 概述在日常的工作中,我经常被问到的一个问题是我的系统指标明明已经达到报警条件了,为什么没有触发报警?还有,为什么这个报警的触发时间会比系统的真实状态差这么多?本文就来探讨一下这个问题。1. 数据采集,计算和报警当你看这篇文章的时候,我想你应该是知道 Prometheus 使用的是 Go 程序语言,不知道也没关系。如果你知道的话,那么我先告诉你,在 Prometheus 内部,例如各种数据的采集和判断一些监控数据是否符合你设置的报警规则,以及将这些产生出来的报警发送出去的功能都是通过不同的 goroutine 来完成的;如果你不知道 Go 语言,那么可以理解为是通过类似于其他语言中多线程(……