うまいぼうぶろぐ

linuxとhttpdとperlのメモ

mmeasure 1.0.7を無理矢理mysql 5.1に対応させる

mmeasure

mysqlの統計情報を監視してグラフ化、警告するソフト。要rrdtool

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;'