Supported Exporters & Integrations
Relevant source files
The following files were used as context for generating this wiki page:Percona Monitoring and Management (PMM) utilizes a robust ecosystem of exporters and specialized agents to collect performance metrics and query analytics from diverse database environments. These components act as the bridge between target services (such as MySQL, MongoDB, and PostgreSQL) and the PMM Server, which aggregates this data for visualization and alerting.
The integration architecture supports both "pull" and "push" metrics modes. In the pull model, PMM Server scrapes metrics directly, while the push model utilizes a local vmagent on the client node to collect data from exporters and push it to VictoriaMetrics on the PMM Server. This flexibility allows PMM to monitor bare-metal servers, virtual machines, containers, and managed cloud database services like AWS RDS and Azure Database.
Sources: CONTRIBUTING.md, README.md, api/inventory/v1/agents.proto:44-55
Exporter Architecture and Data Flow
PMM employs a decentralized architecture where the pmm-agent orchestrates various exporter processes on the monitored node. These exporters are independent applications that translate internal database statistics into a format readable by Prometheus-compatible systems.
Metric Collection Models
The following diagram illustrates the relationship between the pmm-agent, exporters, and the PMM Server's data ingestion components.
The client-side pmm-agent manages the lifecycle of exporters and optionally runs vmagent to handle high-frequency metric pushes using the Prometheus remote write protocol.
Sources: CONTRIBUTING.md, api/inventory/v1/agents.proto:44-55
Core Agent Types
PMM supports a wide range of agents categorized by their monitoring focus, including system metrics, database-specific exporters, and Query Analytics (QAN) agents.
| Agent Type | Description |
|---|---|
AGENT_TYPE_NODE_EXPORTER | Exports machine-level metrics (CPU, Memory, Disk, Network). |
AGENT_TYPE_MYSQLD_EXPORTER | Exports MySQL server performance metrics. |
AGENT_TYPE_MONGODB_EXPORTER | Exports MongoDB server performance metrics. |
AGENT_TYPE_POSTGRES_EXPORTER | Exports PostgreSQL server performance metrics. |
AGENT_TYPE_PROXYSQL_EXPORTER | Exports ProxySQL-specific metrics. |
AGENT_TYPE_RDS_EXPORTER | Remote exporter for AWS RDS instance metrics. |
AGENT_TYPE_AZURE_DATABASE_EXPORTER | Remote exporter for Azure managed database services. |
Sources: api/inventory/v1/agents.proto:17-41, CONTRIBUTING.md
Database Specific Integrations
MySQL Monitoring
MySQL integration provides deep visibility through the standard mysqld_exporter and specialized QAN agents. QAN agents can collect data via two primary methods:
- Performance Schema: Scrapes the database's internal performance tables.
- Slow Log: Parses the MySQL slow query log for detailed query timing.
Sources: api/inventory/v1/agents.proto:26-28, api/management/v1/service.swagger.json
MongoDB and PostgreSQL
Monitoring for MongoDB and PostgreSQL follows a similar pattern, combining general exporters with profiler-based QAN agents.
PostgreSQL integration specifically allows configuring the maximum number of exporter connections and supports auto-discovery limits for databases within an instance.
Sources: api/inventory/v1/agents.proto:145-212
Cloud and Managed Service Integrations
PMM extends its reach to managed cloud environments through specialized discovery and export mechanisms.
AWS RDS and Microsoft Azure
Integrations for cloud services focus on remote metric collection since standard PMM agents cannot run directly on the managed database hosts.
- Discovery API: PMM provides endpoints like
/v1/management/services:discoverRDSand/v1/management/services:discoverAzureto scan cloud environments for monitorable instances. - Authentication: These exporters require cloud provider credentials (AWS Access/Secret Keys or Azure Client/Tenant IDs) to scrape metrics via provider APIs.
Sources: api/management/v1/service.swagger.json, api/inventory/v1/agents.proto:601-660
Performance and Resource Impact
The performance of exporters is tracked within PMM itself to ensure monitoring does not adversely affect the production system.
| Metric | Visualization Logic |
|---|---|
| CPU Usage | Calculated using rate(process_cpu_seconds_total) per node. |
| Memory Usage | Tracked via process_resident_memory_bytes to monitor the footprint of each exporter. |
| File Descriptors | Monitored using process_open_fds to identify potential resource leaks in agent processes. |
Sources: dashboards/dashboards/Insight/Prometheus_Exporters_Overview.json
Configuration Options
Individual agents can be fine-tuned via the API. Common parameters applicable across most exporters include:
- LogLevel: Controls the verbosity of the exporter logs (e.g., INFO, DEBUG, WARN).
- Push Metrics: A boolean flag to enable/disable the
vmagentpush model. - TLS Settings: Options for encrypted connections, including CA certificates, client certificates, and "skip verify" flags for internal environments.
- Custom Labels: User-defined key-value pairs that are attached to all metrics produced by the agent, facilitating easier filtering in dashboards.
Sources: api/inventory/v1/agents.proto:441-456, api/management/v1/service.swagger.json
PMM's support for a vast array of exporters and integrations ensures that database administrators have a unified view of their entire infrastructure, ranging from local containers to globally distributed cloud databases. By leveraging both community-standard exporters and custom-built QAN agents, PMM provides a comprehensive performance monitoring solution.