dstat が万能なのでredis infoのキーを眺められるプラグインをつくった。
redis-cli info の total_commands_processed を眺める場合。
DSTAT_REDIS_* な環境変数を設定することでなんでもできるし
fluentd-plugin-dstatを使う場合には環境変数がいじりにくかったので同じディレクトリにある設定ファイルを使ってもいい。
次にこれを fluent-plugin-dstat を使い fluentd に流し込み、fluent-plugin-growthforecast を使って GrowthForecast でグラフにしよう。
# td-agent/templates/default/td-agent.conf.erb
<source>
type dstat
tag dstat.<%= node[:hostname] %>
option --redis
delay 30
</source>
<match dstat.*>
type map
tag "mapped." + tag
time time
record record["dstat"]
</match>
<match mapped.dstat.*>
type flatten_hash
add_tag_prefix flattened.
</match>
<match flattened.mapped.dstat.**>
type growthforecast
gfapi_url http://growthforecast/api/
service dstat
tag_for section
remove_prefix flattened.mapped.dstat
name_key_pattern .*
</match>
と、こうなる
このプラグインの組み合わせにたどり着くまで大変だった!
けど、これで <%= node[:hostname] %> 毎にgrowthforecastの section ができるので捗る気がする。
dstatのプラグイン は公式のものがたくさんあるのでそれらを参考にすればわりと簡単に書ける。
dstat,fluentd,growthforecast最高!
kazeburo wareなアラートシステムを心待ちにしております