topコマンド リアルタイムグラフ化ツール ddtop

先日に引き続き、topコマンドの出力をDatadogに送信して、ほぼリアルタイムでグラフ化するddtopというツールを作りました。

https://bitbucket.org/winebarrel/ddtop

使い方

まずAPIキーを環境変数にセットします。

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でグラフを見ることができるようになります。

f:id:winebarrel:20140217232213p:plain

misc.

このツール自体が負荷になっているような、、、

プロセスを限定するとか、10sおきにするとか工夫が必要かも知れないです

追記

--emitsオプションでデータを送信するプロセスを指定できるようにしました。