Prometheus中类似StatsD的计数器行为

时间:2019-11-19 20:56:59

标签: prometheus statsd

StatsD“计数器”指标类型描述为:

  

gorets:1|c   这是一个简单的计数器。在“ gorets”存储桶中添加1。每次刷新时,都会发送当前计数并将其重置为0。如果刷新时计数为0,则可以通过设置config.deleteCounters(仅适用于石墨后端)来选择不发送该计数器的任何度量。 Statsd会在每次刷新时发送速率和计数。

实现方式不同,但原理相同:

  

每次刷新时,都会发送当前计数并将其重置为0。

将其发送到兼容的后端,并使用任何兼容的工具(例如,Grafana)对其进行图形化处理,将显示出如下所示的图形:

3 ┃
2 ┃
1 ┃    █
0 ┗━━━━━━━━━━━━━━

换句话说,计数值将存在于“存储桶”中,在该存储桶中您发射计数器并随后立即返回零。

使用普罗米修斯(Prometheus),似乎只有计数器(它们是持久的,不能递减)和量规。如果Prometheus计数器增加,它将读取新的高水印值,直到重新启动该过程。

Prometheus还提供了可以提高和降低其值的仪表,但是在某些情况下,不存在合适的“负”动作,并且在这种情况下无法将仪表降为零。

Prometheus提供了一种rate()函数,这似乎暗示着在柜台上运行时,汇率可以显示仅显示正变化(不可能出现负变化)的比率。

我希望避免在所有图形中添加rate()修饰符。

最能模仿StatsD计数器行为的普罗米修斯惯用方法是什么?

1 个答案:

答案 0 :(得分:1)

Prometheus等效项是一个计数器。最大的区别是状态保存在应用程序内部的内存中,而不是通过StatsD中的网络保存。在Prometheus中,在所有计数器上使用rate()是正常的。

this talk中的详细内容更加详细。