Self-Hosted PostgreSQL Monitoring

Running PostgreSQL on your own infrastructure gives you full control — but that control comes with responsibility. MonPG gives you production-grade observability without surrendering your data to a third-party agent.

Why Self-Hosted PostgreSQL Needs Better Monitoring

When you manage your own PostgreSQL, you're responsible for everything the cloud providers handle for you: vacuum tuning, index optimization, connection pooling, replication health, WAL management, and capacity planning. A single misconfigured autovacuum threshold or a missing index can take your database from healthy to critical in hours.

Most teams cobble together Prometheus exporters, Grafana dashboards, and custom scripts. MonPG replaces that patchwork with a purpose-built PostgreSQL monitoring platform that understands the semantics of your database — not just raw metrics.

What MonPG Monitors on Self-Hosted PostgreSQL

  • Query performance (pg_stat_statements): Every query tracked — calls, total/mean time, rows returned, block I/O, temp file usage. Historical trends show when queries start degrading, not just that they're slow now.
  • Connection management: Active, idle, idle-in-transaction connections. Per-application connection tracking. Connection exhaustion prediction before you hit max_connections.
  • Vacuum and autovacuum: Dead tuple accumulation, XID age approaching wraparound, autovacuum worker contention, table-level vacuum history. The vacuum advisor recommends specific settings per table.
  • Replication health: Streaming replication lag (bytes and time), WAL sender/receiver status, slot retention, logical replication slot monitoring. Alerts on lag thresholds.
  • WAL and checkpoint activity: WAL generation rate, checkpoint frequency and duration, full-page writes, archive lag. Essential for I/O planning and backup verification.
  • Lock analysis: Real-time lock tree visualization, blocked queries, lock wait duration, deadlock detection and history.
  • System metrics: CPU, memory, disk I/O, and network — correlated with PostgreSQL activity. See if a slow query is CPU-bound, I/O-bound, or waiting on locks.
  • Log collection and analysis: Direct PostgreSQL log file collection (csvlog or stderr format). Pattern detection for errors, slow queries, connection issues, and authentication failures.

Deployment Options

The MonPG collector is a single binary that runs alongside your PostgreSQL. No extensions, no schema changes, no database restarts. Choose your deployment method:

  • Docker container: docker run -d monpg/collector — the fastest way to start
  • Kubernetes: Helm chart with configurable resource limits, readiness checks, and persistent state storage
  • Standalone binary: Download for Linux (amd64/arm64) — no container runtime needed, runs on bare metal servers
  • Systemd service: Install as a system service with automatic restart and log rotation

The collector connects to PostgreSQL using a read-only monitoring role (SELECT privileges on system views). It pushes metrics to the MonPG dashboard over TLS. Your database credentials never leave your network.

Multi-Instance and Multi-Datacenter Support

Running PostgreSQL across multiple servers, datacenters, or environments? A single MonPG collector can monitor multiple PostgreSQL instances. Or deploy one collector per datacenter for isolation. All instances appear in a unified dashboard with server grouping and per-database filtering.

This works whether your PostgreSQL runs on physical servers, VMware VMs, Proxmox containers, or any other on-premise infrastructure. MonPG also supports mixed environments — monitor your self-hosted databases alongside AWS RDS, Azure, or GCP Cloud SQL from the same dashboard.

Index Advisor with What-If Simulation

MonPG's index review analyzes query patterns, table statistics, and write cost before recommending an index. It uses what-if simulation to estimate likely plan impact before you create the index, and it flags unused indexes that waste disk space or slow down writes.

PgBouncer Monitoring

If you use PgBouncer for connection pooling (and you should on self-hosted PostgreSQL), MonPG monitors it alongside your database. Track pool utilization, client wait times, server connections, and pool saturation. Get alerted before your connection pool becomes a bottleneck.

How MonPG Compares to DIY Monitoring

FeaturePrometheus + GrafanaMonPG
Setup timeHours to days5 minutes
Query analysisMetric snapshots with pg_stat_monitorPlans, trends, regressions
Index recommendationsNoneWhat-if simulation
Vacuum advisorNonePer-table recommendations
Log analysisLoki + custom parsingBuilt-in with pattern detection
Operational checksCustom alerts50+ risk signals
MaintenanceYou maintain everythingZero maintenance SaaS

Related Resources

Start monitoring your PostgreSQL in 5 minutes

Free trial — works with any self-hosted PostgreSQL 10-17.

Start trial