
Research
/Security News
77 Firefox Extensions Linked to Crypto Wallet and Credential Theft
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.
@christiangalsterer/node-postgres-prometheus-exporter
Advanced tools
A prometheus exporter for node-postgres
A prometheus exporter exposing metrics for node-postgres.
The exporter provides the following metrics.
| Metric Name | Description | Labels | Since |
|---|---|---|---|
| pg_client_errors_total | The total number of connection errors with a database |
| 1.0.0 |
| pg_client_disconnects_total | The total number of disconnected connections |
| 1.0.0 |
| Metric Name | Description | Labels | Since |
|---|---|---|---|
| pg_pool_connections_created_total | The total number of created connections |
| 1.0.0 |
| pg_pool_size | The current size of the connection pool, including active and idle members |
| 1.0.0 |
| pg_pool_active_connections | The total number of active connections |
| 1.0.0 |
| pg_pool_errors_total | The total number of connection errors with a database |
| 1.0.0 |
| pg_pool_connections_removed_total | The total number of removed connections |
| 1.0.0 |
Here an example output in the prometheus format of the provided metrics.
# HELP pg_client_errors_total The total number of connection errors with a database.
# TYPE pg_client_errors_total counter
pg_client_errors_total{host="localhost:5432",database="node_postgres_test1"} 1
# HELP pg_client_disconnects_total The total number of disconnected connections.
# TYPE pg_client_disconnects_total counter
pg_client_disconnects_total{host="localhost:5432",database="node_postgres_test1"} 1
# HELP pg_pool_connections_created_total The total number of created connections.
# TYPE pg_pool_connections_created_total counter
pg_pool_connections_created_total{host="localhost:5432",database="node_postgres_test1"} 19
# HELP pg_pool_size The current size of the connection pool, including active and idle members.
# TYPE pg_pool_size gauge
pg_pool_size{host="localhost:5432",database="node_postgres_test1"} 10
# HELP pg_pool_max The maximum size of the connection pool.
# TYPE pg_pool_max gauge
pg_pool_max{host="localhost:5432",database="node_postgres_test1"} 10
# HELP pg_pool_active_connections The total number of active connections.
# TYPE pg_pool_active_connections gauge
pg_pool_active_connections{host="localhost:5432",database="node_postgres_test1"} 10
# HELP pg_pool_waiting_connections The total number of waiting connections.
# TYPE pg_pool_waiting_connections gauge
pg_pool_waiting_connections{host="localhost:5432",database="node_postgres_test1"} 1
# HELP pg_pool_idle_connections The total number of idle connections.
# TYPE pg_pool_idle_connections gauge
pg_pool_idle_connections{host="localhost:5432",database="node_postgres_test1"} 0
# HELP pg_pool_errors_total The total number of connection errors with a database.
# TYPE pg_pool_errors_total counter
pg_pool_errors_total{host="localhost:5432",database="node_postgres_test1"} 1
# HELP pg_pool_connections_removed_total The total number of removed connections.
# TYPE pg_pool_connections_removed_total counter
pg_pool_connections_removed_total{host="localhost:5432",database="node_postgres_test1"} 9
Add the following dependency to your project to download the package from npm.
npm i @christiangalsterer/node-postgres-prometheus-exporter
The following example illustrates how to use the exporter to enable monitoring for the node-postgres.
import { Client, Pool } from 'pg'
import { Registry, collectDefaultMetrics } from 'prom-client'
import { monitorPgClient, monitorPgPool } from '@christiangalsterer/node-postgres-prometheus-exporter'
...
// set up a pg.Client
const client = new Client()
// set up a pg.Pool
const pool = new Pool()
// set up the prometheus client
const register = new Registry();
collectDefaultMetrics({ register })
// monitor the pg.Client
monitorPgClient(client, register)
// monitor the pg.Pool
monitorPgPool(pool, register)
...
// connect to PostgreSQL *after* calling monitorPgClient() / monitorPgPool()
await client.connect()
await pool.connect()
The following example illustrates how to use the exporter to enable monitoring for node-postgres.
const pg = require('pg')
const promClient = require( 'prom-client');
const postgresExporter = require('@christiangalsterer/node-postgres-prometheus-exporter')
// set up a pg.Client
const client = new pg.Client()
// set up a pg.Pool
const pool = new pg.Pool()
// set up the prometheus client
const collectDefaultMetrics = promClient.collectDefaultMetrics;
const Registry = promClient.Registry;
const register = new Registry();
collectDefaultMetrics({ register });
// monitor the pg.Client
postgresExporter.monitorPgClient(client, register)
// monitor the pg.Pool
postgresExporter.monitorPgPool(pool, register)
// connect to Postgres *after* calling monitorPgClient() / monitorPgPool()
await client.connect()
await pool.connect()
The exporter can be configured via properties specified on the optional parameter of type PgClientExporterOptions and PgPoolExporterOptions respectively.
| property | Description | Example | Since |
|---|---|---|---|
| defaultLabels | Default labels added to each metrics. | {'foo':'bar', 'alice': 3} | 1.0.0 |
| property | Description | Example | Since |
|---|---|---|---|
| defaultLabels | Default labels added to each metrics. | {'foo':'bar', 'alice': 3} | 1.0.0 |
An example dashboard for Grafana is available here displaying the provided metrics by the exporter.
Here an example for node-postgres client metrics:

Here an example for node-postgres pool metrics:

The changes to project can be found in the changelog.
The following table list the compatibility of exporter versions with different node-postgres and prom-client versions.
| Exporter Version | node-postgres Version | prom-client version |
|---|---|---|
| ^1.0.0 | ^8.11.0 | ^15.0.0 |
Contributions are highly welcome. If you want to contribute to this project please follow the steps described in the contribution guidelines.
If you want to support this project, please add a link to your project and/or company when you use this exporter.
If you are looking for a way to monitor your MongoDB Driver for Node.js you may have a look at https://github.com/christiangalsterer/mongodb-driver-prometheus-exporter.
If you are looking for a way to monitor KafkaJs for Node.js you may have a look at https://github.com/christiangalsterer/kafkajs-prometheus-exporter.
FAQs
A prometheus exporter for node-postgres
We found that @christiangalsterer/node-postgres-prometheus-exporter demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.

Security News
NIST disclosed an unreleased AI tool called V-etalon and opened a broad inquiry into NVD modernization after years of automation plans produced no public enrichment system.

Security News
In his AI Council 2026 talk, Feross Aboukhadijeh covers recent package compromises, vulnerability discovery, and a more automated security model.