我们运行了etsy/statsd节点应用程序,每10秒将统计信息刷新为碳/低语.如果发送100个增量(计数),在前10秒内,石墨会正确显示它们,如:
localhost:3000/render?from=-20min&target=stats_counts.test.count&format=json
[{"target": "stats_counts.test.count", "datapoints": [
[0.0, 1372951380], [0.0, 1372951440], ...
[0.0, 1372952460], [100.0, 1372952520]]}]
Run Code Online (Sandbox Code Playgroud)
然而,10秒后,这个数字下降到0,null和33.3.最终,它在初始增量数的1/6处稳定,在这种情况下16.6.
/opt/graphite/conf/storage-schemas.conf 是:
[sixty_secs_for_1_days_then_15m_for_a_month]
pattern = .*
retentions = 10s:10m,1m:1d,15m:30d
Run Code Online (Sandbox Code Playgroud)
我想获得准确的计数,石墨是否平均了60秒窗口的数据而不是总结它?使用积分函数,经过一段时间后,显然给出:
localhost:3000/render?from=-20min&target=integral(stats_counts.test.count)&format=json
[{"target": "stats_counts.test.count", "datapoints": [
[0.0, 1372951380], [16.6, 1372951440], ...
[16.6, 1372952460], [16.6, 1372952520]]}]
Run Code Online (Sandbox Code Playgroud) 这是过去24小时的统计信息显示(在Graphite Composer中):

这是"过去14天"统计数据的显示:

那里没什么区别.我无法说服Graphite显示过去24小时内任何时段的任何数据.
以下是storage-schemas.conf(我正在使用StatsD)的相关条目:
[stats]
pattern = ^stats.*
retentions = 10:2160,60:10080,600:262974
[stats_counts]
pattern = ^stats_counts.*
retentions = 10:2160,60:10080,600:262974
Run Code Online (Sandbox Code Playgroud)
和我的storage-aggregation.conf:
[min]
pattern = \.min$
xFilesFactor = 0
aggregationMethod = min
[max]
pattern = \.max$
xFilesFactor = 0
aggregationMethod = max
[sum]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum
[default_average]
pattern = .*
xFilesFactor = 0
aggregationMethod = average
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有五天左右的数据.我错过了什么?
已编辑添加:
我想我应该提一下,我开始使用默认设置,storage-schemas.conf并且只在昨天重建了我的耳语数据库文件以匹配上述配置.我不认为这应该是相关的,但它确实存在.
更新:
我正在使用2012年5月发布的来自PyPI的0.9.10石墨网和耳语.
我有一个应用程序,通过statsd发布一些stats到石墨.其中一个统计信息只是在每次服务收到消息时向statsd发送一个stat增量.我需要显示一个图表,显示此统计信息随时间的相对流量.一般来说,我应该能够显示每个刷新的图表,例如10秒,并显示在这10秒内收到的邮件数量以及给定时间段内的历史记录.但是,无论我如何格式化我的API查询,我似乎都无法获得准确的数据.我读了很多文章,包括这篇文章:
http://code.hootsuite.com/accurate-counting-with-graphite-and-statsd/
这似乎给了一些很好的见解,但仍然没有完全给我我需要的东西.这是我来的关闭:
积分(hitcount(stats.recieved,"10seconds"))
但是,我不喜欢这个的累积结果,当我运行这个时,我得到的统计数据远不及我在日志中看到的收到的消息.我接受一些数据包丢失,但我们谈论的是数量级.我知道我做错了什么.只是希望有人可以给我一些关于什么的见解.