我已经使用Graphite安装了statsd。
我写了一个增加计数器的样本(请参见下文)。
我期待在60上看到一条线因为我每秒增加一个计数器,但是我得到的线有点随机,范围在14-29之间。在下面你可以看到图表的截图。
如何将图表更改为每1分钟显示60个?
/etc/statsd/localConfig.js的内容
{
graphitePort: 2003
, graphiteHost: "localhost"
, port: 8125
, flushInterval: 60000
, graphite: {
legacyNamespace: false
}
}
storage-schemas.conf的内容
[statsd]
pattern = ^stats\.
retentions = 60s:90d
[carbon]
pattern = ^carbon\.
retentions = 60:90d
[default_1min_for_1day]
pattern = .*
retentions = 60s:14d
storage-aggregation.conf的内容
[min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min
[max]
pattern = \.max$
xFilesFactor = 0.1
aggregationMethod = max
[count]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum
[lower]
pattern = \.lower(_\d+)?$
xFilesFactor = 0.1
aggregationMethod = min
[upper]
pattern = \.upper(_\d+)?$
xFilesFactor = 0.1
aggregationMethod = max
[sum]
pattern = \.sum$
xFilesFactor = 0
aggregationMethod = sum
[gauges]
pattern = ^.*\.gauges\..*
xFilesFactor = 0
aggregationMethod = last
[default_average]
pattern = .*
xFilesFactor = 0.5
aggregationMethod = average
statsd每分钟向石墨发送60个指标。
require 'statsd-ruby'
$statsd = Statsd.new '23.23.82.106', 8125
loop do
$statsd.increment 'xxx'
puts "sent at #{Time.now.strftime "%H:%M:%S"}"
sleep 1
end
图表看起来像这样:
答案 0 :(得分:1)
来自statsd-graphite docs:
确保您的冲洗间隔至少与之相同 最高分辨率保留
否则Graphite将仅记录上次看到的值。 statsd的默认刷新间隔为10秒,但在
中[statsd]
pattern = ^stats\.
retentions = 60s:90d
您将最高分辨率保留设置为60秒。因此,您的statsd刷新间隔比Graphite最高分辨率保留时间短。
要修复它,只需使用:
[statsd]
pattern = ^stats\.
retentions = 10s:60s:90d
您可能需要调整wsp
文件的大小以匹配新的分辨率配置。
请参阅this blog post(第4点),了解对观察到的影响的稍长解释。