UNPKG

@message-queue-toolkit/metrics

Version:

Utilities for collecting metrics in message-queue-toolkit

36 lines 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PrometheusMessageMetric = void 0; const tslib_1 = require("tslib"); const prom_client_1 = tslib_1.__importDefault(require("prom-client")); /**w * Implementation of MessageMetricsManager for Prometheus */ 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 ?? prom_client_1.default); } 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; } } exports.PrometheusMessageMetric = PrometheusMessageMetric; //# sourceMappingURL=PrometheusMessageMetric.js.map