pg_metrics
is a PostgreSQL metrics collector for use with statsd.
gem install pg_metrics
The pg_metrics_statsd
command is now available.
To collect PostgreSQL instance metrics on localhost port 5432 and pass them to a statsd instance running on localhost port 8125:
pg_metrics_statsd --host localhost --port 8125 --connection "host=localhost port=5432"
To collect PostgreSQL database metrics for the prod
database, include the
--dbname
parameter:
pg_metrics_statsd --host localhost --port 8125 --connection "host=localhost port=5432" --dbname=prod
By default, pg_metrics_statsd
collects stats from pg_locks
,
pg_stat_user_functions
(where available), pg_stat_user_tables
,
pg_stat_user_tables
, pg_stat_user_indexes
, pg_statio_user_indexes
,
as well as per-table and per-index sizes. You can omit stats by supplying
command line flags:
--no-functions
--no-locks
--no-table-stats
--no-table-statio
--no-index-stats
--no-index-statio
--no-table-sizes
--no-index-sizes
You can also use the --only
flag to collect only the explicitly specified
stats. For example, to collect only table and index size stats:
pg_metrics_statsd --only --table-sizes --index-sizes --dbname=prod
pg_metrics_statsd
can also collect table free space metrics provided the
pg_freespacemap
contrib module is installed. To include free space metrics,
pass the --table-free-space
flag along with the database. Collecting free
space metrics is not included by default.
For postgres versions 8.4 and higher, free space metrics take a while to generate.
pg_metrics_statsd
includes an option to measure ideal index size, which is
an estimate of how much disk space an index should require if it contains no
dead tuples. This can be useful, along with index sizes, to estimate how bloated
indexes are. To collect ideal index size metrics, pass the --index-ideal-sizes
flag.
pg_metrics
can also collect pgbouncer
metrics by passing the --pgbouncer
flag.
pg_metrics_statsd --host localhost --port 8125 --connection "host=localhost port=6432" --pgbouncer