Skip to main content
# pg_monitor
Monitors postgres and produces output usable by monitoring systems such as Nagios

Checks for a PostgreSQL server

Installation :
pip install pg_monitor

Requirement :
python >= 2.7

Platform :
Windows, Linux

Bug report :
Please send your bug reports to rugging24@gmail.com

optional arguments:
-h, --help show this help message and exit
--port PORT Port of the database to be accessed. Default: 5432
--user USER Username allowed to access the database. Default:
postgres
--password PASSWORD Password of the supplied user. Default:
--dbname DBNAME The name of the database to be accessed. Default:
postgres
--host HOST Host of the database. Default: localhost
--check {backends,connections,wals,vacuum,autovacuum,analyze,autoanalyze,table_bloat,
index_bloat,blocking,nonblocking,table_size,index_size,database_size,
checkpoints,duplicate_indexes,replica_lag}

Options to be passed as checks :

** backends -->> Checks for the number of clients/connections currently
connected to the specified database
** connections -->> Tests the databases if they currently accept
connections or not
** wals -->> keeps tab on the number/size of wal files present in the pg_xlog
directory
** vacuum -->> Inspects the tables and produces a report of those that has not
been vauumed for a given period of time
** autovacuum -->> Same as vacuum except that this is triggered by the database's
internal processes
** analyze -->> reports tables that have not been analyzed after a given period
of time
** autoanalyze -->> Same as analyze but triggered by the database's internal
processes.
** table_bloat -->> Inspect all tables and reports the bloat percentage
which is usually a function of vacuum and/or autovacuuming not running regularly
** index_bloat -->> Same as table bloat, except for indexes. This could be
remedied by reindexing
** blocking -->> This checks for locks transactional/relational that are blocking
other processes from running.
** nonblocking -->> This checks for locks that are running more than the specified
type. This normally do not block, but could become a blocking lock if ir runs
longer than necessary. In some cases, it is the long running locks that become
the blocking types
** table_size -->> Monitors table sizes
** index_size -->> Monitors index sizes
** database_size -->> Monitors database sizes
** checkpoints -->> Monitors checkpoint frequency
** duplicate_indexes -->> Monitors indexes and report duplicates
** replica_lag -->> Monitors all replicas connected to a given master
--find FIND [FIND ...] Finding partterns in locks
--warning WARNING Values to be considered as warning signs
--critical CRITICAL Values for the critical checks


SPECIAL NOTES :
Backends Default: warning --> 80% , critical --> 85% , of the number of connections
Accepts both numbers and percentages, and could be combined with an or
e.g 20 or 10% is allowed

Vacuum/analyze Default: warning --> 1 month. No default critical value.
Accepts : integers with the following units
day(s), week(s), month(s), year(s)

Autoanalyze/autovacuum Same as for vacuum and analyze

Relation sizes (tables,indexes and databases). Warning and/or critical value must be provided
Accepts integers with the following units
KB,MB,GB,TB,PB

Bloat Default : warning --> 1GB. No default critical value provided
Accepts integers with the following units
KB,MB,GB,TB,PB

Locks Default : warning --> 1min . No default critical value provided
Accepts integers with the smallest units being minute(s)
** accept others higher than that, but they don't make any
technical sence and might not be useful for the purpose of
lock monitoring.

Replica_lag Default : warning --> 5. Critical --> 10 . (16MB worth of WAL files)
Accepts only integers. Units not allowed

WALS No defaults. Warning and/or critical value must be provided
Only integer accepted




SAMPLE USAGE :
Help pg_monitor --help

Checking the number of backends
pg_monitor --check=backends --user=monitor --password=secrete --dbname=mydbName --host=hostname

*** Depending on your postgres hba settings, password may not be necessary.

pg_monitor --check=backends --user=monitor --password=secrete --dbname=mydbName --host=hostname --warning='90 or 85%' --critical='95%'



Checking for replica lag
pg_monitor --check=replica_lag --user=monitor --password=secrete --dbname=mydbName --host=master,replica1,replica2,replicaN --port=master,replica1,replica2,replicaN

Release files for pg_monitor 1.7.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pg_monitor 1.7.3
File Size Uploaded
pg_monitor-1.7.3.tar.gz 17.8 kB Details

Release files / pg_monitor-1.7.3.tar.gz

Download URL pg_monitor-1.7.3.tar.gz
Size 17.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ea102f03f3796346c9e79fb38b9e659937a9bdda1c15f6439c031f1af516d608
BLAKE2b-256 checksum
How to use checksums
aff6d872956758d502072d3f549162b81b4d4e8f5c700fb8e2b5d678d91196ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.7.3 This release

1 release file

1.7.2

1 release file

1.7.1

1 release file

1.7.0

1 release file

1.6.9

1 release file

1.6.8

1 release file

1.6.6

1 release file

1.6.5

1 release file

1.6.4

1 release file

1.6.3

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.5.9

1 release file

1.5.8

1 release file

1.5.7

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page