8

我正在尝试使用 statsd 和石墨绘制数据。我有一个简单的计数器,我将它增加 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)。

如果我尝试使用我的 URL,&rawData=true那么在任何一种情况下,我都会看到一些Nones、一些0.0s 和一对1.0由一些 s 分隔的0.0s。我从来没有看到这些以某种方式出现在图表上的小数值。所以......这是一个错误吗?难道我做错了什么?

4

1 回答 1

2

还有一个consolidateBy函数,它告诉石墨如果没有足够的像素来准确地绘制所有内容,该怎么做。默认情况下,它使用“avg”函数,因此当时间范围较大时会出现奇怪的结果。这里摘自文档:

当绘制图形时,图形大小的宽度(以像素为单位)小于要绘制的数据点的数量,Graphite 会合并这些值以防止线重叠。consolidateBy() 函数将合并函数从默认的“average”更改为“sum”、“max”或“min”之一。这在销售图表中特别有用,其中分数值没有意义,合并值的“总和”是合适的。

另一个可能有用的函数是hitcount这里的简短摘录为什么它有用:

这个函数类似于summarize(),除了它自动补偿不同的时间尺度(因此使用细粒度或粗粒度记录产生类似的图形)并优雅地处理很少发生的事件。

我花了一些时间挠头,为什么当我的聚合规则为最大值时,我的计数器的时间范围超过几个小时。这很令人困惑,尤其是在您开始使用单个计数器以查看是否一切正常时。检查 rawData 是调试完整性检查的好方法;)

于 2015-01-09T11:11:40.353 回答