1.檢查pg_xlog/archive_status目錄下的.ready檔案是否有很多個,如果有很多,表示該目錄的寫性能不好。
unit?=個數
#./check_postgres_archive_ready -H 127.0.0.1 -p 5432 -db test -u postgres
2.當table的age到達一定的值後,db需要適時的做vacuum freeze,否則會有資料消失的問題。
unit?=百分比
#./check_postgres_autovac_freeze -H 127.0.0.1 -p 5432 -db test -u postgres --include=test
3.監測最大連線數(整個資料庫instance)。
unit?=個數
#./check_postgres_backends -H 127.0.0.1 -p 5432 -db test -u postgres --output=simple
4.監測Table跟Index的膨脹量(Checks the amount of bloat in tables and indexes.)
db膨脹量與autovacuum_vacuum_scale_factor有關,預設是0.2,所以一般超過20%就要告警,利用vacuum full來回收。
perflimit -> 找前幾名
unit?=容量(bytes, kilobytes, megabytes, gigabytes, terabytes, exabytes, petabytes, and zettabytes.)
#./check_postgres_bloat -H 127.0.0.1 -p 5432 -db test -u postgres --perflimit=5
5.檢查最後一次checkpoint發生到現在經過了多少時間。
unit?=時間,秒
#./check_postgres_checkpoint --datadir=/usr/local/pgsql/data -w 10s
6.監測transaction commit ratio。反過來說就是監測rollback的百分比
unit?=百分比
./check_postgres_commitratio -H 127.0.0.1 -p 5444 -db edb -u enterprisedb --include=edb --output=simple
7.資料庫連線狀態
unit?=1(available) or 0(unavailable)
#./check_postgres_connection -H 127.0.0.1 -p 5432 -db test -u postgres --output=simple
8.自訂SQL監測 (有一定的限制,看場合使用)
最多只能有兩個return值。一個要是result另一個隨便
#./check_postgres_custom_query -H 127.0.0.1 -p 5432 -db test -u postgres --query="select relname AS result, relpages AS pages from pg_class where relpages>10" --valtype=string -w 6
9.資料庫容量監測
unit?=容量(bytes, kilobytes, megabytes, gigabytes, terabytes, exabytes, petabytes, and zettabytes.)
#./check_postgres_database_size -H 127.0.0.1 -p 5432 -db test -u postgres --include=test -w 10M -c 20M --output=simple
10.Buffer命中率 (blks_hit/(blks_hit+blks_read)) 從 pg_stat_database 這個統計view查的到
unit?=百分比
#./check_postgres_hitratio -H 127.0.0.1 -p 5444 -db edb -u enterprisedb --include=edb --output=simple
11.Last vacuum, analyze, autovacuum, autoanalyze到現在的時間間隔
unit?=table=時間,秒
#./check_postgres_last_analyze -H 127.0.0.1 -p 5444 -db edb -u enterprised --output=simple
#./check_postgres_last_autoanalyze -H 127.0.0.1 -p 5444 -db edb -u enterprisedb --output=simple
#./check_postgres_last_vacuum -H 127.0.0.1 -p 5444 -db edb -u enterprisedb --output=simple
#./check_postgres_last_autovacuum -H 127.0.0.1 -p 5444 -db edb -u enterprisedb --output=simple
12.prepared transaction監測(前提是postgresql.conf裡面的max_prepared_transactions有設定)
unit?=個數 ->有多少個還沒完成的tx(未commit的量)
#./check_postgres_prepared_txns -H 127.0.0.1 -p 5432 -db test -u postgres --output=simple
13.是否發生slowquery
unit?=時間,秒
#./check_postgres_query_time -H 127.0.0.1 -p 5432 -db test -u postgres --include=test -w 300s --output=simple
14.監控tx的Idle時間
unit?=時間,秒
#./check_postgres_txn_idle -H 127.0.0.1 -p 5432 -db test -u postgres -w 60s
14.監控tx的最長執行時間 (8.3以後才能使用)
unit?=時間,秒
#./check_postgres_txn_time -H 127.0.0.1 -p 5432 -db test -u postgres -w 60s
沒有留言:
張貼留言