我正在尝试使用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中设置了最好的保留,以10s为增量:
retentions = 10s:7d,1m:21d,24h:5y
Run Code Online (Sandbox Code Playgroud)
我已经将storage-aggregation.conf文件设置为总和计数:
[sum]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum
Run Code Online (Sandbox Code Playgroud)
(而且,在你问之前,是的;这是一个.count).
如果我&rawData=true在任何一种情况下尝试使用我的URL,我会看到一些Nones,一些0.0s和一对1.0s被一些0.0s 分开.我从来没有看到这些小数值以某种方式显示在图表上.那么......这是一个错误吗?难道我做错了什么?
还有一个consolidateBy函数,它告诉 Graphite 如果没有足够的像素来准确绘制所有内容,该怎么做。默认情况下,它使用“avg”函数,因此当时间范围更大时会出现奇怪的结果。这里摘录自文档:
\n\n\n\n\n当绘制的图表中图表大小的宽度(以像素为单位)小于要绘制图表的数据点数量时,Graphite 会合并这些值以防止线条重叠。consolidateBy() 函数将合并函数从默认值 \xe2\x80\x98average\xe2\x80\x99 更改为 \xe2\x80\x98sum\xe2\x80\x99、\xe2\x80\ 之一x98max\xe2\x80\x99 或 \xe2\x80\x98min\xe2\x80\x99。这在销售图表中特别有用,其中小数值没有意义,并且综合值的 \xe2\x80\x98sum\xe2\x80\x99 是合适的。
\n
另一个有用的函数是hitcount。从这里摘录为什么它有用:
\n\n\n\n\n此函数类似于 summarise(),不同之处在于它会自动补偿不同的时间尺度(以便使用细粒度或粗粒度记录产生相似的图表)并优雅地处理很少发生的事件。
\n
我花了一些时间摸不着头脑,为什么当我的聚合规则为最大值时,我的计数器会得到时间范围超过几个小时的分数。这是相当令人困惑的,尤其是在开始时,当你使用单个计数器来查看一切是否正常时。检查 rawData 是调试健全性检查的好方法;)
\n