Statsd、石墨和圖表
我已經設置了 Graphite 和 statsd 並且兩者都執行良好。我正在使用來自石墨/範例的 example-client.py 來測量負載值,這沒關係。
我開始使用 statsd 進行測試,起初它似乎還可以,因為它生成了一些圖表,但現在看起來不太好。
首先,這是我的
storage-schema.conf
:priority = 100 pattern = .* retentions = 1m:395d
我正在使用此命令將數據發送到 statsd:
echo 'ssh.invalid_users:1|c'| nc -w 1 -u localhost 8126
它執行,我在 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
編輯:
在我使用最新版本的石墨、碳、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 後重新啟動了 Graphite,但我不得不使用不同的指標名稱,因為前一個指標名稱將保留相同的行為/保留(我可以重現此)。
因此
echo 'ssh.invalid_users:1|c'
,我不得不使用
echo 'ssh.invalid_userstest2:1|c'
.