perlのSun::Solarisモジュール
kstat が perl だというのを完全に忘れていました。。。
$ file /usr/bin/kstat
/usr/bin/kstat: executable /usr/perl5/bin/perl script
で、kstatと中のKstat.pm見るとわかりますが、Kstat.soから直接libkstatにアクセスしているという素敵なモジュールです。
どうせなら普段使っている perl 5.10で使いたいのでコンパイルしてみました。
ソースの入手は subversion でOpenSolarisのリポジトリより。
(推奨は Mercurial なんでしょうが、ssh ごしなので、会社からだと使えないという。。。)
ちなみに、sparc上のSolaris10+perl5.10とi386上のOpenSolaris(snv_108)+perl5.10 の両方で無事動きました。
$ pfexec pkg install SUNWsvn
$ svn co http://svn.genunix.org/repos/on/trunk/usr/src/cmd/perl/contrib/Sun/
...
A Sun/Solaris/Exacct/exacct_common.xh
Checked out revision 1455.
$ ls Sun/Solaris/
BSM/ Intrs/ Lgrp/ Privilege/ Task/ Utils/
Exacct/ Kstat/ PerlGcc/ Project/ Ucred/
モジュールは、Sun::Solaris::UtilsとSun::Solaris::Kstat を入れます。
$ cd Sun/Solaris/Utils/
$ /usr/local/bin/perl Makefile.PL
$ make
$ make test
$ pfexec make install
$ cd ../Kstat/
$ make
$ make test
$ pfexec make install
$ /usr/local/bin/perl /usr/bin/kstat |more
module: SUNW,audiohd instance: 0
name: SUNW,audiohd class: controller
...
$
今までは、シェル等で vmstatやiostatをログに出力。ばらしてcsvからExcel or rrdtoolに流し込むとかけっこうな手間だったんですが、
これで libkstat に直接アクセスして各種パラメータを最初からcsvにしたりと夢が広がります。。