prometheus - Prometheus Query 以高间隔和周期丢失数据
问题描述
我有一个非常简单的 promQL 查询:
sum(my_metrics)
好吧,我在每个时期都有以下回报:
- 过去 6 小时:1058924(间隔 20 秒)
- 过去 12 小时:358243(间隔 1m)
- 过去 24 小时:163049(间隔 2m)
我理解间隔的增加(因为数据点)。但是这种情况给了我一个非常混乱的数字,而且仪表盘也不可靠。
最大的问题是:如何在 Grafana/Prometheus 中进行正确的计算而不会“丢失数据”。
解决方案
尝试sum(sum_over_time(my_metrics[d]))
,其中d
必须替换为6h
,12h
或24h
以获得过去 6 小时、12 小时或 24 小时内所有指标值的总和。
这sum_over_time(m[d])
是一个汇总函数,它计算在给定后视窗口上存储在数据库中的原始样本的总和,d
然后将time
其传递给/api/v1/query。每个时间序列独立计算总和。
这sum()
是一个聚合函数,它计算多个时间序列中具有相同时间戳的点的总和。