【发布时间】:2019-04-30 20:13:22
【问题描述】:
我们使用 Grafana + Prometheus 来监控我们的基础架构,最近我们添加了一些以业务为中心的指标,但我们跟踪的一个计数器一直存在问题。这是一个会话时间计数器。基本上,每次会话结束时,我们都会将该计数器增加用户在该会话中花费的时间。因此,如果用户使用该软件花费 2m,则计数器将增加 120000 ms。几天来,这种方法效果很好,但是从昨天开始,当我们在一个实例计数器和其他实例计数器之间存在很大差异时,并且由于部分服务重新启动而重置了那个大计数器,我无法获得不再有意义的单一统计面板。
这是所发生情况的图表(此计数器有 3 个标签,导致 >50 个标签组合)
此计数器跟踪的当前所有时间总计为 13.8 年,为期 4 天,但自从计数器重置后,我的单一统计指标要么是 -20 年(使用差异),要么是 35 年(使用范围)。 24 小时。如果您不考虑计数器重置,这并没有错,因为 diff 和 range 将查看 min/max/first/current 值,但它不再是一个有用的指标。
如果我将时间范围设置为不包括计数器重置,则 Diff 和 Range 显示的值都非常接近预期值(我们的使用非常线性且可预测)。
singlestat 面板公式如下所示
sum(dyno_app_music_total_user_listen_time{server=~"[[server]]", clusterId=~"[[clusterid]]"})
如何处理单个统计指标的计数器中的重置?
【问题讨论】:
标签: grafana prometheus promql