为什么使用rate函数计算指标增长率时,Grafana绘制结果显示“No data”?
使用Grafana绘制以下PromQL查询结果时,Grafana显示“No data”:
rate(prometheus_tsdb_head_samples_appended_total[1m])
但是查询prometheus_tsdb_head_samples_appended_total本身是能看得到数据的,这是为什么?
使用Prometheus的Table视图查看数据:
查询1:
prometheus_tsdb_head_samples_appended_total
结果1:
prometheus_tsdb_head_samples_appended_total{instance="prometheus", job="prometheus"}
1395519
查询2:
prometheus_tsdb_head_samples_appended_total[1m]
结果2:
prometheus_tsdb_head_samples_appended_total{instance="prometheus", job="prometheus"}
1395519 @1616912226.698
查询3:
rate(prometheus_tsdb_head_samples_appended_total[1m])
结果3:
Empty query result
从查询2的结果来看,1m的时间内只有一个数据点。而rate函数在计算指标增长率时,至少需要两个数据点,只有一个数据点无法计算增长率,因此显示“No data”。
要解决这个问题,只要把时间范围扩大到大于Prometheus数据抓取间隔就可以:
rate(prometheus_tsdb_head_samples_appended_total[2m])
当然了,如果可以且必要的话,提高Prometheus数据抓取频率也是一种解决方法。