3.0.0 • Published 7 years ago
generic-pool-prometheus-exporter v3.0.0
generic-pool-prometheus-exporter
Prometheus exporter for the generic-pool
npm
package that's used by knex.
API
poolExporter
Create pool exporter
Types:
{type=min}
min size of the pool{type=max}
size of the pool{type=acquired}
number of resources that are currently acquired{type=spare_capacity}
number of resources the pool could create before hitting any limits{type=available}
number of unused resources in the pool{type=borrowed}
number of resources that are currently acquired by userland code{type=pending}
number of callers waiting to acquire a resource
Metrics:
# HELP pool_size_total Size of the pool
# TYPE pool_size_total gauge
pool_size_total{type="min"} 2
pool_size_total{type="max"} 3
pool_size_total{type="acquired"} 1
pool_size_total{type="spare_capacity"} 2
pool_size_total{type="available"} 0
pool_size_total{type="borrowed"} 1
pool_size_total{type="pending"} 0
Parameters
pool
Pool generic-pool instanceopts
Object? options
Examples
With generic-pool
(node-pool)
const promClient = require('prom-client');
const pool = require('generic-pool');
const poolExporter = require('generic-pool-prometheus-exporter');
const myPool = genericPool.createPool({ ... }, { min 1, max: 5 });
const exporter = poolExporter(myPool);
console.log(promClient.register.metrics())
// exporter.registry.off()
<caption>With manual observe
const promClient = require('prom-client');
const pool = require('generic-pool');
const poolExporter = require('generic-pool-prometheus-exporter');
const myPool = genericPool.createPool({ ... }, { min 1, max: 5 });
const exporter = poolExporter(myPool, { interval: null });
// exporter.observe();
console.log(promClient.register.metrics())
// exporter.observe();
console.log(promClient.register.metrics())
With knex
const promClient = require('prom-client');
const Knex = require('knex');
const poolExporter = require('generic-pool-prometheus-exporter');
const knex = Knex({
client: 'mysql'
...
});
const exporter = poolExporter(knex);
console.log(promClient.register.metrics())
// =>
// # HELP pool_size_total Size of the pool
// # TYPE pool_size_total gauge
// pool_size_total{type="min"} 2
// pool_size_total{type="max"} 3
// pool_size_total{type="acquired"} 1
// pool_size_total{type="spare_capacity"} 2
// pool_size_total{type="available"} 0
// pool_size_total{type="borrowed"} 1
// pool_size_total{type="pending"} 0
Returns Function exporter { off, observe }