The Coroot team is happy to announce [coroot-pg-agent](https://github.com/coroot/coroot-pg-agent) – an open-source (Apache 2.0) Postgres exporter for Prometheus focusing on query performance statistics.
### Motivation: At Coroot, we work on a product that detects the root cause of a service outage and provides our users with a list of possible fixes. Initially, we planned to use metrics collected by existing open-source Prometheus exporters, such as [postgres_exporter](https://github.com/prometheus-community/postgres_exporter) (1.7k stars on Github). Unfortunately, we realized that the metrics it collects are useless for identifying the most common performance issues, like: * A CPU-intensive query is affecting other queries * A server has reached its *max_connections* limit because most of the connections are stuck in the *idle in transaction* state * An I/O-intensive query is affecting other queries * A query is blocking other queries by holding an exclusive lock Proposed changes to *postgres_exporter* would be too massive, so we decided to build another exporter. ### Features: **Comprehensive query metrics** The agent aggregates statistics from *pg_stat_statements* and *pg_stat_activity* to take into account not only finished queries but also those still executing. **Locks monitoring** It is not enough to gather the number of active locks from *pg_locks*. What DBAs really want to know is which query is blocking other queries. The collected metrics can provide the answer to that. **Query normalization and obfuscation** In addition to query normalization, which Postgres does, the agent obfuscates all queries so that no sensitive data gets into the metrics labels. ### Links * [GitHub repository](https://github.com/coroot/coroot-pg-agent) * [The full announcement on our blog](https://coroot.com/blog/pg-agent) * [Metrics description](https://coroot.com/docs/metrics/pg-agent)