UNPKG

@message-queue-toolkit/metrics

Version:

Utilities for collecting metrics in message-queue-toolkit

31 lines 1.22 kB
import promClient from 'prom-client'; /**w * Implementation of MessageMetricsManager for Prometheus */ export class PrometheusMessageMetric { /** Fallbacks to null if metrics are disabled on app level */ metric; messageVersionGeneratingFunction; metricParams; /** * @param metricParams - metrics parameters (see PrometheusMetricParams) * @param client - use it to specify custom Prometheus client */ constructor(metricParams, client) { this.metricParams = metricParams; this.messageVersionGeneratingFunction = this.resolveMessageVersionGeneratingFunction(metricParams); this.metric = this.registerMetric(client ?? promClient); } registerMetric(client) { const existingMetric = client.register.getSingleMetric(this.metricParams.name); return existingMetric ? existingMetric : this.createMetric(client, this.metricParams); } resolveMessageVersionGeneratingFunction(metricParams) { const messageVersion = metricParams.messageVersion; return typeof messageVersion === 'function' ? messageVersion : () => messageVersion; } } //# sourceMappingURL=PrometheusMessageMetric.js.map