Attention

This documentation pertains to older v2.x releases. Many features and functions have since been updated or replaced. Please refer to the current version for the latest information.

Technical details

Here are some technical details that might be interesting for those who are planning to use pgwatch2 for critical monitoring tasks or customize it in some way.

  • Dynamic management of monitored databases, metrics and their intervals - no need to restart/redeploy

    Config DB or YAML / SQL files are scanned every 2 minutes (by default, changeable via --servers-refresh-loop-seconds) and changes are applied dynamically. As common connectivity errors also also handled, there should be no need to restart the gatherer “for fun”. Please always report issues which require restarting.

  • There are some safety features built-in so that monitoring would not obstruct actual operation of databases

    • Up to 2 concurrent queries per monitored database (thus more per cluster) are allowed

    • Configurable statement timeouts per DB

    • SSL connections support for safe over-the-internet monitoring (use “-e PW2_WEBSSL=1 -e PW2_GRAFANASSL=1” when launching Docker)

    • Optional authentication for the Web UI and Grafana (by default freely accessible)

  • Instance-level metrics caching

    To further reduce load on multi-DB instances, pgwatch2 can cache the output of metrics that are marked to gather only instance-level data. One such metric is for example “wal”, and the metric attribute is “is_instance_level”. Caching will by activated only for continuous DB types, and to a default limit of up to 30 seconds (changeable via the --instance-level-cache-max-seconds param).