@message-queue-toolkit/metrics
Version:
Utilities for collecting metrics in message-queue-toolkit
36 lines • 1.47 kB
JavaScript
;
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