mysql 5.1への対応
mysql 5.1でmmeasureが動かない〜〜と悩んでいたけど、対応version見たら5.1は載っていなかった。
気になるのでmmeasure.log、mmeasure.errを追ってみるとdaemon/data-mysql/read-data.plが何やらtable_cacheの値を取得できていないようす。そのため、library/alerter.plの90行目の
$result = round( $open_tables / $table_cache * 100, 2 );
部分で$table_cacheが0除算になって例外で落ちていた。
table_cacheの値を取得できない理由
mysqlの変数で5.0までtable_cacheだった名前が、table_open_cacheに変わったからぽい。だもんで強引に
$ find /path/to/mmeasure/ -type f -print0 | \ xargs -0 grep -l --null table_cache | \ xargs -0 perl -i.bak -p -e 's/table_cache/table_open_cache/g;'
とやってファイル中の"table_cache"の文字列を"table_open_cache"に変換したらとりあえず動いた。
総クエリー回数
また、mysql 5.1 から総クエリー回数がSHOW STATUS の "Questions"から、"Queries" に変更になっているので、その部分も修正する。
$ find /path/to/mmeasure/ -type f -print0 | \ xargs -0 grep -l --null Questions | \ xargs -0 perl -i.bak -p -e 's/Questions/Queries/g;'