监控数据(在即时查询 Table 视图里)为何一会能查到一会查不到?
关键字 频率 时序库参数
即时查询页面我们通过PromQL查询一个指标时,在Table视图(即时查询,instant query)中可能会出现机器标识出现类似不可重复读(原来是A,现在却变为了B,再查变A和B或者都没有了)的现象发生,不过要是切换到Graph视图(范围查询,range query)中可以看到数据上报稳定正常,原因通常和两个因素有关:
- 采集数据频率
- 时序库参数(回溯窗口,数据缺失情况可以最多回溯多久数据作为匹配结果,VM中是
-search.maxStalenessInterval XX
,prometheus中是--query.lookback-delta=XX
)
假设数据上报如下图所示,这是一个采集数据上报的时间轴,+
点表示上报数据,_
点表示查询时间点,如图所示,采集频率15s,其中如果时序库参数设置10s(VM中是 -search.maxStalenessInterval 10s
,prometheus中是--query.lookback-delta=10s
),则图上XX表示的时间段就是即时查询中数据缺失的时间段。因为 00:30 上报了数据,从这开始,一直到 00:40 这 10s 内都可以查到数据,因为向后查找窗口是 10s,但是 00:40~00:45 这 5s 内的数据就查不到了。如果时序库最大失效窗口参数设置为 15s,那么就可以查到 00:40~00:45 这 5s 内的数据了。
00:40
|
|
------+---------+---------+--_----_XX+---------+---------+------->
|
|
00:00 00:15 00:30| 00:45 01:00 01:15
|
00:35