PostgreSQL
StackState Self-hosted v4.5.x
This page describes StackState v4.5.x. The StackState 4.5 version range is End of Life (EOL) and no longer supported. We encourage customers still running the 4.5 version range to upgrade to a more recent release.
Overview
Get metrics from the PostgreSQL service in real time to:
Visualize and monitor PostgreSQL states
Received notifications about PostgreSQL failovers and events
PostgreSQL is a StackState curated integration.
Setup
Installation
The PostgreSQL check is included in the Agent V2 StackPack StackPack. To start gathering your PostgreSQL metrics and logs, install the Agent v2 first.
Configuration
Edit the postgres.d/conf.yaml
file, in the conf.d/
folder at the root of your Agent's configuration directory to start collecting your PostgreSQL metrics and logs. See the sample postgres.d/conf.yaml
for all available configuration options.
Prepare Postgres
To get started with the PostgreSQL integration, create a read-only stackstate
user with proper access to your PostgreSQL server. Start psql
on your PostgreSQL database and run:
For PostgreSQL version 10 and above:
For older PostgreSQL versions:
Note: When generating custom metrics that require querying additional tables, you may need to grant the CONNECT
permission on those tables to the stackstate
user.
To verify the permissions are correct, run the following command:
When it prompts for a password, enter the one used in the first command.
Metric Collection
Edit the
postgres.d/conf.yaml
file to point to your server / port and set the masters to monitor. See the samplepostgres.d/conf.yaml
for all available configuration options.
Option | Required | Description |
---|---|---|
| No | The user account used to collect metrics, created in the Installation section above. |
| No | The password for the user account. |
| No | The name of the database you want to monitor. |
| No | Defaults to |
| No | Defaults to |
| No | A list of tags applied to all metrics collected. Tags may be simple strings or key-value pairs. |
| No | By default, all schemas are included. Add specific schemas here to collect metrics for schema relations. Each relation generates 10 metrics and an additional 10 metrics per index. |
| No | Collect metrics regarding PL/pgSQL functions from |
| No | Collect count metrics. The default value is |
| No | Defaults to |
| Yes | Collect database size metrics. Default value is |
| No | Defaults to |
For PostgreSQL versions 9.6 and below, run the following and create a SECURITY DEFINER
to read from pg_stat_activity
.
Restart the Agent to start sending PostgreSQL metrics to StackState.
Log Collection
PostgreSQL default logging is to stderr
and logs do not include detailed information. It is recommended to log into a file with additional details specified in the log line prefix.
Edit your PostgreSQL configuration file
/etc/postgresql/<version>/main/postgresql.conf
and uncomment the following parameter in the log section:Collecting logs is disabled by default in the StackState Agent, enable it in
stackstate.yaml
:Add this configuration block to your
postgres.d/conf.yaml
file to start collecting your PostgreSQL logs:Change the
service
andpath
parameter values to configure for your environment. See the samplepostgres.d/conf.yaml
for all available configuration options.Restart the Agent.
Validation
Run the Agent's status
subcommand and look for postgres
under the Checks section.
Data Collected
Some of the metrics listed below require additional configuration, see the sample postgres.d/conf.yaml
for all configurable options.
Metrics
See metadata.csv
for a list of metrics provided by this integration.
Events
The PostgreSQL check does not include any events.
Service Checks
postgres.can_connect Returns CRITICAL
if the Agent is unable to connect to the monitored PostgreSQL instance. Returns OK
otherwise.
Last updated