Dee*_*ari 12 grafana prometheus promql
我浏览了 PromQL 文档,发现速率有点令人困惑。然后我尝试了 Prometheus 查询仪表板中的一个查询,发现下面给出的结果
Time Count increase rate(count[1m])
15s 4381 0 0
30s 4381 0 0
45s 4381 0 0
1m 4381 0 0
15s 4381 0 0
30s 4402 21 0.700023
45s 4402 0 0.700023
2m 4423 21 0.7
15s 4423 0 0.7
30s 4440 17 0.56666666
45s 4440 0 0.56666666
3m 4456 16 0.53333333
Run Code Online (Sandbox Code Playgroud)
我从仪表板获得的最后一列值,但我无法理解它是如何计算的。
分辨率 - 15 秒
刮擦间隔:30s
Mar*_*ira 13
“increase”函数计算某个计数器增长了多少,“rate”函数计算该度量每秒增长的量。
分析您的数据,我认为您使用 [30s] 作为“增加”,使用 [1m] 作为“速率”(正确的使用值对结果很重要)。
基本上,例如,在 2m 时间内我们有:
increase[30s] = count at 2m - count at 1.5m = 4423 - 4402 = 21
rate[1m] = (count at 2m - count at 1m) / 60 = (4423 - 4381) / 60 = 0.7
Run Code Online (Sandbox Code Playgroud)
Prometheus按以下方式计算rate(count[d])时间戳:t
count在时间范围上命名(t-d ... t]。请注意,t-d时间戳不包含在范围内,而t时间戳包含在范围内。例如,在rate(count[1m])按时间戳计算时t=2m,选择以下原始样本:4423 @ 2m, 4402 @ 1m45s, 4402 @ 1m30s, 4381 @ 1m15s。请注意,该4381 @ 1m示例不包含在计算中。count。Prometheus 可以检测并删除所选时间范围内的时间序列重置为零,但为了清楚起见,我们暂时跳过此操作。在上面的情况下,它计算4423 @ 2m - 4381 @ 1m15s = 42.d每个名称为时间序列的持续时间(以秒为单位)count。在上面的情况下,它计算42 / 1m = 42 / 60s = 0.7.rate(count[1m]) @ 2m- -的实际结果0.700023与计算结果不同 - 0.7- 由于外推法,如果第一个和/或最后一个原始样本的时间戳距离所选时间范围界限太远,则可以将其应用于步骤 2 中计算的结果。有关推断的更多详细信息,请参见本期。
[1m ... 1m15s]另请注意,在计算 和 时,rate()Prometheus会错过时间范围内可能出现的计数器增加increase()。请参阅此处和此处有关此问题的更多详细信息。
| 归档时间: |
|
| 查看次数: |
14158 次 |
| 最近记录: |