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勉強しようかなと思いました。

参考: