Prometheus核心概念:一图了解瞬时向量Instant vector和区间向量Range vector的区别
1 背景 我们在查询Prometheus的时候,通常有两种方式,一种是查瞬时的Metric采样数据,一种是查一段时间范围内的Metric采样数据。 如果对这两种查询方式理解不到位,结果往往是对PromQL的一些内置函数的使用是错误的,或者查询的结果并不是自己预期的那样。 那都是查Metric采样数据,查询瞬时和查询一段时间范围内这两种方式有什么区别呢? 2 图解Metric和采样 Prometheus和Exporter的关系 在上一篇文章 Prometheus源码分析:基于Go Client自定义的Exporter,是如何在Local存储Metrics的? 中,我们介绍了Exporter是如何在Local存储Metric的。 本质是将Metric放在本地的Map中,然后等待Prometheus服务端来周期性地Pull。 3 从Prometheus服务端的视角来看Metric采样 Prometheus对target的Metric进行采样 Prometheus会周期性的对Exporter的target进行PULL。 例如:在时间T1,Prometheus访问target,采样到的Metric信息是:Metric01=Vt1 例如:在时间T2,Prometheus访问target,采样到的Metric信息是:Metric01=Vt2 Metric02=Vt2 上述示例说明