UNPKG

@splunk/otel

Version:

The Splunk distribution of OpenTelemetry Node Instrumentation provides a Node agent that automatically instruments your Node application to capture and report distributed traces to Splunk APM.

59 lines 2.01 kB
"use strict"; /* * Copyright Splunk Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.detect = void 0; exports.getDetectedResource = getDetectedResource; exports.clearResource = clearResource; const api_1 = require("@opentelemetry/api"); const resources_1 = require("@opentelemetry/resources"); const resource_detector_container_1 = require("@opentelemetry/resource-detector-container"); const DistroDetector_1 = require("./detectors/DistroDetector"); const detectors = [ DistroDetector_1.distroDetector, resource_detector_container_1.containerDetector, resources_1.envDetectorSync, resources_1.hostDetectorSync, resources_1.osDetectorSync, resources_1.processDetectorSync, ]; let detectedResource; const detect = () => { return detectors .map((detector) => { try { return detector.detect(); } catch (e) { api_1.diag.error(`${detector.constructor.name} failed:`, e); return resources_1.Resource.empty(); } }) .reduce((acc, resource) => { return acc.merge(resource); }, resources_1.Resource.empty()); }; exports.detect = detect; function getDetectedResource() { if (detectedResource === undefined) { detectedResource = (0, exports.detect)(); } return detectedResource; } function clearResource() { detectedResource = undefined; } //# sourceMappingURL=resource.js.map