dstatの万能感を満喫するためにfluentdにログを飛ばしてみた

@hirose31 さんが突如として流行らせた感のある dstat ですが、「乗るしかない、このビッグウェーブに!」ということで python の勉強ついでに触ってみました。

dstat の結果を fluentd に投げる

やったこととしては、csv に吐き出す部分をパクってそのまま fluend に投げる様にしてみました。

これで、dstat の起動オプションに--fluentdというのを与えると、ローカルの TCP:24224 で待ち受けている fluentd に対して「debug.*」の形で毎秒ログを送りつけることができます。(fluentd の接続先とかタグとかは誰か調整できるようにして下さい。。。)

2012-03-03 03:36:43 +0900 debug.paging: {"out":0.012377262371204543,"in":0.008319143560973545}
2012-03-03 03:36:43 +0900 debug.net/total: {"recv":0,"send":0}
2012-03-03 03:36:43 +0900 debug.dsk/total: {"read":413.4246329154249,"writ":31229.37514914992}
2012-03-03 03:36:43 +0900 debug.system: {"int":152.50326973436685,"csw":54.20415072585426}
2012-03-03 03:36:43 +0900 debug.total_cpu_usage: {"sys":0.05035520256584657,"hiq":0.0330991096631232,"idl":99.60673432323003,"usr":0.17692719255004707,"wai":0.108811753698386,"siq":0.024072418292571778}
2012-03-03 03:36:44 +0900 debug.paging: {"out":0.0,"in":0.0}
2012-03-03 03:36:44 +0900 debug.net/total: {"recv":1176.0,"send":1818.0}
2012-03-03 03:36:44 +0900 debug.dsk/total: {"read":0.0,"writ":0.0}
2012-03-03 03:36:44 +0900 debug.system: {"int":1003.0,"csw":393.0}
2012-03-03 03:36:44 +0900 debug.total_cpu_usage: {"sys":0.0,"hiq":0.0,"idl":100.0,"usr":0.0,"wai":0.0,"siq":0.0}

ちなみに、プロセスを出すヤツ(--top-cpuとか)はカラム名とか色々あれで考慮してないので、まともに記録できません><

色々いけてないですが、まぁこういうことも数時間あれば僕みたいな低レベルなプログラマでも作れるんですよ、ということでやっぱり dstat パネェなと思いました。

ちなみに python って初めて書きましたが、ruby よりは入りにくかったです。。。配列と辞書型の操作が分かってきたら、やっと思い通りに書けるようになってきました。

結構おもしろそうなんで、マジメに dstat 勉強しようかなと思いました。

参考: