我正在使用 statsd(来自 git master 分支的最新版本)和石墨(0.9.10)作为后端。
在我的(Django)代码中,我statsd.incr("signups")
在用户注册时调用。在 Graphite 的 Web 界面中,我现在在 Graphite/stats/signups 下看到了一个显示每秒注册数的漂亮图表。当我查看 Graphite/stats_counts/signups 下的图表时,我希望看到注册总数,但它看起来像是每 10 秒间隔的注册数(我猜这是 statsd 的刷新间隔)。
我确实配置storage-aggregation.conf
了,也许我弄错了?另外,我停止了 carbon (不是用stop
,而是真的杀死了它,因为显然只是停止它不允许它重新加载配置)。我也删除了/opt/graphite/storage/whisper/stats_counts
目录。然后我重新启动了 carbon 守护进程。我仍然得到每 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
和这个:
# /opt/graphite/conf/storage-schemas.conf
[stats]
priority = 110
pattern = ^stats.*
retentions = 10s:6h,1m:7d,10m:1y
我开始认为我做的一切都是正确的,而且 Graphite 确实在做它应该做的事情。所以问题是:
配置 statsd 和石墨以绘制自一开始以来的注册总数的正确方法是什么?
我想我可以偶尔更改我的 Django 代码来计算用户总数,然后使用 agauge
而不是 an incr
,但感觉石墨应该能够即时总结它收到的任何内容,而不是就在它聚合数据的时候。
编辑:
使用 Graphite 的 Web 界面,在 Graphite 作曲家中,我将该integral
函数应用于基本的“每秒注册数”图(在 Graphite/stats/signups 中),并得到了所需的图(即注册总数)。这是获取累积图的适当方法吗?这很烦人,因为我需要从一开始就选择完整的日期范围,我无法放大图表,否则我只能得到放大部分的积分。:-(