redis-top
Perl勉強メモ アルパカDiary出張版のtoritori0318さんが、Redisの使用状況をtopコマンドのように常時出力するredis-topというツールを作ってくださっていました。私のブログでもKVS(Key Value Store)はRedis2.6を使っています。Redisの使用状況はmuninとZabbixで監視していますが、若干時差があるので、リアルタイムにRedisの状況を調べるのに便利かなと思って、自分のブログにも導入してみました。toritori0318さん、ありがとうございます。
redis-topの導入方法
GitHubのp5-App-RedisTopのREADMEにもざっくり書かれてありますが、まずgit cloneでソースをダウンロードします。
git clone https://github.com/toritori0318/p5-App-RedisTop.git
あとは普通にmakeしてinstallするだけです。
$ cd p5-App-RedisTop/
$ perl Makefile.PL
Writing Makefile for App::RedisTop
Writing MYMETA.yml and MYMETA.json
make
cp lib/App/RedisTop/Component/Memory.pm blib/lib/App/RedisTop/Component/Memory.pm
cp lib/App/RedisTop/Component/CPU.pm blib/lib/App/RedisTop/Component/CPU.pm
cp lib/App/RedisTop/Component/Command.pm blib/lib/App/RedisTop/Component/Command.pm
cp lib/App/RedisTop/Component.pm blib/lib/App/RedisTop/Component.pm
cp lib/App/RedisTop/Component/DB.pm blib/lib/App/RedisTop/Component/DB.pm
cp lib/App/RedisTop/Component/Save.pm blib/lib/App/RedisTop/Component/Save.pm
cp lib/App/RedisTop.pm blib/lib/App/RedisTop.pm
cp lib/App/RedisTop/Component/Connection.pm blib/lib/App/RedisTop/Component/Connection.pm
cp lib/App/RedisTop/Perform.pm blib/lib/App/RedisTop/Perform.pm
cp bin/redis-top blib/script/redis-top
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/redis-top
Manifying blib/man1/redis-top.1
Manifying blib/man3/App::RedisTop.3pm
make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00.compile.t .... ok
t/01.component.t .. ok
All tests successful.
Files=2, Tests=27, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.03 cusr 0.00 csys = 0.05 CPU)
Result: PASS
sudo make install
Appending installation info to /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi/perllocal.pod
これで、redis-topコマンドが使えるようになります。CentOS6.3以外にも、openSUSE12.3でもインストールできました。
追記:
最近はもっとインストールが簡単になって、CPAN経由でインストールできるようです。
cpan App::RedisTop
redis-topコマンドの出力
redis-topとコマンドを打って以下のような出力が表示されれば成功です。
redis-top v0.02
-----cpu----- ----------mem---------- --------conn------- --save- ----------command--------- ------db0------
INSTANCE| sys usr| use rss frag| total/s clients|changes| total/s hits/s misses/s| keys expires|
-------------- ------ ------ ------- ------- ------- --------- --------- ------- -------- -------- -------- ------- -------
127.0.0.1:6379| 0.0 0.0| 20.72M 19.19M 0.93 | 1.33 1 | 2 | 1.33 0 0 | 11 0 |
AVERAGE| 0.0 0.0| 20.72M 19.19M 0.93 | 1.33 1 | 2 | 1.33 0 0 | 11 0 |
TOTAL| | | 1.33 1 | 2 | 1.33 0 0 | 11 0 |
リアルタイムに使用状況が出力されます。
以前はRedis2.6では、Use of uninitialized value $key in hash element at /usr/bin/redis-top line 319,