Prometheus 如何处理服务器上的计数器
Prometheus how to handle counters on server
我有文章,每篇文章我都想阅读计数
# TYPE news_read_counter2 Counter
news_read_counter2{id="2000"} 168
现在服务器上的计数器保存在 redis\memcached 中,因此它们可以不时重置,所以过了一会儿,redis 机器重新启动并且服务器没有最后一个 news_read_counter 数字如果我再次从零开始
# TYPE news_read_counter2 Counter
news_read_counter2{id="2000"} 2
现在查看 news_read_counter2{id="2000"} 图表,我看到计数器下降到 2 而文档说:
A counter is a cumulative metric that represents a single numerical
value that only ever goes up.
所以现在要跟踪 news_read_counter 我需要将数据保存到数据库中,然后我回到需要使用 mysql 处理我的数据的起始区域
这里是 redis 重启后的计数器图像:
允许将计数器重置为 0,因此无需在此处执行任何特殊操作来处理它。有关详细信息,请参阅 http://www.robustperception.io/how-does-a-prometheus-counter-work/。
建议使用 client library,它将为您处理所有这些。
此外,按照惯例,您应该为计数器添加 _total
后缀,以便指标应为 news_reads_total
.
您通常不想像您在示例中那样查看计数器的总数,因为一旦您实际尝试分析性地使用它,它就没有多大意义。
这个想法是你想知道在一段时间内增加。例如,你想知道最近7天、本月到目前为止、最近30天等的文章总浏览量吗?
and this article 很好地解释了所有这些,但这里有一些例子。出于演示目的,我使用了一个名为 walks_started_total
.
的计数器
问题
查询:`walks_started_total`
解决方案 1
查看上周的总数:`increase(walks_started_total[1w])`
解决方案 2
在 1 分钟内:`increase(walks_started_total[1m])`
我有文章,每篇文章我都想阅读计数
# TYPE news_read_counter2 Counter
news_read_counter2{id="2000"} 168
现在服务器上的计数器保存在 redis\memcached 中,因此它们可以不时重置,所以过了一会儿,redis 机器重新启动并且服务器没有最后一个 news_read_counter 数字如果我再次从零开始
# TYPE news_read_counter2 Counter
news_read_counter2{id="2000"} 2
现在查看 news_read_counter2{id="2000"} 图表,我看到计数器下降到 2 而文档说:
A counter is a cumulative metric that represents a single numerical value that only ever goes up.
所以现在要跟踪 news_read_counter 我需要将数据保存到数据库中,然后我回到需要使用 mysql 处理我的数据的起始区域
这里是 redis 重启后的计数器图像:
允许将计数器重置为 0,因此无需在此处执行任何特殊操作来处理它。有关详细信息,请参阅 http://www.robustperception.io/how-does-a-prometheus-counter-work/。
建议使用 client library,它将为您处理所有这些。
此外,按照惯例,您应该为计数器添加 _total
后缀,以便指标应为 news_reads_total
.
您通常不想像您在示例中那样查看计数器的总数,因为一旦您实际尝试分析性地使用它,它就没有多大意义。
这个想法是你想知道在一段时间内增加。例如,你想知道最近7天、本月到目前为止、最近30天等的文章总浏览量吗?
walks_started_total
.