UNPKG

common-core-pkg

Version:

Common package for all the utils

36 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupOpenTelemetry = setupOpenTelemetry; const sdk_node_1 = require("@opentelemetry/sdk-node"); const resources_1 = require("@opentelemetry/resources"); const semantic_conventions_1 = require("@opentelemetry/semantic-conventions"); const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node"); const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http"); const exporter_prometheus_1 = require("@opentelemetry/exporter-prometheus"); async function setupOpenTelemetry(config) { const detectedResource = await (0, resources_1.detectResources)({ detectors: [resources_1.envDetector, resources_1.processDetector], }); const resource = (0, resources_1.resourceFromAttributes)({ [semantic_conventions_1.ATTR_SERVICE_NAME]: config.appName, [semantic_conventions_1.ATTR_SERVICE_VERSION]: config.appVersion, 'deployment.environment': config.deplomentEnv, }); const mergedResource = detectedResource.merge(resource); const traceExporter = new exporter_trace_otlp_http_1.OTLPTraceExporter({ url: config.traceUrl, }); const prometheusExporter = new exporter_prometheus_1.PrometheusExporter({ port: 9464, endpoint: '/metrics', }); const sdk = new sdk_node_1.NodeSDK({ resource: mergedResource, traceExporter, metricReader: prometheusExporter, instrumentations: [(0, auto_instrumentations_node_1.getNodeAutoInstrumentations)()], }); console.log('✅ OpenTelemetry started at http://localhost:9464/metrics'); return sdk; } //# sourceMappingURL=index.js.map