UNPKG

@boxyhq/metrics

Version:

Internal SDK for OTel instrumentation

45 lines (44 loc) 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeMetrics = initializeMetrics; const api_1 = require("@opentelemetry/api"); const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http"); const exporter_metrics_otlp_grpc_1 = require("@opentelemetry/exporter-metrics-otlp-grpc"); const sdk_metrics_1 = require("@opentelemetry/sdk-metrics"); const resources_1 = require("@opentelemetry/resources"); const semantic_conventions_1 = require("@opentelemetry/semantic-conventions"); /** * Configure the exporter and also a global MeterProvider. * * See https://opentelemetry.io/docs/instrumentation/js/instrumentation/#initialize-metrics */ function initializeMetrics(serviceInfo) { if (process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_ENDPOINT) { const meterProvider = new sdk_metrics_1.MeterProvider({ resource: new resources_1.Resource({ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: `${serviceInfo.name}`, [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: `${serviceInfo.version}`, }), }); let metricExporter; if (process.env.OTEL_EXPORTER_OTLP_PROTOCOL === 'grpc' || process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL === 'grpc') { metricExporter = new exporter_metrics_otlp_grpc_1.OTLPMetricExporter(); } else { metricExporter = new exporter_metrics_otlp_http_1.OTLPMetricExporter(); } /** exportIntervalMillis must be greater than exportTimeoutMillis */ const exportIntervalMillis = Number(process.env.OTEL_EXPORT_INTERVAL_MS) || 60000; const exportTimeoutMillis = Number(process.env.OTEL_EXPORT_INTERVAL_MS) - 1000 || 30000; meterProvider.addMetricReader(new sdk_metrics_1.PeriodicExportingMetricReader({ exporter: metricExporter, exportIntervalMillis, exportTimeoutMillis, })); api_1.metrics.setGlobalMeterProvider(meterProvider); } if (process.env.OTEL_EXPORTER_DEBUG) { api_1.diag.setLogger(new api_1.DiagConsoleLogger(), api_1.DiagLogLevel.DEBUG); } }