微米速率聚合如何工作?

问题描述 投票:0回答:1

我正在阅读千分尺的概念文档,但我无法理解速率聚合部分。

特别是这个,它对应于客户端聚合。

文档内容如下:

Micrometer 通过累积当前发布间隔数据的步长值来有效维护速率数据。当轮询步长值时(例如,发布时),如果步长值检测到当前间隔已过,则会将当前数据移动到“先前”状态。先前的状态将被报告,直到下一次当前数据覆盖它为止。下图显示了当前状态和先前状态的交互以及轮询:

根据我的理解,步长值是将指标发送到监控系统(例如石墨)的时间间隔。那么当前间隔是什么意思?它与步长值有何不同?

prometheus metrics graphite micrometer
1个回答
0
投票

Micrometer 在不同注册表的情况下以不同方式聚合这些值。有步骤(也称为增量)和累积聚合风格。

累积基本上是推/拉时的运行总计,但步骤/增量基本上是自上一步以来的差异。

“步长值”基本上是您记录和累积的值(例如:您将计数器递增 5 次,您的步长值为 5)。 “步数间隔”是步数边界之间的时间,或者您可以说步数的长度(例如:1 分钟)。

当发布发生时,将发布的值是上一步中累积的值(除非应用程序关闭,然后发布当前步骤),让我对此进行说明(归功于Tommy Ludwig)。传说如下:

-
标志着时间的流逝
|
标记步骤边界
p
标记出版物
s
标记 MeterRegistry 上调用 start 的时间
S1/S2
表示自开始以来的顺序步骤间隔

     S1         S2         S3         S4         S5
|------s---|---p------|------p---|-----p----|---p------|---

发布时 (

p
),将发布基于上一步间隔期间记录的值的指标。因此
p
中的
S4
会发布
S3
中记录的累积数据。

上面的引用试图解释,当您跨越步骤边界时,您到目前为止记录的数据将被移动到

previous
变量,并且
current
将递增。

假设我们现在已接近

S2
的末尾,并且到目前为止您已将计数器增加了 5 次。时间流逝,没有任何行动,现在我们处于
S3
。然后再次增加计数器。 Micrometer 中的机制将检测到您现在处于不同的步骤(越过步骤边界,您就处于
S3
中)。因此,它不会增加属于上一步的值 (
5
),而是将其“保存”在
previous
变量中,重置
current
并增加它。此后,
previous
应为 5,
current
应为 1。然后时间向前推进,
previous
数据将被发布并重置,而
current
保持不变。

这个解释有道理吗?

© www.soinside.com 2019 - 2024. All rights reserved.