maaash.jp

what I create

dstat経由でredis infoを眺めfluentdを通してgrowthforecastでグラフにする

dstat が万能なのでredis infoのキーを眺められるプラグインをつくった。

redis-cli info の total_commands_processed を眺める場合。

DSTAT_REDIS_* な環境変数を設定することでなんでもできるし
fluentd-plugin-dstatを使う場合には環境変数がいじりにくかったので同じディレクトリにある設定ファイルを使ってもいい。

次にこれを fluent-plugin-dstat を使い fluentd に流し込み、fluent-plugin-growthforecast を使って GrowthForecast でグラフにしよう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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なアラートシステムを心待ちにしております

Comments