@gati-framework/observability
Version:
Observability stack for Gati framework - Prometheus, Grafana, Loki, and Tracing
26 lines (25 loc) • 920 B
JavaScript
import { PrometheusMetrics } from '../prometheus/metrics.js';
export class PrometheusAdapter {
metrics;
constructor() {
this.metrics = new PrometheusMetrics();
}
incrementCounter(name, labels, value = 1) {
const counter = this.metrics.createCounter(name, `Counter for ${name}`, Object.keys(labels || {}));
counter.inc(labels || {}, value);
}
setGauge(name, value, labels) {
const gauge = this.metrics.createGauge(name, `Gauge for ${name}`, Object.keys(labels || {}));
gauge.set(labels || {}, value);
}
recordHistogram(name, value, labels) {
const histogram = this.metrics.createHistogram(name, `Histogram for ${name}`, Object.keys(labels || {}));
histogram.observe(labels || {}, value);
}
async getMetrics() {
return this.metrics.getMetrics();
}
getPrometheusMetrics() {
return this.metrics;
}
}