先日に引き続き、topコマンドの出力をDatadogに送信して、ほぼリアルタイムでグラフ化するddtopというツールを作りました。
https://bitbucket.org/winebarrel/ddtop
使い方
export DD_API_KEY=...
そしてddtop
コマンドを実行します。
$ ddtop top - 14:18:46 up 4:29, 4 users, load average: 2.56, 2.54, 1.87 Tasks: 116 total, 3 running, 113 sleeping, 0 stopped, 0 zombie Cpu(s): 27.3%us, 7.2%sy, 0.0%ni, 65.1%id, 0.0%wa, 0.0%hi, 0.4%si, 0.0%st Mem: 15343072k total, 1646596k used, 13696476k free, 19716k buffers Swap: 0k total, 0k used, 0k free, 1126536k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 26891 ec2-user 20 0 125m 6000 1984 R 91.9 0.0 0:02.76 perl 19501 ec2-user 20 0 4740m 288m 4536 S 75.9 1.9 10:33.09 ruby 25238 ec2-user 20 0 107m 2024 1568 S 3.7 0.0 0:27.14 bash ...
出力はtopコマンドとだいたい同じです。止めるときはCtrl-C。 引数はtopコマンドに渡されます。
ddstatと同様に、裏で単位時間ごとにDatadogにメトリクスが送信されます。
しばらく待つとDatadogでグラフを見ることができるようになります。
misc.
このツール自体が負荷になっているような、、、
プロセスを限定するとか、10sおきにするとか工夫が必要かも知れないです
追記
--emits
オプションでデータを送信するプロセスを指定できるようにしました。