UNPKG

@opentelemetry/instrumentation-runtime-node

Version:
43 lines 1.65 kB
"use strict"; /* * Copyright The OpenTelemetry Authors * SPDX-License-Identifier: Apache-2.0 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.ActiveResourcesCollector = void 0; const baseCollector_1 = require("./baseCollector"); const semconv_1 = require("../semconv"); class ActiveResourcesCollector extends baseCollector_1.BaseCollector { _knownTypes = new Set(); updateMetricInstruments(meter) { const activeResources = meter.createObservableGauge(semconv_1.METRIC_V8JS_RESOURCE_ACTIVE, { description: 'Count of the active resources that are currently keeping the event loop alive.', unit: '{resource}', }); meter.addBatchObservableCallback(observableResult => { if (!this._config.enabled) return; const data = this.scrape(); const pdata = {}; for (const type of data) { if (Object.hasOwn(pdata, type)) { pdata[type] += 1; } else { pdata[type] = 1; } this._knownTypes.add(type); } for (const key of this._knownTypes) { observableResult.observe(activeResources, Object.hasOwn(pdata, key) ? pdata[key] : 0, { [semconv_1.ATTR_V8JS_RESOURCE_TYPE]: key }); } }, [activeResources]); } internalEnable() { } internalDisable() { } scrape() { return process.getActiveResourcesInfo(); } } exports.ActiveResourcesCollector = ActiveResourcesCollector; //# sourceMappingURL=activeResourcesCollector.js.map