Skip to main content

Prerequisites

Before installing PMP4PG, make sure your environment meets the following requirements.


PMP4PG Backend

The backend is a Java Spring Boot application. It requires:

RequirementMinimum VersionNotes
Java RuntimeJRE 17 or later
Operating SystemLinux x86_64Tested on Rocky Linux 9. Other Linux distributions should work but are not officially tested. Windows and macOS are not supported.
RAM4 GB minimum8 GB For a single monitored server. Scale further based on number of monitored servers and concurrent users.
Disk20 GB minimumBase allocation for the platform itself. Total disk usage depends on the number of monitored servers and the AWR data retention period.
NetworkAccessible from all monitored serversAgents must be able to reach the backend REST API
info

The backend server does not need to be co-located with any PostgreSQL server. It is typically deployed on a dedicated host or VM.


PMP Repository

PMP4PG uses PostgreSQL as its central data repository.

RequirementMinimum VersionNotes
PostgreSQL16 or laterUsed as the metrics repository
TimescaleDB2.xExtension for efficient time-series storage
RAM4 GB minimumDedicated to repository PostgreSQL instance
DiskDepends on fleet size and retentionPlan for ~5 GB/month per monitored server under normal load
tip

The PMP repository PostgreSQL instance is separate from the PostgreSQL servers you want to monitor. Do not install the PMP repository on a server you are monitoring with PMP4PG.


PMP4PG Frontend

The frontend is packaged together with the backend inside the Spring Boot JAR. No separate web server or Node.js installation is required. For production deployments, Nginx is recommended as a reverse proxy in front of the application to handle SSL termination (HTTPS on port 443) and redirect traffic to the embedded Tomcat server running on port 8080.


PMP4PG Agent

The agent is a pre-compiled Go binary. It runs on each PostgreSQL server you want to monitor.

RequirementDetails
Operating SystemLinux (x86_64)
PostgreSQL14 or later (the instance being monitored)
Network accessMust be able to reach the PMP4PG backend on its configured port
PostgreSQL userA monitoring user with read access to pg_stat_activity, pg_stat_statements, pg_stat_database

Required PostgreSQL Permissions

The agent connects to PostgreSQL using a dedicated monitoring user. This user needs the following privileges:

-- Create monitoring user
CREATE USER pmp_monitor WITH PASSWORD 'your_secure_password';

-- Grant required permissions
GRANT pg_monitor TO pmp_monitor;

-- Required for pg_stat_statements
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset() TO pmp_monitor;
info

The pg_stat_statements extension must be enabled on each monitored PostgreSQL instance for query-level analysis in ASH and AWR. Add the following to postgresql.conf:

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

Then create the extension:

CREATE EXTENSION IF NOT EXISTS pg_stat_statements;

Network Requirements

SourceDestinationPortProtocol
PMP AgentsPMP4PG Backend8080 (default)HTTP / HTTPS
Browser (users)PMP4PG Frontend80 / 443HTTP / HTTPS
PMP4PG BackendPMP Repository5432 (default)PostgreSQL
warning

Ensure that firewalls between agents and the backend allow outbound connections from agent hosts on the configured backend port.


Next Steps