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 JDK17 or laterJDK (not JRE) required
Operating SystemLinux (recommended)Windows and macOS supported for development
RAM2 GB minimum4 GB recommended for production
Disk10 GB minimumDepends on metrics 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
PostgreSQL14 or laterUsed as the metrics repository
TimescaleDB2.xExtension for efficient time-series storage
RAM2 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 an Angular single-page application. For self-hosting:

RequirementMinimum VersionNotes
Web ServerNginx (recommended) or ApacheServes the compiled Angular bundle
Node.js18 or laterRequired only if building from source
note

If you are using the pre-built distribution package, Node.js is not required on the server. Only a web server such as Nginx is needed.


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)
PostgreSQL13 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 pg_stat_statements 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 Firewall Ensure that firewalls between agents and the backend allow outbound connections from agent hosts on the configured backend port. :::


Next Steps