StatsD“计数器”指标类型描述为:
gorets:1|c
这是一个简单的计数器。在“ gorets”存储桶中添加1。每次刷新时,都会发送当前计数并将其重置为0。如果刷新时计数为0,则可以通过设置config.deleteCounters
(仅适用于石墨后端)来选择不发送该计数器的任何度量。 Statsd会在每次刷新时发送速率和计数。
实现方式不同,但原理相同:
每次刷新时,都会发送当前计数并将其重置为0。
将其发送到兼容的后端,并使用任何兼容的工具(例如,Grafana)对其进行图形化处理,将显示出如下所示的图形:
3 ┃
2 ┃
1 ┃ █
0 ┗━━━━━━━━━━━━━━
换句话说,计数值将存在于“存储桶”中,在该存储桶中您发射计数器并随后立即返回零。
使用普罗米修斯(Prometheus),似乎只有计数器(它们是持久的,不能递减)和量规。如果Prometheus计数器增加,它将读取新的高水印值,直到重新启动该过程。
Prometheus还提供了可以提高和降低其值的仪表,但是在某些情况下,不存在合适的“负”动作,并且在这种情况下无法将仪表降为零。
Prometheus提供了一种rate()
函数,这似乎暗示着在柜台上运行时,汇率可以显示仅显示正变化(不可能出现负变化)的比率。
我希望避免在所有图形中添加rate()
修饰符。
最能模仿StatsD计数器行为的普罗米修斯惯用方法是什么?
答案 0 :(得分:1)
Prometheus等效项是一个计数器。最大的区别是状态保存在应用程序内部的内存中,而不是通过StatsD中的网络保存。在Prometheus中,在所有计数器上使用rate()
是正常的。
this talk中的详细内容更加详细。