gpt4 book ai didi

monitoring - 如果仪表可以充当计数器,为什么普罗米修斯既有计数器又有仪表?

转载 作者:行者123 更新时间:2023-12-03 14:36:02 25 4
gpt4 key购买 nike

CounterGauge之间决定时,Prometheus documentation states that

To pick between counter and gauge, there is a simple rule of thumb: if the value can go down, it is a gauge. Counters can only go up (and reset, such as when a process restarts).



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

最佳答案

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

  • 量表通常代表一种状态,通常是为了检测饱和度。
  • 计数器的绝对值不是很有意义,真正的目的是使用irate/rate()increase() ...
  • 等函数来计算演化(通常是利用率)

    这些演变操作需要可靠地计算使用量规无法实现的增量,因为您需要检测该值的重置。

    从技术上讲,计数器具有两个重要属性:
  • 它总是从0开始
  • 它总是增加(即代码中增加)

  • 如果应用程序在两次Prometheus爬取之间重新启动,则第二个爬取的值可能小于上一个爬取的值,并且可以恢复增加的值(之所以如此,是因为您总是会在上一次爬取和重置之间松开增加的值)。

    一种简单的算法可计算从t1到t2的废料之间的计数增加:
  • 如果为counter(t2) >= counter(t1),则为increase=counter(t2)-counter(t1)
  • 如果为counter(2) < counter(t1),则为increase=counter(t2)

  • 综上所述,从技术角度来看,您可以使用仪表而不是计数器,前提是您在启动时将其重置为0,并且只能将其递增,但是任何违反契约(Contract)的行为都会导致错误的值。

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

    关于monitoring - 如果仪表可以充当计数器,为什么普罗米修斯既有计数器又有仪表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58674087/

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