如何在一个具有正确值的大时间范围内对statsd计数器求和?

时间:2016-10-18 01:58:39

标签: graphite grafana statsd

背景

statsd& amp;的基本用例grafana正在学习在一个时间范围内调用函数的次数 - 无论是“最后6h”,“从今天开始”,“从开始时间开始”等等。

我正在努力寻找的是实现这一目标的正确功能。我正在使用托管解决方案;但是,我可以确认数据是以10秒的间隔从StatsD刷新到Graphite。

当前设置

StatsD Flush: 10s

图表功能: hitcount(counters.login.employer.count, "10seconds")

时间范围: 24小时

问题

使用hitcount(counters.login.employer.count, "10seconds")时,返回的数据不正确。事实上,我可以做24小时,23小时,22小时,并注意值实际上是增加

我在受控环境中执行了所有测试,只有我的机器正在向StatsD发送指标。这还没有出现在生产代码中。

知道会发生什么事吗?

1 个答案:

答案 0 :(得分:1)

计数器工作的方式是在每个间隔上计数器的值被发送到石墨并在statsd中重置,所以你要找的是系列的总和。

您可以使用consolidateBy('sum')maxDataPoints=1结合使用。

请注意,如果您的系列以石墨聚合,则需要确保聚合是总和,否则当值从statsd报告的各个值汇总到聚合桶中时,它们将被平均,并且你的金额不会在更长的时间间隔内有效。您可以阅读有关configuring aggregation in Graphite here的更多信息。