[pgcluster: 152] Re: リモートからの状態の監視

Tatsuo Ishii t-ishii @ sra.co.jp
2004年 2月 24日 (火) 10:01:34 JST


石井です.

>  今、手元の pgcluster に手を入れて、
> 
> (1) pgreplicate が今何台の DB_TBL_USE なホストを抱えているか
> (2) pgcluster が今どのサーバを current replicate server として持ってい
>     るか
> 
> というのをリモートから調べられるようにしようと考えています。
> 
>  (1) に関しては、勝手に header.cmdType == 'o' なパケットが来たらずら
> ずらっと Host_Tbl_Begin から値を羅列して返すことで、外部の perl script
> で状態を取得できるようにはなりました。
> 
>  で、(2) の方なんですが、同様に pgcluster の 5432/tcp か、
> recoveryPort に独自パケットを投げる、でもいいかなあ、と思いつつ、
> pg_catalog.pg_cluster などというテーブルがあってそこに今の状態が入って
> いる、という形だと psql や DBD::Pg などを使って簡単に監視スクリプトが
> 書けて嬉しいなあ、とも思ってしまいました。
> 
>  システムテーブルを用意して、backend/libpq/replicate.c あたりでそこを
> 更新する、というのは簡単にできるものなのでしょうか?

昨今は簡単に行を返す関数が作れるようになったので,テーブルという実体を
作るよりも,関数とviewで実装したほうが簡単かつ柔軟性があるような気がし
ます.statistics collectorと同じ手法ですね.dblinkと組み合わせれば,
cluster全体の情報を統合して見ることも可能だと思います.
--
Tatsuo Ishii



pgcluster メーリングリストの案内