如果仪表可以充当计数器,那么在普罗米修斯中既有计数器又有仪表?

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

[在CounterGauge之间决定时,Prometheus documentation states that

要在计数器和量规之间选择,有一个简单的经验法则:如果该值可以下降,这是一个量表。计数器只能上升(并且重置,例如进程重新启动时。)

它们似乎涵盖了重叠的用例:您可以使用只会不断增加的量规。那么,为什么还要首先创建“计数器”指标类型呢?您为什么不简单地同时使用两者呢?

monitoring prometheus metrics
2个回答
0
投票

从概念上看,量具和计数器的用途不同

  • 仪表通常代表状态,通常是为了检测饱和度。
  • 计数器的绝对值没有真正意义,真正的目的是使用irate/rate()increase() ...等函数来计算演化(通常是利用率)>
  • 这些演化操作需要可靠地计算量规无法实现的增长,因为您需要检测值的重置。

技术上,计数器具有两个重要属性:

  1. 它总是从0开始
  2. 它总是增加(即代码中增加)
  3. 如果应用程序在两次Prometheus刮擦之间重新启动,则第二个刮擦的值可能小于前一个刮擦的值,并且可以恢复增加的值(之所以这样,是因为您总是会在最后一个刮擦和重置之间松动增加的值) 。

计算从t1到t2的废料之间的计数增加的简单算法是:

  • 如果是counter(t2) >= counter(t1),则是increase=counter(t2)-counter(t1)
  • 如果counter(2) < counter(t1)则为increase=counter(t2)
  • 作为结论,从技术角度来看,您可以使用仪表而不是计数器,只要您在启动时将其重置为0并仅将其递增,但任何违反合同的情况都会导致错误的值。

作为旁注,我还期望计数器实现使用无符号整数表示,而gauge宁愿使用浮点表示。这对代码有一些小的影响,例如能够自动溢出到0的能力以及更好地支持当前cpus上的原子操作。


0
投票

对于计数器,您关心它的增长速度,而对于压力计,您关心的是实际值。尽管有一些指标(理论上)只能上升,但这并不能使它们反作用。

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