LogoLogo
StackState.comDownloadSupportExplore playground
StackState v5.1
StackState v5.1
  • Welcome to the StackState docs!
  • StackState self-hosted v5.1 docs
  • Getting Started
  • 🚀Setup
    • Install StackState
      • Requirements
      • Kubernetes / OpenShift
        • Kubernetes install
        • OpenShift install
        • Required Permissions
        • Non-high availability setup
        • Override default configuration
        • Configure storage
        • Configure Ingress
        • Install from custom image registry
        • Migrate from Linux install
      • Linux
        • Before you install
        • Download
        • Install StackState
        • Install with production configuration
        • Install with development configuration
        • Install with POC configuration
        • Set up a reverse proxy
        • Set up TLS without reverse proxy
      • Initial run guide
      • Troubleshooting
    • Upgrade StackState
      • Steps to upgrade
      • Version specific upgrade instructions
      • StackPack versions
      • StackState release notes
    • StackState Agent
      • About StackState Agent V3
      • Docker
      • Kubernetes / OpenShift
      • Linux
      • Windows
      • Advanced Agent configuration
      • Use an HTTP/HTTPS proxy
      • Agent V1 (legacy)
      • Migrate Agent V1 to Agent V2
        • Linux
        • Docker
    • StackState CLI
      • CLI: sts
      • CLI: stac (deprecated)
      • Comparison between CLIs
    • Data management
      • Backup and Restore
        • Kubernetes backup
        • Linux backup
        • Configuration backup
      • Data retention
      • Clear stored data
  • 👤Use
    • Concepts
      • The 4T data model
      • Components
      • Relations
      • Health state
      • Layers, Domains and Environments
      • Perspectives
      • Anomaly detection
      • StackState architecture
    • StackState UI
      • Explore mode
      • Filters
      • Views
        • About views
        • Configure the view health
        • Create and edit views
        • Visualization settings
      • Perspectives
        • Topology Perspective
        • Events Perspective
        • Traces Perspective
        • Metrics Perspective
      • Timeline and time travel
      • Analytics
      • Keyboard shortcuts
    • Checks and monitors
      • Checks
      • Add a health check
      • Anomaly health checks
      • Monitors
      • Manage monitors
    • Problem analysis
      • About problems
      • Problem lifecycle
      • Investigate a problem
      • Problem notifications
    • Metrics
      • Telemetry streams
      • Golden signals
      • Top metrics
      • Add a telemetry stream
      • Browse telemetry
      • Set telemetry stream priority
    • Events
      • About events
      • Event notifications
      • Manage event handlers
    • Glossary
  • 🧩StackPacks
    • About StackPacks
    • Add-ons
      • Autonomous Anomaly Detector
      • Health Forecast
    • Integrations
      • About integrations
      • 💠StackState Agent V2
      • 💠AWS
        • AWS
        • AWS ECS
        • AWS X-ray
        • StackState/Agent IAM role: EC2
        • StackState/Agent IAM role: EKS
        • Policies for AWS
        • AWS (legacy)
        • Migrate AWS (legacy) to AWS
      • 💠Dynatrace
      • 💠Kubernetes
      • 💠OpenShift
      • 💠OpenTelemetry
        • About instrumentations
        • AWS NodeJS Instrumentation
        • Manual Instrumentation
          • Prerequisites
          • Tracer and span mappings
          • Relations between components
          • Span health state
          • Merging components
          • Code examples
      • 💠ServiceNow
      • 💠Slack
      • 💠Splunk
        • Splunk
        • Splunk Events
        • Splunk Health
        • Splunk Metrics
        • Splunk Topology
      • 💠VMWare vSphere
      • Apache Tomcat
      • Azure
      • Cloudera
      • Custom Synchronization
      • DotNet APM
      • Elasticsearch
      • Humio
      • Java APM
      • JMX
      • Logz.io
      • MySQL
      • Nagios
      • OpenMetrics
      • PostgreSQL
      • Prometheus
      • SAP
      • SCOM
      • SolarWinds
      • Static Health
      • Static Topology
      • Traefik
      • WMI
      • Zabbix
    • Develop your own StackPacks
  • 🔧Configure
    • Topology
      • Component actions
      • Identifiers
      • Topology naming guide
      • Topology sources
      • Create a topology manually
      • Configure topology synchronizations
      • Enable email event notifications
      • Send topology data over HTTP
      • Set the topology filtering limit
      • Use a proxy for event handlers
      • Use tags
      • Tune topology synchronization
      • Debug topology synchronization
    • Telemetry
      • Add telemetry during topology synchronization
      • Data sources
        • Elasticsearch
        • Prometheus mirror
      • Send events over HTTP
      • Send metrics data over HTTP
      • Set the default telemetry interval
      • Debug telemetry synchronization
    • Traces
      • Set up traces
      • Advanced configuration for traces
    • Health
      • Health synchronization
      • Send health data over HTTP
        • Send health data
        • Repeat Snapshots JSON
        • Repeat States JSON
        • Transactional Increments JSON
      • Debug health synchronization
    • Anomaly Detection
      • Export anomaly feedback
      • Scale the AAD up and down
      • The AAD status UI
    • Security
      • Authentication
        • Authentication options
        • File based
        • LDAP
        • Open ID Connect (OIDC)
        • KeyCloak
        • Service tokens
      • RBAC
        • Role-based Access Control
        • Permissions
        • Roles
        • Scopes
        • Subjects
      • Secrets management
      • Self-signed certificates
      • Set up a security backend for Linux
      • Set up a security backend for Windows
    • Logging
      • Kubernetes logs
      • Linux logs
      • Enable logging for functions
  • 📖Develop
    • Developer guides
      • Agent checks
        • About Agent checks
        • Agent check API
        • Agent check state
        • How to develop Agent checks
        • Connect an Agent check to StackState
      • Custom functions and scripts
        • StackState functions
        • Check functions
        • Component actions
        • Event handler functions
        • ID extractor functions
        • Mapping functions
        • Monitor functions
        • Propagation functions
        • Template functions
        • View health state configuration functions
      • Custom Synchronization StackPack
        • About the Custom Synchronization StackPack
        • How to customize elements created by the Custom Synchronization StackPack
        • How to configure a custom synchronization
      • Integrate external services
      • Mirroring Telemetry
      • Monitors
        • Create monitors
        • Monitor STJ file format
      • StackPack development
        • How to create a StackPack
        • Packaging
        • How to get a template file
        • How to make a multi-instance StackPack
        • Prepare a multi-instance provisioning script
        • Upload a StackPack file
        • Prepare a shared template
        • Customize a StackPack
        • Prepare instance template files
        • Prepare a StackPack provisioning script
        • Resources in a StackPack
        • StackState Common Layer
      • Synchronizations and templated files
    • Reference
      • StackState OpenAPI docs
      • StackState Template JSON (STJ)
        • Using STJ
        • Template functions
      • StackState Markup Language (STML)
        • Using STML
        • STML Tags
      • StackState Query Language (STQL)
      • StackState Scripting Language (STSL)
        • Scripting in StackState
        • Script result: Async
        • Script result: Streaming
        • Time in scripts
        • Script APIs
          • Async - script API
          • Component - script API
          • HTTP - script API
          • Prediction - script API
          • StackPack - script API
          • Telemetry - script API
          • Time - script API
          • Topology - script API
          • UI - script API
          • View - script API
    • Tutorials
      • Create a simple StackPack
      • Push data to StackState from an external system
      • Send events to StackState from an external system
      • Set up a mirror to pull telemetry data from an external system
Powered by GitBook
LogoLogo

Legal notices

  • Privacy
  • Cookies
  • Responsible disclosure
  • SOC 2/SOC 3
On this page
  • Overview
  • Setup
  • Installation
  • Configuration
  • Validation
  • Data Collected
  • Metrics
  • Events
  • Service Checks
  1. StackPacks
  2. Integrations

PostgreSQL

StackState Self-hosted v5.1.x

PreviousOpenMetricsNextPrometheus

Last updated 1 year ago

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 .

Setup

Installation

The PostgreSQL check is included in the . To start gathering your PostgreSQL metrics and logs, install the 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 PostgreSQL

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:

create user stackstate with password '<PASSWORD>';
grant pg_monitor to stackstate;

For older PostgreSQL versions:

create user stackstate with password '<PASSWORD>';
grant SELECT ON pg_stat_database to stackstate;

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:

psql -h localhost -U stackstate postgres -c \
"select * from pg_stat_database LIMIT(1);" \
&& echo -e "\e[0;32mPostgreSQL connection - OK\e[0m" \
|| echo -e "\e[0;31mCannot connect to PostgreSQL\e[0m"

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 sample postgres.d/conf.yaml for all available configuration options.

Option
Required
Description

username

No

The user account used to collect metrics, created in the Installation section above.

password

No

The password for the user account.

dbname

No

The name of the database you want to monitor.

ssl

No

Defaults to False. Indicates whether to use an SSL connection.

use_psycopg2

No

Defaults to False. Setting this option to True forces StackState to collect PostgreSQL metrics using psycopg2 instead of pg8000. Note: pyscopg2 doesn't support SSL connections.

tags

No

A list of tags applied to all metrics collected. Tags may be simple strings or key-value pairs.

relations

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.

collect_function_metrics

No

Collect metrics regarding PL/pgSQL functions from pg_stat_user_functions.

collect_count_metrics

No

Collect count metrics. The default value is True for backward compatibility, but this might be slow. The recommended value is False.

collect_activity_metrics

No

Defaults to False. Collect metrics regarding transactions from pg_stat_activity. Make sure the user has sufficient privileges to read from pg_stat_activity before enabling this option.

collect_database_size_metrics

Yes

Collect database size metrics. Default value is True but this might be slow with large databases.

collect_default_database

No

Defaults to False. Include statistics from the default database postgres in the check metrics.

For PostgreSQL versions 9.6 and below, run the following and create a SECURITY DEFINER to read from pg_stat_activity.

CREATE FUNCTION pg_stat_activity() RETURNS SETOF pg_catalog.pg_stat_activity AS
$$ SELECT * from pg_catalog.pg_stat_activity; $$
LANGUAGE sql VOLATILE SECURITY DEFINER;

CREATE VIEW pg_stat_activity_dd AS SELECT * FROM pg_stat_activity();
grant SELECT ON pg_stat_activity_dd to stackstate;
  • Restart the Agent to start sending PostgreSQL metrics to StackState.

Log Collection

PostgreSQL default logging is to stderr and logs don't include detailed information. It's 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:

    logging_collector = on
    log_directory = 'pg_log'  # directory where log files are written,
                              # can be absolute or relative to PGDATA
    log_filename = 'pg.log'   #log file name, can include pattern
    log_statement = 'all'     #log all queries
    log_line_prefix= '%m [%p] %d %a %u %h %c '
    log_file_mode = 0644
    ## For Windows
    #log_destination = 'eventlog'
  • Collecting logs is disabled by default in StackState , enable it in stackstate.yaml:

    logs_enabled: true
  • Add this configuration block to your postgres.d/conf.yaml file to start collecting your PostgreSQL logs:

    logs:
       - type: file
         path: /var/log/pg_log/pg.log
         source: postgresql
         sourcecategory: database
         service: myapp
         #To handle multi line that starts with yyyy-mm-dd use the following pattern
         #log_processing_rules:
         #  - type: multi_line
         #    pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
         #    name: new_log_start_with_date
  • Change the service and path parameter values to configure for your environment. See the sample postgres.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 doesn't 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.

🧩
Agent V2 StackPack
StackState curated integration