the-tip-top-backend/node_modules/prom-client/lib/validation.js
2025-10-25 23:21:31 +00:00

28 lines
712 B
JavaScript

'use strict';
const util = require('util');
// These are from https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
const metricRegexp = /^[a-zA-Z_:][a-zA-Z0-9_:]*$/;
const labelRegexp = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
exports.validateMetricName = function (name) {
return metricRegexp.test(name);
};
exports.validateLabelName = function (names = []) {
return names.every(name => labelRegexp.test(name));
};
exports.validateLabel = function validateLabel(savedLabels, labels) {
for (const label in labels) {
if (!savedLabels.includes(label)) {
throw new Error(
`Added label "${label}" is not included in initial labelset: ${util.inspect(
savedLabels,
)}`,
);
}
}
};