MCPcopy
hub / github.com/prometheus/client_js / observe

Function observe

lib/histogram.js:231–263  ·  view source on GitHub ↗
(labels)

Source from the content-addressed store, hash-verified

229}
230
231function observe(labels) {
232 return value => {
233 const labelValuePair = convertLabelsAndValues(labels, value);
234
235 validateLabel(this.labelNames, labelValuePair.labels);
236 if (!Number.isFinite(labelValuePair.value)) {
237 throw new TypeError(
238 `Value is not a valid number: ${util.format(labelValuePair.value)}`,
239 );
240 }
241
242 const hash = hashObject(labelValuePair.labels, this.sortedLabelNames);
243 let valueFromMap = this.hashMap[hash];
244 if (!valueFromMap) {
245 valueFromMap = createBaseValues(
246 labelValuePair.labels,
247 this.bucketValues,
248 this.bucketExemplars,
249 );
250 }
251
252 const b = findBound(this.upperBounds, labelValuePair.value);
253
254 valueFromMap.sum += labelValuePair.value;
255 valueFromMap.count += 1;
256
257 if (Object.prototype.hasOwnProperty.call(valueFromMap.bucketValues, b)) {
258 valueFromMap.bucketValues[b] += 1;
259 }
260
261 this.hashMap[hash] = valueFromMap;
262 };
263}
264
265function createBaseValues(labels, bucketValues, bucketExemplars) {
266 const result = {

Callers

nothing calls this directly

Calls 4

hashObjectFunction · 0.85
createBaseValuesFunction · 0.85
findBoundFunction · 0.85
convertLabelsAndValuesFunction · 0.70

Tested by

no test coverage detected