gpt4 book ai didi

prometheus - 我是否正确理解普罗米修斯的速率与增加函数?

转载 作者:行者123 更新时间:2023-12-02 11:25:52 30 4
gpt4 key购买 nike

我已阅读 Prometheus documentation仔细,但对我来说仍然有点不清楚,所以我在这里确认我的理解。
(请注意,为了最简单的示例,我使用了 1 秒作为报废间隔、时间范围 - 即使在实践中不可能)
尽管我们每秒都报废一个计数器并且计数器的值现在是 30。为此,我们有以下时间序列:

second   counter_value    increase calculated by hand(call it ICH from now)
1 1 1
2 3 2
3 6 3
4 7 1
5 10 3
6 14 4
7 17 3
8 21 4
9 25 4
10 30 5

我们想在这个数据集上运行一些查询。

1.rate()
官方文件指出:
“rate(v range-vector) :计算范围向量中时间序列的每秒平均增长率。”

用外行的话,这意味着我们将获得每秒的增量,并且给定秒的值将是给定范围内的平均增量?

这就是我的意思:
速率(计数器 [1s]):将匹配 ICH,因为将仅从一个值计算平均值。
速率(计数器 [2s]):将在 2 秒内从增量中获得平均值并将其分布在秒之间
所以在前 2 秒我们得到了总计 3 的增量,这意味着平均值是 1.5/秒。
最终结果:
second result
1 1,5
2 1,5
3 2
4 2
5 3,5
6 3,5
7 3,5
8 3,5
9 4,5
10 4,5

速率(计数器 [5s]) : 将在 5 秒内从增量中获取平均值并将其分布在秒之间
与 [2s] 相同,但我们从 5 秒的总增量中计算平均值。
最终结果:
second result
1 2
2 2
3 2
4 2
5 2
6 4
7 4
8 4
9 4
10 4

所以时间范围越大,我们得到的结果就越平滑。这些增加的总和将与实际计数器相匹配。

2.增加()
官方文件指出:
“增加(v 范围向量):计算范围向量中时间序列的增加。”
对我来说,这意味着它不会在秒之间分配平均值,而是会显示给定范围的单个增量(带外推)。
增加(计数器 [1s]):在我的术语中,这将与 ICH 和 1s 的速率匹配,只是因为总范围和速率的基本粒度匹配。
增加(计数器 [2s]):前 2 秒给了我们总共 3 的增量,所以
2.seconds 将得到 3 的值,依此类推...
  second result   
1 3*
2 3
3 4*
4 4
5 7*
6 7
7 7*
8 7
9 9*
10 9

*在我看来,这些值是指每秒覆盖的外推值。

我理解得很好还是我离那很远?

最佳答案

在理想情况下(您的样本时间戳恰好在第二个,而您的规则评估恰好在第二个发生)rate(counter[1s])将准确返回您的 ICH 值和 rate(counter[5s])将返回该 ICH 和前一个 4 的平均值。除了第二个 1 的 ICH 是 0,而不是 1,因为没有人知道您的计数器何时为零:也许它在那里增加了,也许它昨天增加了,并保持在 1从那时起。 (这就是为什么您不会在第一次出现值为 1 的计数器时看到增加的原因——因为您的代码刚刚创建并增加了它。)
increase(counter[5s])正是 rate(counter[5s]) * 5 (而 increase(counter[2s]) 正是 rate(counter[2s]) * 2 )。

现在,在现实世界中发生的情况是,您的样本不会在每一秒都准确地收集,并且规则评估也不会完全在第二次发生。因此,如果您有一堆相隔(或多或少)1 秒的样本,并且您使用 Prometheus 的 rate(counter[1s]) ,你不会得到任何输出。那是因为 Prometheus 所做的是获取 1 秒范围内的所有样本 [now() - 1s, now()] (在绝大多数情况下这将是单个样本),尝试计算速率并失败。

如果您查询 rate(counter[5s]) OTOH,Prometheus 将选取范围内的所有样本 [now() - 5s, now] (5 个样本,平均覆盖大约 4 秒,比如说 [t1, v1], [t2, v2], [t3, v3], [t4, v4], [t5, v5] )并且(假设您的计数器没有在间隔内重置)将返回 (v5 - v1) / (t5 - t1) .即它实际上计算了大约 4 秒而不是 5 秒的增长率。
increase(counter[5s])将返回 (v5 - v1) / (t5 - t1) * 5 ,所以在 ~4 秒内的增加率,外推到 5 秒。

由于样本间隔不完全,rateincrease通常会返回整数计数器的浮点值(这对于 rate 很明显,但对于 increase 意义不大)。

关于prometheus - 我是否正确理解普罗米修斯的速率与增加函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54494394/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com