我已经设置了 Graphite 和 statsd,两者都运行良好。我正在使用graphite/examples 中的example-client.py 来测量负载值,这没问题。
我开始用 statsd 做测试,起初看起来还可以,因为它生成了一些图表,但现在看起来不太好。
首先,这是我的storage-schema.conf:
priority = 100
pattern = .*
retentions = 1m:395d
Run Code Online (Sandbox Code Playgroud)
我正在使用此命令将数据发送到 statsd:
echo 'ssh.invalid_users:1|c'| nc -w 1 -u localhost 8126
Run Code Online (Sandbox Code Playgroud)
它执行,我在 Graphite Web 界面中单击 Update Graph,它生成一条线,再次点击 Update 并且该线消失。像this1和this2
如果我执行以前的命令5次,图线将达到2和它实际上将保存。再次运行相同的命令两次,图形线到达 2 并消失。
我找不到我配置错误的内容。
预期用途是这样的:
tail -n 0 -f /var/log/auth.log|grep --line-buffered "Invalid user" | while read line; do echo "ssh.invalid_users:1|c" | nc -w 1 -u localhost 8126; done
Run Code Online (Sandbox Code Playgroud)
编辑:
在一个全新的系统上,我使用最新版本的石墨、碳、nodejs、statsd 重新安装,它的作用相同。
在尾随 /opt/graphite/storage/log/carbon-cache/carbon-cache-a/query.log 时,我得到:
cache query for "stats_counts.ssh.invalid_users" returned 0 values
cache query for "stats.ssh.invalid_users" returned 0 values
每当我在 webapp 中按下更新。我注意到它returned 1 values在绘制线条时会随机说,但会恢复returned 0 values并且线条消失。
问题是存储模式保留:
retentions = 1m:395d- 取自石墨维基http://graphite.wikidot.com/installation
我不得不使用retentions = 10:2160,60:10080,600:262974或类似的东西。这考虑了每 10 秒保存的值。
此外,虽然我在更改 storage-schema.conf 后重新启动了石墨,但我不得不使用不同的度量名称,因为以前的将保留相同的行为/保留(我可以重现这一点)。
因此echo 'ssh.invalid_users:1|c',我不得不使用
echo 'ssh.invalid_userstest2:1|c'.