如何获得带有statsd和graphite的累积计数图?

Min*_*ark 6 configuration graphite statsd

我正在使用statsd(git master分支的最新版本)和石墨(0.9.10)作为后端.

在我的(Django)代码中,我statsd.incr("signups")在用户注册时调用.在石墨的网络界面中,我现在看到一个漂亮的图表,显示了Graphite/stats/signups下每秒注册的次数.当我查看Graphite/stats_counts/signups下的图表时,我希望看到注册总数,但看起来它是每10秒间隔的注册数量(我猜是statsd的刷新间隔).

确实配置了storage-aggregation.conf,也许我不知怎的错了?此外,我停止了碳(不是stop,但真的杀了它,因为显然只是停止它不允许它重新加载配置).我也删除了/opt/graphite/storage/whisper/stats_counts目录.然后我重新启动了碳守护进程.我仍然得到每10秒间隔的注册数量.:-(

这是我的配置:

# /opt/graphite/conf/storage-aggregation.conf

[lower]
pattern = \.lower$
xFilesFactor = 0.1
aggregationMethod = min

[upper]
pattern = \.upper$
xFilesFactor = 0.1
aggregationMethod = max

[upper_90]
pattern = \.upper_90$
xFilesFactor = 0.1
aggregationMethod = max

[count]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum

[count_ps]
pattern = \.count_ps$
xFilesFactor = 0
aggregationMethod = sum

[sum]
pattern = \.sum$
xFilesFactor = 0
aggregationMethod = sum

[sum_90]
pattern = \.sum_90$
xFilesFactor = 0
aggregationMethod = sum

[stats_counts]
pattern = ^stats_counts\.
xFilesFactor = 0
aggregationMethod = sum

[min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min

[max]
pattern = \.max$
xFilesFactor = 0.1
aggregationMethod = max

[default_average]
pattern = .*
xFilesFactor = 0.5
aggregationMethod = average
Run Code Online (Sandbox Code Playgroud)

还有这个:

# /opt/graphite/conf/storage-schemas.conf

[stats]
priority = 110
pattern = ^stats.*
retentions = 10s:6h,1m:7d,10m:1y
Run Code Online (Sandbox Code Playgroud)

我开始认为我做的一切都是正确的,并且Graphite确实在做它应该做的事情.所以问题是:

配置statsd和graphite以从头开始绘制总注册数的正确方法是什么?

我想我可以改变我的Django代码来计算用户的总数,偶尔使用a gauge而不是a incr,但感觉石墨应该能够只是总结它接收到的任何内容,而不是就在汇总数据的时候.

编辑:

使用Graphite的Web界面,在Graphite作曲家中,我将该integral函数应用于基本的"每秒注册"图(在Graphite/stats/signups中),我得到了所需的图形(即注册总数).这是获得累积图的适当方法吗?这很烦人,因为我需要从一开始就选择完整的日期范围,我无法放大图形,否则我只是得到缩放部分的积分.:-(

mrt*_*azz 3

是的,该integral()函数是执行此操作的正确方法。由于 StatsD 在这方面是无状态的(所有收集的数据在刷新到 Graphite 后都会重置/删除),因此它无法汇总自某个点以来接收到的所有数据。

来自该函数的 Graphite 文档integral()

This will show the sum over time, sort of like a continuous addition function. Useful for finding totals or trends in metrics that are collected per minute.