我正在尝试使用statsd和graphite绘制数据。我有一个简单的计数器,我将它递增1,然后当我在一天中绘制计数器的值时,我会看到奇怪的值,如0.09作为我图表中的峰值(参见http://i.stack.imgur.com/o4gmz.png)
此图表应显示2次登录,但显示为0.09。如果我将时间刻度从1天更改为最后15分钟,那么它会正确显示两次登录(请参阅http://i.stack.imgur.com/23vDJ.png)
我已经在storage-schemas.conf中设置了最好的保留,增量为10秒:
retentions = 10s:7d,1m:21d,24h:5y
我已将storage-aggregation.conf文件设置为总计数:
[sum]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum
(并且,在你问之前,是的;这是一个.count)。
如果我使用&rawData=true
尝试使用我的网址,那么在任何一种情况下,我都会看到一些None
,一些0.0
和一对1.0
被0.0
隔开{ {1}}秒。我从来没有看到这些小数值以某种方式显示在图表上。那么......这是一个错误吗?我做错了吗?
答案 0 :(得分:2)
还有 consolidateBy 功能,告诉石墨如果没有足够的像素可以准确地绘制所有内容,该怎么做。默认情况下,它使用" avg"功能,因此当时间范围更大时奇怪的结果。 Here摘自文档:
绘制图形时,图形大小的宽度(以像素为单位) 小于要绘制的数据点的数量,Graphite 合并值以防止线重叠。该 consolidateBy()函数从中更改合并函数 'average'的默认值为'sum','max'或'min'之一。这是 在销售图表中特别有用,其中小数值为no 感觉和合并价值的“总和”是合适的。
另一个可能有用的功能是 hitcount 。摘自here为什么它有用:
这个函数就像summarize(),除了它补偿 自动为不同的时间尺度(以便类似图表 使用细粒度或粗粒度记录的结果)和 处理很少发生的事件。
我花了一些时间摸不着头脑,为什么我的计数器得分,时间范围超过几小时,当我的聚合规则达到最大值时。它非常令人困惑,特别是在你开始玩单个计数器以查看是否一切正常时。检查rawData是调试健全性检查的一种很好的方法;)