123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- # you can disable an alarm notification by setting the 'to' line to: silent
- template: postgres_total_connection_utilization
- on: postgres.connections_utilization
- class: Utilization
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -1m unaligned of used
- units: %
- every: 1m
- warn: $this > (($status >= $WARNING) ? (70) : (80))
- crit: $this > (($status == $CRITICAL) ? (80) : (90))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL connection utilization
- info: Average total connection utilization over the last minute
- to: dba
- template: postgres_acquired_locks_utilization
- on: postgres.locks_utilization
- class: Utilization
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -1m unaligned of used
- units: %
- every: 1m
- warn: $this > (($status >= $WARNING) ? (15) : (20))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL acquired locks utilization
- info: Average acquired locks utilization over the last minute
- to: dba
- template: postgres_txid_exhaustion_perc
- on: postgres.txid_exhaustion_perc
- class: Utilization
- type: Database
- component: PostgreSQL
- hosts: *
- calc: $txid_exhaustion
- units: %
- every: 1m
- warn: $this > 90
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL TXID exhaustion
- info: Percent towards TXID wraparound
- to: dba
- # Database alarms
- template: postgres_db_cache_io_ratio
- on: postgres.db_cache_io_ratio
- class: Workload
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -1m unaligned of miss
- calc: 100 - $this
- units: %
- every: 1m
- warn: $this < (($status >= $WARNING) ? (70) : (60))
- crit: $this < (($status == $CRITICAL) ? (60) : (50))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL DB ${label:database} cache hit ratio
- info: Average cache hit ratio in db ${label:database} over the last minute
- to: dba
- template: postgres_db_transactions_rollback_ratio
- on: postgres.db_transactions_ratio
- class: Workload
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -5m unaligned of rollback
- units: %
- every: 1m
- warn: $this > (($status >= $WARNING) ? (0) : (2))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL DB ${label:database} aborted transactions
- info: Average aborted transactions percentage in db ${label:database} over the last five minutes
- to: dba
- template: postgres_db_deadlocks_rate
- on: postgres.db_deadlocks_rate
- class: Errors
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: sum -1m unaligned of deadlocks
- units: deadlocks
- every: 1m
- warn: $this > (($status >= $WARNING) ? (0) : (10))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL DB ${label:database} deadlocks rate
- info: Number of deadlocks detected in db ${label:database} in the last minute
- to: dba
- # Table alarms
- template: postgres_table_cache_io_ratio
- on: postgres.table_cache_io_ratio
- class: Workload
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -1m unaligned of miss
- calc: 100 - $this
- units: %
- every: 1m
- warn: $this < (($status >= $WARNING) ? (70) : (60))
- crit: $this < (($status == $CRITICAL) ? (60) : (50))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL table ${label:table} db ${label:database} cache hit ratio
- info: Average cache hit ratio in db ${label:database} table ${label:table} over the last minute
- to: dba
- template: postgres_table_index_cache_io_ratio
- on: postgres.table_index_cache_io_ratio
- class: Workload
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -1m unaligned of miss
- calc: 100 - $this
- units: %
- every: 1m
- warn: $this < (($status >= $WARNING) ? (70) : (60))
- crit: $this < (($status == $CRITICAL) ? (60) : (50))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL table ${label:table} db ${label:database} index cache hit ratio
- info: Average index cache hit ratio in db ${label:database} table ${label:table} over the last minute
- to: dba
- template: postgres_table_toast_cache_io_ratio
- on: postgres.table_toast_cache_io_ratio
- class: Workload
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -1m unaligned of miss
- calc: 100 - $this
- units: %
- every: 1m
- warn: $this < (($status >= $WARNING) ? (70) : (60))
- crit: $this < (($status == $CRITICAL) ? (60) : (50))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL table ${label:table} db ${label:database} toast cache hit ratio
- info: Average TOAST hit ratio in db ${label:database} table ${label:table} over the last minute
- to: dba
- template: postgres_table_toast_index_cache_io_ratio
- on: postgres.table_toast_index_cache_io_ratio
- class: Workload
- type: Database
- component: PostgreSQL
- hosts: *
- lookup: average -1m unaligned of miss
- calc: 100 - $this
- units: %
- every: 1m
- warn: $this < (($status >= $WARNING) ? (70) : (60))
- crit: $this < (($status == $CRITICAL) ? (60) : (50))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL table ${label:table} db ${label:database} index toast hit ratio
- info: average index TOAST hit ratio in db ${label:database} table ${label:table} over the last minute
- to: dba
- template: postgres_table_bloat_size_perc
- on: postgres.table_bloat_size_perc
- class: Errors
- type: Database
- component: PostgreSQL
- hosts: *
- calc: ($table_size > (1024 * 1024 * 100)) ? ($bloat) : (0)
- units: %
- every: 1m
- warn: $this > (($status >= $WARNING) ? (60) : (70))
- crit: $this > (($status == $CRITICAL) ? (70) : (80))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL table ${label:table} db ${label:database} bloat size
- info: Bloat size percentage in db ${label:database} table ${label:table}
- to: dba
- template: postgres_table_last_autovacuum_time
- on: postgres.table_autovacuum_since_time
- class: Errors
- type: Database
- component: PostgreSQL
- hosts: !*
- calc: $time
- units: seconds
- every: 1m
- warn: $this != nan AND $this > (60 * 60 * 24 * 7)
- summary: PostgreSQL table ${label:table} db ${label:database} last autovacuum
- info: Time elapsed since db ${label:database} table ${label:table} was vacuumed by the autovacuum daemon
- to: dba
- template: postgres_table_last_autoanalyze_time
- on: postgres.table_autoanalyze_since_time
- class: Errors
- type: Database
- component: PostgreSQL
- hosts: !*
- calc: $time
- units: seconds
- every: 1m
- warn: $this != nan AND $this > (60 * 60 * 24 * 7)
- summary: PostgreSQL table ${label:table} db ${label:database} last autoanalyze
- info: Time elapsed since db ${label:database} table ${label:table} was analyzed by the autovacuum daemon
- to: dba
- # Index alarms
- template: postgres_index_bloat_size_perc
- on: postgres.index_bloat_size_perc
- class: Errors
- type: Database
- component: PostgreSQL
- hosts: *
- calc: ($index_size > (1024 * 1024 * 10)) ? ($bloat) : (0)
- units: %
- every: 1m
- warn: $this > (($status >= $WARNING) ? (60) : (70))
- crit: $this > (($status == $CRITICAL) ? (70) : (80))
- delay: down 15m multiplier 1.5 max 1h
- summary: PostgreSQL table ${label:table} db ${label:database} index bloat size
- info: Bloat size percentage in db ${label:database} table ${label:table} index ${label:index}
- to: dba
|