@opentelemetry/sdk-node 0.219.0 → 0.220.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ContextManager, TextMapPropagator } from '@opentelemetry/api';\nimport { context, diag, propagation } from '@opentelemetry/api';\nimport {\n CompositePropagator,\n getNumberFromEnv,\n getStringFromEnv,\n getStringListFromEnv,\n W3CBaggagePropagator,\n W3CTraceContextPropagator,\n} from '@opentelemetry/core';\nimport { OTLPTraceExporter as OTLPProtoTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';\nimport { OTLPTraceExporter as OTLPHttpTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { OTLPTraceExporter as OTLPGrpcTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';\nimport { ZipkinExporter } from '@opentelemetry/exporter-zipkin';\nimport type {\n DetectedResourceAttributes,\n Resource,\n ResourceDetector,\n} from '@opentelemetry/resources';\nimport {\n envDetector,\n hostDetector,\n osDetector,\n processDetector,\n resourceFromAttributes,\n serviceInstanceIdDetector,\n} from '@opentelemetry/resources';\nimport type {\n Sampler,\n SpanExporter,\n SpanLimits,\n SpanProcessor,\n} from '@opentelemetry/sdk-trace-base';\nimport {\n AlwaysOffSampler,\n AlwaysOnSampler,\n BatchSpanProcessor,\n ConsoleSpanExporter,\n ParentBasedSampler,\n SimpleSpanProcessor,\n TraceIdRatioBasedSampler,\n} from '@opentelemetry/sdk-trace-base';\nimport { B3InjectEncoding, B3Propagator } from '@opentelemetry/propagator-b3';\nimport { JaegerPropagator } from '@opentelemetry/propagator-jaeger';\nimport { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\nimport { OTLPLogExporter as OTLPHttpLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { OTLPLogExporter as OTLPGrpcLogExporter } from '@opentelemetry/exporter-logs-otlp-grpc';\nimport { OTLPLogExporter as OTLPProtoLogExporter } from '@opentelemetry/exporter-logs-otlp-proto';\nimport { CompressionAlgorithm } from '@opentelemetry/otlp-exporter-base';\nimport {\n createEmptyMetadata,\n createInsecureCredentials,\n createSslCredentials,\n} from '@opentelemetry/otlp-grpc-exporter-base';\nimport type {\n ConfigurationModel,\n LogRecordExporterConfigModel,\n InstrumentTypeConfigModel,\n AggregationConfigModel,\n MetricProducerConfigModel,\n PeriodicMetricReaderConfigModel,\n SpanExporterConfigModel,\n SamplerConfigModel,\n NameStringValuePairConfigModel,\n HttpTlsConfigModel,\n GrpcTlsConfigModel,\n} from '@opentelemetry/configuration';\nimport type {\n AggregationOption,\n IAttributesProcessor,\n IMetricReader,\n PushMetricExporter,\n ViewOptions,\n} from '@opentelemetry/sdk-metrics';\nimport {\n AggregationType,\n ConsoleMetricExporter,\n createAllowListAttributesProcessor,\n createDenyListAttributesProcessor,\n InstrumentType,\n PeriodicExportingMetricReader,\n} from '@opentelemetry/sdk-metrics';\nimport { OTLPMetricExporter as OTLPGrpcMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';\nimport { OTLPMetricExporter as OTLPHttpMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { OTLPMetricExporter as OTLPProtoMetricExporter } from '@opentelemetry/exporter-metrics-otlp-proto';\nimport type {\n BufferConfig,\n LogRecordExporter,\n LoggerProviderOptions,\n LogRecordProcessor,\n} from '@opentelemetry/sdk-logs';\nimport type { MetricProducer } from '@opentelemetry/sdk-metrics';\nimport {\n BatchLogRecordProcessor,\n ConsoleLogRecordExporter,\n SimpleLogRecordProcessor,\n} from '@opentelemetry/sdk-logs';\nimport * as fs from 'fs';\n\nconst RESOURCE_DETECTOR_ENVIRONMENT = 'env';\nconst RESOURCE_DETECTOR_HOST = 'host';\nconst RESOURCE_DETECTOR_OS = 'os';\nconst RESOURCE_DETECTOR_PROCESS = 'process';\nconst RESOURCE_DETECTOR_SERVICE_INSTANCE_ID = 'serviceinstance';\n\nexport function getResourceFromConfiguration(\n config: ConfigurationModel\n): Resource | undefined {\n if (config.resource && config.resource.attributes) {\n const attrs: DetectedResourceAttributes = {};\n for (let i = 0; i < config.resource.attributes.length; i++) {\n const a = config.resource.attributes[i];\n // https://github.com/open-telemetry/opentelemetry-configuration/issues/613\n // will likely clarify that entries with a `null` value should be ignored.\n if (a.value !== null) {\n attrs[a.name] = a.value;\n }\n }\n return resourceFromAttributes(attrs, {\n schemaUrl: config.resource.schema_url ?? undefined,\n });\n }\n return undefined;\n}\n\nexport function getResourceDetectorsFromEnv(): Array<ResourceDetector> {\n // When updating this list, make sure to also update the section `resourceDetectors` on README.\n const resourceDetectors = new Map<string, ResourceDetector>([\n [RESOURCE_DETECTOR_HOST, hostDetector],\n [RESOURCE_DETECTOR_OS, osDetector],\n [RESOURCE_DETECTOR_SERVICE_INSTANCE_ID, serviceInstanceIdDetector],\n [RESOURCE_DETECTOR_PROCESS, processDetector],\n [RESOURCE_DETECTOR_ENVIRONMENT, envDetector],\n ]);\n\n const resourceDetectorsFromEnv = getStringListFromEnv(\n 'OTEL_NODE_RESOURCE_DETECTORS'\n ) ?? ['all'];\n\n if (resourceDetectorsFromEnv.includes('all')) {\n return [...resourceDetectors.values()].flat();\n }\n\n if (resourceDetectorsFromEnv.includes('none')) {\n return [];\n }\n\n return resourceDetectorsFromEnv.flatMap(detector => {\n const resourceDetector = resourceDetectors.get(detector);\n if (!resourceDetector) {\n diag.warn(\n `Invalid resource detector \"${detector}\" specified in the environment variable OTEL_NODE_RESOURCE_DETECTORS`\n );\n }\n return resourceDetector || [];\n });\n}\n\nexport function getResourceDetectorsFromConfiguration(\n config: ConfigurationModel\n): Array<ResourceDetector> {\n const detectors = config.resource?.['detection/development']?.detectors ?? [];\n\n return detectors.flatMap(detector => {\n const result: ResourceDetector[] = [];\n if (detector.host !== undefined) result.push(hostDetector);\n if (detector.os !== undefined) result.push(osDetector);\n if (detector.process !== undefined) result.push(processDetector);\n if (detector.service !== undefined) result.push(serviceInstanceIdDetector);\n if (detector.env !== undefined) result.push(envDetector);\n return result;\n });\n}\n\nexport function getOtlpProtocolFromEnv(): string {\n return (\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf'\n );\n}\n\nfunction getOtlpExporterFromEnv(): SpanExporter {\n const protocol = getOtlpProtocolFromEnv();\n\n switch (protocol) {\n case 'grpc':\n return new OTLPGrpcTraceExporter();\n case 'http/json':\n return new OTLPHttpTraceExporter();\n case 'http/protobuf':\n return new OTLPProtoTraceExporter();\n default:\n diag.warn(\n `Unsupported OTLP traces protocol: ${protocol}. Using http/protobuf.`\n );\n return new OTLPProtoTraceExporter();\n }\n}\n\nexport function getSpanProcessorsFromEnv(): SpanProcessor[] {\n const exportersMap = new Map<string, () => SpanExporter>([\n ['otlp', () => getOtlpExporterFromEnv()],\n ['zipkin', () => new ZipkinExporter()],\n ['console', () => new ConsoleSpanExporter()],\n ]);\n const exporters: SpanExporter[] = [];\n const processors: SpanProcessor[] = [];\n let traceExportersList = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n ).filter(s => s !== 'null');\n\n if (traceExportersList[0] === 'none') {\n diag.warn(\n 'OTEL_TRACES_EXPORTER contains \"none\". SDK will not be initialized.'\n );\n return [];\n }\n\n if (traceExportersList.length === 0) {\n diag.debug('OTEL_TRACES_EXPORTER is empty. Using default otlp exporter.');\n traceExportersList = ['otlp'];\n } else if (\n traceExportersList.length > 1 &&\n traceExportersList.includes('none')\n ) {\n diag.warn(\n 'OTEL_TRACES_EXPORTER contains \"none\" along with other exporters. Using default otlp exporter.'\n );\n traceExportersList = ['otlp'];\n }\n\n for (const name of traceExportersList) {\n const exporter = exportersMap.get(name)?.();\n if (exporter) {\n exporters.push(exporter);\n } else {\n diag.warn(`Unrecognized OTEL_TRACES_EXPORTER value: ${name}.`);\n }\n }\n\n for (const exp of exporters) {\n if (exp instanceof ConsoleSpanExporter) {\n processors.push(new SimpleSpanProcessor(exp));\n } else {\n processors.push(new BatchSpanProcessor(exp));\n }\n }\n\n if (exporters.length === 0) {\n diag.warn(\n 'Unable to set up trace exporter(s) due to invalid exporter and/or protocol values.'\n );\n }\n\n return processors;\n}\n\n/**\n * Get a propagator as defined by environment variables\n */\nexport function getPropagatorFromEnv(): TextMapPropagator | null | undefined {\n // Empty and undefined MUST be treated equal.\n const propagatorsEnvVarValue = getStringListFromEnv('OTEL_PROPAGATORS');\n if (propagatorsEnvVarValue == null) {\n // return undefined to fall back to default\n return undefined;\n }\n\n if (propagatorsEnvVarValue.includes('none')) {\n return null;\n }\n\n // Implementation note: this only contains specification required propagators that are actually hosted in this repo.\n // Any other propagators (like aws, aws-lambda, should go into `@opentelemetry/auto-configuration-propagators` instead).\n const propagatorsFactory = new Map<string, () => TextMapPropagator>([\n ['tracecontext', () => new W3CTraceContextPropagator()],\n ['baggage', () => new W3CBaggagePropagator()],\n ['b3', () => new B3Propagator()],\n [\n 'b3multi',\n () => new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }),\n ],\n ['jaeger', () => new JaegerPropagator()],\n ]);\n\n // Values MUST be deduplicated in order to register a Propagator only once.\n const uniquePropagatorNames = Array.from(new Set(propagatorsEnvVarValue));\n const validPropagators: TextMapPropagator[] = [];\n\n uniquePropagatorNames.forEach(name => {\n const propagator = propagatorsFactory.get(name)?.();\n if (!propagator) {\n diag.warn(\n `Propagator \"${name}\" requested through environment variable is unavailable.`\n );\n return;\n }\n\n validPropagators.push(propagator);\n });\n\n if (validPropagators.length === 0) {\n // null to signal that the default should **not** be used in its place.\n return null;\n } else if (uniquePropagatorNames.length === 1) {\n return validPropagators[0];\n } else {\n return new CompositePropagator({\n propagators: validPropagators,\n });\n }\n}\n\n/**\n * Get a propagator as defined by configuration model from configuration\n */\nexport function getPropagatorFromConfiguration(\n config: ConfigurationModel\n): TextMapPropagator | null | undefined {\n const propagatorsValue = getKeyListFromObjectArray(\n config.propagator?.composite\n );\n if (propagatorsValue == null) {\n // return undefined to fall back to default\n return undefined;\n }\n\n if (propagatorsValue.includes('none')) {\n return null;\n }\n\n // Implementation note: this only contains specification required propagators that are actually hosted in this repo.\n // Any other propagators (like aws, aws-lambda, should go into `@opentelemetry/auto-configuration-propagators` instead).\n const propagatorsFactory = new Map<string, () => TextMapPropagator>([\n ['tracecontext', () => new W3CTraceContextPropagator()],\n ['baggage', () => new W3CBaggagePropagator()],\n ['b3', () => new B3Propagator()],\n [\n 'b3multi',\n () => new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }),\n ],\n ['jaeger', () => new JaegerPropagator()],\n ]);\n\n // Values MUST be deduplicated in order to register a Propagator only once.\n const uniquePropagatorNames = Array.from(new Set(propagatorsValue));\n const validPropagators: TextMapPropagator[] = [];\n\n uniquePropagatorNames.forEach(name => {\n const propagator = propagatorsFactory.get(name)?.();\n if (!propagator) {\n diag.warn(\n `Propagator \"${name}\" requested through configuration is unavailable.`\n );\n return;\n }\n\n validPropagators.push(propagator);\n });\n\n if (validPropagators.length === 0) {\n // null to signal that the default should **not** be used in its place.\n return null;\n } else if (uniquePropagatorNames.length === 1) {\n return validPropagators[0];\n } else {\n return new CompositePropagator({\n propagators: validPropagators,\n });\n }\n}\n\nexport function setupContextManager(\n contextManager: ContextManager | null | undefined\n) {\n // null means 'do not register'\n if (contextManager === null) {\n return;\n }\n\n // undefined means 'register default'\n if (contextManager === undefined) {\n const defaultContextManager = new AsyncLocalStorageContextManager();\n defaultContextManager.enable();\n context.setGlobalContextManager(defaultContextManager);\n return;\n }\n\n contextManager.enable();\n context.setGlobalContextManager(contextManager);\n}\n\nexport function setupPropagator(\n propagator: TextMapPropagator | null | undefined\n) {\n // null means 'do not register'\n if (propagator === null) {\n return;\n }\n\n // undefined means 'register default'\n if (propagator === undefined) {\n propagation.setGlobalPropagator(\n new CompositePropagator({\n propagators: [\n new W3CTraceContextPropagator(),\n new W3CBaggagePropagator(),\n ],\n })\n );\n return;\n }\n\n propagation.setGlobalPropagator(propagator);\n}\n\nexport function getKeyListFromObjectArray(\n obj: object[] | undefined\n): string[] | undefined {\n if (!obj || obj.length === 0) {\n return undefined;\n }\n\n const keys: string[] = [];\n for (const item of obj) {\n for (const key of Object.keys(item)) {\n keys.push(key);\n }\n }\n return keys;\n}\n\nexport function getNonNegativeNumberFromEnv(\n envVarName: string\n): number | undefined {\n const value = getNumberFromEnv(envVarName);\n if (value != null && value <= 0) {\n diag.warn(\n `${envVarName} (${value}) is invalid, expected number greater than 0, using default.`\n );\n return undefined;\n }\n return value;\n}\n\nexport function getPeriodicExportingMetricReaderFromEnv(\n exporter: PushMetricExporter\n): IMetricReader {\n const defaultTimeoutMillis = 30_000;\n const defaultIntervalMillis = 60_000;\n\n const rawExportIntervalMillis = getNonNegativeNumberFromEnv(\n 'OTEL_METRIC_EXPORT_INTERVAL'\n );\n const rawExportTimeoutMillis = getNonNegativeNumberFromEnv(\n 'OTEL_METRIC_EXPORT_TIMEOUT'\n );\n\n // Apply defaults\n const exportIntervalMillis = rawExportIntervalMillis ?? defaultIntervalMillis;\n let exportTimeoutMillis = rawExportTimeoutMillis ?? defaultTimeoutMillis;\n\n // Ensure timeout doesn't exceed interval\n if (exportTimeoutMillis > exportIntervalMillis) {\n // determine which env vars were set and which ones defaulted for logging purposes\n const timeoutSource =\n rawExportTimeoutMillis != null\n ? rawExportTimeoutMillis.toString()\n : `${defaultTimeoutMillis}, default`;\n const intervalSource =\n rawExportIntervalMillis != null\n ? rawExportIntervalMillis.toString()\n : `${defaultIntervalMillis}, default`;\n\n const bothSetByUser =\n rawExportTimeoutMillis != null && rawExportIntervalMillis != null;\n const logMessage = `OTEL_METRIC_EXPORT_TIMEOUT (${timeoutSource}) is greater than OTEL_METRIC_EXPORT_INTERVAL (${intervalSource}). Clamping timeout to interval value.`;\n\n // only bother users if they explicitly set both values.\n if (bothSetByUser) {\n diag.warn(logMessage);\n } else {\n diag.info(logMessage);\n }\n\n exportTimeoutMillis = exportIntervalMillis;\n }\n\n return new PeriodicExportingMetricReader({\n exportTimeoutMillis,\n exportIntervalMillis,\n exporter,\n });\n}\n\nexport function getOtlpMetricExporterFromEnv(): PushMetricExporter {\n const protocol =\n (\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL')\n )?.trim() || 'http/protobuf'; // Using || to also fall back on empty string\n\n switch (protocol) {\n case 'grpc':\n return new OTLPGrpcMetricExporter();\n case 'http/json':\n return new OTLPHttpMetricExporter();\n case 'http/protobuf':\n return new OTLPProtoMetricExporter();\n }\n\n diag.warn(\n `Unsupported OTLP metrics protocol: \"${protocol}\". Using http/protobuf.`\n );\n return new OTLPProtoMetricExporter();\n}\n\nfunction getMetricProducersFromConfiguration(\n producers: MetricProducerConfigModel[] | undefined\n): MetricProducer[] | undefined {\n if (!producers || producers.length === 0) {\n return undefined;\n }\n const result: MetricProducer[] = [];\n for (const producer of producers) {\n if (producer.opencensus) {\n try {\n const {\n OpenCensusMetricProducer,\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n } = require('@opentelemetry/shim-opencensus');\n result.push(new OpenCensusMetricProducer());\n } catch {\n diag.warn(\n 'OpenCensus metric producer configured but @opentelemetry/shim-opencensus is not installed.'\n );\n }\n } else {\n diag.warn('Unsupported metric producer configured.');\n }\n }\n return result.length > 0 ? result : undefined;\n}\n\nexport function getPeriodicMetricReaderFromConfiguration(\n periodic: PeriodicMetricReaderConfigModel\n): IMetricReader | undefined {\n if (periodic.exporter) {\n let exporter;\n if (periodic.exporter.otlp_http !== undefined) {\n const encoding = periodic.exporter.otlp_http?.encoding ?? 'protobuf';\n if (encoding === 'json') {\n exporter = new OTLPHttpMetricExporter({\n compression:\n periodic.exporter.otlp_http?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n });\n } else if (encoding === 'protobuf') {\n exporter = new OTLPProtoMetricExporter({\n compression:\n periodic.exporter.otlp_http?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n });\n } else {\n diag.warn(`Unsupported OTLP metrics encoding: ${encoding}.`);\n }\n }\n if (periodic.exporter.otlp_grpc !== undefined) {\n exporter = new OTLPGrpcMetricExporter({\n compression:\n periodic.exporter.otlp_grpc?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n });\n }\n\n const metricProducers = getMetricProducersFromConfiguration(\n periodic.producers\n );\n\n if (exporter) {\n // TODO(6425): add cardinality_limits\n return new PeriodicExportingMetricReader({\n exportIntervalMillis: periodic.interval ?? 60_000,\n exportTimeoutMillis: periodic.timeout ?? 30_000,\n exporter,\n metricProducers,\n });\n }\n if (periodic.exporter.console !== undefined) {\n return new PeriodicExportingMetricReader({\n exporter: new ConsoleMetricExporter(),\n metricProducers,\n });\n }\n }\n diag.warn('Unsupported Metric Exporter.');\n return undefined;\n}\n\n/**\n * Get LoggerProviderConfig from environment variables.\n */\nexport function getLoggerProviderConfigFromEnv(): LoggerProviderOptions {\n return {\n logRecordLimits: {\n attributeCountLimit:\n getNonNegativeNumberFromEnv('OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT') ??\n getNonNegativeNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT'),\n attributeValueLengthLimit:\n getNonNegativeNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n ) ?? getNonNegativeNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'),\n },\n };\n}\n\n/**\n * Get configuration for BatchLogRecordProcessor from environment variables.\n */\nexport function getBatchLogRecordProcessorConfigFromEnv(): BufferConfig {\n return {\n maxQueueSize: getNonNegativeNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE'),\n scheduledDelayMillis: getNonNegativeNumberFromEnv(\n 'OTEL_BLRP_SCHEDULE_DELAY'\n ),\n exportTimeoutMillis: getNonNegativeNumberFromEnv(\n 'OTEL_BLRP_EXPORT_TIMEOUT'\n ),\n maxExportBatchSize: getNonNegativeNumberFromEnv(\n 'OTEL_BLRP_MAX_EXPORT_BATCH_SIZE'\n ),\n };\n}\n\nexport function getBatchLogRecordProcessorFromEnv(\n exporter: LogRecordExporter\n): BatchLogRecordProcessor {\n return new BatchLogRecordProcessor(\n exporter,\n getBatchLogRecordProcessorConfigFromEnv()\n );\n}\n\nexport function getLogRecordExporter(\n exporter: LogRecordExporterConfigModel\n): LogRecordExporter | undefined {\n if (exporter.otlp_http !== undefined) {\n const cfg = exporter.otlp_http;\n const commonOpts = {\n compression:\n cfg?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: cfg?.endpoint ?? undefined,\n headers: getHeadersFromConfiguration(cfg?.headers),\n timeoutMillis: validateExporterTimeout(cfg?.timeout),\n httpAgentOptions: getHttpAgentOptionsFromTls(cfg?.tls),\n };\n const encoding = cfg?.encoding ?? 'protobuf';\n if (encoding === 'json') {\n return new OTLPHttpLogExporter(commonOpts);\n }\n if (encoding === 'protobuf') {\n return new OTLPProtoLogExporter(commonOpts);\n }\n diag.warn(\n `Unsupported OTLP logs encoding: ${encoding}. Using http/protobuf.`\n );\n return new OTLPProtoLogExporter(commonOpts);\n } else if (exporter.otlp_grpc !== undefined) {\n const cfg = exporter.otlp_grpc;\n return new OTLPGrpcLogExporter({\n compression:\n cfg?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: cfg?.endpoint ?? undefined,\n timeoutMillis: validateExporterTimeout(cfg?.timeout),\n credentials: getGrpcCredentialsFromTls(cfg?.tls),\n metadata: getGrpcMetadataFromHeaders(cfg?.headers),\n });\n } else if (exporter.console !== undefined) {\n return new ConsoleLogRecordExporter();\n }\n diag.warn('Unsupported Exporter value. No Log Record Exporter registered');\n return undefined;\n}\n\nexport function getLogRecordProcessorsFromConfiguration(\n config: ConfigurationModel\n): LogRecordProcessor[] | undefined {\n const logRecordProcessors: LogRecordProcessor[] = [];\n config.logger_provider?.processors?.forEach(processor => {\n if (processor.batch) {\n const exporter = getLogRecordExporter(processor.batch.exporter);\n if (exporter) {\n logRecordProcessors.push(\n new BatchLogRecordProcessor(exporter, {\n maxQueueSize: processor.batch.max_queue_size ?? undefined,\n maxExportBatchSize:\n processor.batch.max_export_batch_size ?? undefined,\n scheduledDelayMillis: processor.batch.schedule_delay ?? undefined,\n exportTimeoutMillis: processor.batch.export_timeout ?? undefined,\n })\n );\n }\n }\n if (processor.simple) {\n const exporter = getLogRecordExporter(processor.simple.exporter);\n if (exporter) {\n logRecordProcessors.push(new SimpleLogRecordProcessor(exporter));\n }\n }\n });\n if (logRecordProcessors.length > 0) {\n return logRecordProcessors;\n }\n return undefined;\n}\n\nexport function getHeadersFromConfiguration(\n headers: NameStringValuePairConfigModel[] | undefined\n): Record<string, string> | undefined {\n if (!headers) {\n return undefined;\n }\n const result: Record<string, string> = {};\n headers.forEach(header => {\n if (header.value !== null) {\n result[header.name] = header.value;\n }\n });\n return result;\n}\n\n/**\n * Validate an exporter timeout value. The spec says 0 means \"no limit\n * (infinity)\" but the JS exporters don't support that yet (see #6617).\n * Warn and return undefined so the exporter falls back to its default.\n */\nfunction validateExporterTimeout(\n timeout: number | null | undefined\n): number | undefined {\n if (timeout === null) {\n return undefined;\n } else if (timeout === 0) {\n diag.warn(\n 'Exporter timeout of 0 (infinite) is not supported. Using default timeout.'\n );\n return undefined;\n }\n return timeout;\n}\n\nexport function getHttpAgentOptionsFromTls(\n tls: HttpTlsConfigModel | undefined\n): { ca?: Buffer; cert?: Buffer; key?: Buffer } | undefined {\n if (tls && (tls.ca_file || tls.cert_file || tls.key_file)) {\n return {\n ca: readFileOrWarn(tls.ca_file, 'TLS CA'),\n cert: readFileOrWarn(tls.cert_file, 'TLS cert'),\n key: readFileOrWarn(tls.key_file, 'TLS key'),\n };\n }\n return undefined;\n}\n\nfunction getGrpcCredentialsFromTls(tls?: GrpcTlsConfigModel) {\n if (tls?.insecure) {\n return createInsecureCredentials();\n }\n const rootCert = readFileOrWarn(tls?.ca_file, 'TLS CA');\n const privateKey = readFileOrWarn(tls?.key_file, 'TLS key');\n const certChain = readFileOrWarn(tls?.cert_file, 'TLS cert');\n if (rootCert || privateKey || certChain) {\n try {\n return createSslCredentials(rootCert, privateKey, certChain);\n } catch (e) {\n diag.warn(`Failed to create gRPC SSL credentials: ${e}`);\n return undefined;\n }\n }\n return undefined;\n}\n\nfunction getGrpcMetadataFromHeaders(\n headers: NameStringValuePairConfigModel[] | undefined\n) {\n if (!headers || headers.length === 0) {\n return undefined;\n }\n const metadata = createEmptyMetadata();\n for (const header of headers) {\n if (header.value !== null) {\n metadata.set(header.name, header.value);\n }\n }\n return metadata;\n}\n\nfunction readFileOrWarn(\n filePath: string | null | undefined,\n label: string\n): Buffer | undefined {\n if (!filePath) return undefined;\n try {\n return fs.readFileSync(filePath);\n } catch (e) {\n diag.warn(`Failed to read ${label} file at ${filePath}: ${e}`);\n return undefined;\n }\n}\n\nexport function getSpanExporter(\n exporter: SpanExporterConfigModel\n): SpanExporter | undefined {\n if (exporter.otlp_http !== undefined) {\n const encoding = exporter.otlp_http?.encoding ?? 'protobuf';\n if (encoding === 'json') {\n return new OTLPHttpTraceExporter({\n compression:\n exporter.otlp_http?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: exporter.otlp_http?.endpoint ?? undefined,\n headers: getHeadersFromConfiguration(exporter.otlp_http?.headers),\n timeoutMillis: validateExporterTimeout(exporter.otlp_http?.timeout),\n httpAgentOptions: getHttpAgentOptionsFromTls(exporter.otlp_http?.tls),\n });\n } else {\n return new OTLPProtoTraceExporter({\n compression:\n exporter.otlp_http?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: exporter.otlp_http?.endpoint ?? undefined,\n headers: getHeadersFromConfiguration(exporter.otlp_http?.headers),\n timeoutMillis: validateExporterTimeout(exporter.otlp_http?.timeout),\n httpAgentOptions: getHttpAgentOptionsFromTls(exporter.otlp_http?.tls),\n });\n }\n } else if (exporter.otlp_grpc !== undefined) {\n return new OTLPGrpcTraceExporter({\n compression:\n exporter.otlp_grpc?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: exporter.otlp_grpc?.endpoint ?? undefined,\n timeoutMillis: validateExporterTimeout(exporter.otlp_grpc?.timeout),\n credentials: getGrpcCredentialsFromTls(exporter.otlp_grpc?.tls),\n metadata: getGrpcMetadataFromHeaders(exporter.otlp_grpc?.headers),\n });\n } else if (exporter.console !== undefined) {\n return new ConsoleSpanExporter();\n }\n diag.warn('Unsupported Exporter value. No Span Exporter registered');\n return undefined;\n}\n\nexport function getSpanProcessorsFromConfiguration(\n config: ConfigurationModel\n): SpanProcessor[] | undefined {\n const spanProcessors: SpanProcessor[] = [];\n config.tracer_provider?.processors?.forEach(processor => {\n if (processor.batch) {\n const exporter = getSpanExporter(processor.batch.exporter);\n if (exporter) {\n spanProcessors.push(\n new BatchSpanProcessor(exporter, {\n maxQueueSize: processor.batch.max_queue_size ?? undefined,\n maxExportBatchSize:\n processor.batch.max_export_batch_size ?? undefined,\n scheduledDelayMillis: processor.batch.schedule_delay ?? undefined,\n exportTimeoutMillis: processor.batch.export_timeout ?? undefined,\n })\n );\n }\n }\n if (processor.simple) {\n const exporter = getSpanExporter(processor.simple.exporter);\n if (exporter) {\n spanProcessors.push(new SimpleSpanProcessor(exporter));\n }\n }\n });\n if (spanProcessors.length > 0) {\n return spanProcessors;\n }\n return undefined;\n}\n\nexport function getSpanLimitsFromConfiguration(\n config: ConfigurationModel\n): SpanLimits | undefined {\n if (config.tracer_provider?.limits) {\n const limitsConfig = config.tracer_provider.limits;\n const spanLimits: SpanLimits = {};\n spanLimits.attributeCountLimit = limitsConfig.attribute_count_limit ?? 128;\n spanLimits.eventCountLimit = limitsConfig.event_count_limit ?? 128;\n spanLimits.linkCountLimit = limitsConfig.link_count_limit ?? 128;\n spanLimits.attributePerLinkCountLimit =\n limitsConfig.link_attribute_count_limit ?? 128;\n spanLimits.attributePerEventCountLimit =\n limitsConfig.event_attribute_count_limit ?? 128;\n\n if (limitsConfig.attribute_value_length_limit != null) {\n spanLimits.attributeValueLengthLimit =\n limitsConfig.attribute_value_length_limit;\n }\n\n return spanLimits;\n }\n return undefined;\n}\n\nexport function getMeterReadersFromConfiguration(\n config: ConfigurationModel\n): IMetricReader[] | undefined {\n const metricReaders: IMetricReader[] = [];\n config.meter_provider?.readers?.forEach(reader => {\n if (reader.periodic) {\n const periodicReader = getPeriodicMetricReaderFromConfiguration(\n reader.periodic\n );\n if (periodicReader) {\n metricReaders.push(periodicReader);\n }\n }\n });\n if (metricReaders.length > 0) {\n return metricReaders;\n }\n return undefined;\n}\n\nexport function getInstrumentType(\n instrument: InstrumentTypeConfigModel\n): InstrumentType | undefined {\n switch (instrument) {\n case 'counter':\n return InstrumentType.COUNTER;\n case 'gauge':\n return InstrumentType.GAUGE;\n case 'histogram':\n return InstrumentType.HISTOGRAM;\n case 'observable_counter':\n return InstrumentType.OBSERVABLE_COUNTER;\n case 'observable_gauge':\n return InstrumentType.OBSERVABLE_GAUGE;\n case 'observable_up_down_counter':\n return InstrumentType.OBSERVABLE_UP_DOWN_COUNTER;\n case 'up_down_counter':\n return InstrumentType.UP_DOWN_COUNTER;\n default:\n diag.warn(`Unsupported instrument type: ${instrument}`);\n return undefined;\n }\n}\n\nexport function getAggregationType(\n aggregation: AggregationConfigModel\n): AggregationOption | undefined {\n if (aggregation.default) {\n return {\n type: AggregationType.DEFAULT,\n };\n }\n if (aggregation.drop) {\n return {\n type: AggregationType.DROP,\n };\n }\n if (aggregation.explicit_bucket_histogram) {\n return {\n type: AggregationType.EXPLICIT_BUCKET_HISTOGRAM,\n options: {\n recordMinMax:\n aggregation.explicit_bucket_histogram.record_min_max ?? true,\n boundaries: aggregation.explicit_bucket_histogram.boundaries ?? [\n 0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500,\n 10000,\n ],\n },\n };\n }\n\n if (aggregation.base2_exponential_bucket_histogram) {\n return {\n type: AggregationType.EXPONENTIAL_HISTOGRAM,\n options: {\n recordMinMax:\n aggregation.base2_exponential_bucket_histogram.record_min_max ??\n undefined,\n maxSize:\n aggregation.base2_exponential_bucket_histogram.max_size ?? undefined,\n },\n };\n }\n if (aggregation.last_value) {\n return {\n type: AggregationType.LAST_VALUE,\n };\n }\n if (aggregation.sum) {\n return {\n type: AggregationType.SUM,\n };\n }\n\n diag.warn('Unsupported aggregation type');\n return undefined;\n}\n\nexport function getMeterViewsFromConfiguration(\n config: ConfigurationModel\n): ViewOptions[] | undefined {\n const metricViews: ViewOptions[] = [];\n config.meter_provider?.views?.forEach(view => {\n const viewOption: ViewOptions = {};\n if (view.selector) {\n if (view.selector.instrument_name) {\n viewOption.instrumentName = view.selector.instrument_name;\n }\n if (view.selector.instrument_type) {\n const instrumentType = getInstrumentType(view.selector.instrument_type);\n if (instrumentType) {\n viewOption.instrumentType = instrumentType;\n }\n }\n if (view.selector.unit) {\n viewOption.instrumentUnit = view.selector.unit;\n }\n if (view.selector.meter_name) {\n viewOption.meterName = view.selector.meter_name;\n }\n if (view.selector.meter_version) {\n viewOption.meterVersion = view.selector.meter_version;\n }\n if (view.selector.meter_schema_url) {\n viewOption.meterSchemaUrl = view.selector.meter_schema_url;\n }\n }\n if (view.stream) {\n if (view.stream.name) {\n viewOption.name = view.stream.name;\n }\n viewOption.aggregationCardinalityLimit =\n view.stream.aggregation_cardinality_limit ?? 2_000;\n if (view.stream.description) {\n viewOption.description = view.stream.description;\n }\n if (view.stream.aggregation) {\n const aggregationType = getAggregationType(view.stream.aggregation);\n if (aggregationType) {\n viewOption.aggregation = aggregationType;\n }\n }\n if (view.stream.attribute_keys) {\n const processors: IAttributesProcessor[] = [];\n if (\n view.stream.attribute_keys.included &&\n view.stream.attribute_keys.included.length > 0\n ) {\n processors.push(\n createAllowListAttributesProcessor(\n view.stream.attribute_keys.included\n )\n );\n }\n if (\n view.stream.attribute_keys.excluded &&\n view.stream.attribute_keys.excluded.length > 0\n ) {\n processors.push(\n createDenyListAttributesProcessor(\n view.stream.attribute_keys.excluded\n )\n );\n }\n if (processors.length > 0) {\n viewOption.attributesProcessors = processors;\n }\n }\n }\n\n if (Object.keys(viewOption).length > 0) {\n metricViews.push(viewOption);\n }\n });\n if (metricViews.length > 0) {\n return metricViews;\n }\n return undefined;\n}\n\nexport function getInstanceID(config: ConfigurationModel): string | undefined {\n if (config.resource?.attributes) {\n for (let i = 0; i < config.resource.attributes.length; i++) {\n const element = config.resource.attributes[i];\n if (element.name === 'service.instance.id') {\n return element.value?.toString();\n }\n }\n }\n return undefined;\n}\n\nconst DEFAULT_RATIO = 1;\n\n/**\n * Builds a {@link Sampler} from a {@link SamplerConfigModel} data model.\n * This allows sampler construction from declarative configuration.\n */\nexport function buildSamplerFromConfig(\n samplerConfig: SamplerConfigModel\n): Sampler {\n if (samplerConfig.always_on !== undefined) {\n return new AlwaysOnSampler();\n }\n if (samplerConfig.always_off !== undefined) {\n return new AlwaysOffSampler();\n }\n if (samplerConfig.trace_id_ratio_based !== undefined) {\n return new TraceIdRatioBasedSampler(\n samplerConfig.trace_id_ratio_based?.ratio ?? DEFAULT_RATIO\n );\n }\n if (samplerConfig.parent_based !== undefined) {\n const pb = samplerConfig.parent_based ?? {};\n return new ParentBasedSampler({\n root: pb.root ? buildSamplerFromConfig(pb.root) : new AlwaysOnSampler(),\n remoteParentSampled: pb.remote_parent_sampled\n ? buildSamplerFromConfig(pb.remote_parent_sampled)\n : undefined,\n remoteParentNotSampled: pb.remote_parent_not_sampled\n ? buildSamplerFromConfig(pb.remote_parent_not_sampled)\n : undefined,\n localParentSampled: pb.local_parent_sampled\n ? buildSamplerFromConfig(pb.local_parent_sampled)\n : undefined,\n localParentNotSampled: pb.local_parent_not_sampled\n ? buildSamplerFromConfig(pb.local_parent_not_sampled)\n : undefined,\n });\n }\n diag.error('Unknown sampler config, defaulting to ParentBased(AlwaysOn).');\n return new ParentBasedSampler({ root: new AlwaysOnSampler() });\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n ContextManager,\n MeterProvider,\n TextMapPropagator,\n} from '@opentelemetry/api';\nimport { context, diag, propagation } from '@opentelemetry/api';\nimport {\n CompositePropagator,\n getNumberFromEnv,\n getStringFromEnv,\n getStringListFromEnv,\n W3CBaggagePropagator,\n W3CTraceContextPropagator,\n} from '@opentelemetry/core';\nimport { OTLPTraceExporter as OTLPProtoTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';\nimport { OTLPTraceExporter as OTLPHttpTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { OTLPTraceExporter as OTLPGrpcTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';\nimport { ZipkinExporter } from '@opentelemetry/exporter-zipkin';\nimport type {\n DetectedResourceAttributes,\n Resource,\n ResourceDetector,\n} from '@opentelemetry/resources';\nimport {\n envDetector,\n hostDetector,\n osDetector,\n processDetector,\n resourceFromAttributes,\n serviceInstanceIdDetector,\n} from '@opentelemetry/resources';\nimport type {\n IdGenerator,\n Sampler,\n SpanExporter,\n SpanProcessor,\n} from '@opentelemetry/sdk-trace';\nimport {\n AlwaysOffSampler,\n AlwaysOnSampler,\n BatchSpanProcessor,\n ConsoleSpanExporter,\n ParentBasedSampler,\n RandomIdGenerator,\n SimpleSpanProcessor,\n TraceIdRatioBasedSampler,\n} from '@opentelemetry/sdk-trace';\nimport { B3InjectEncoding, B3Propagator } from '@opentelemetry/propagator-b3';\nimport { JaegerPropagator } from '@opentelemetry/propagator-jaeger';\nimport { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\nimport { OTLPLogExporter as OTLPHttpLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { OTLPLogExporter as OTLPGrpcLogExporter } from '@opentelemetry/exporter-logs-otlp-grpc';\nimport { OTLPLogExporter as OTLPProtoLogExporter } from '@opentelemetry/exporter-logs-otlp-proto';\nimport { CompressionAlgorithm } from '@opentelemetry/otlp-exporter-base';\nimport {\n createEmptyMetadata,\n createInsecureCredentials,\n createSslCredentials,\n} from '@opentelemetry/otlp-grpc-exporter-base';\nimport type {\n ConfigurationModel,\n LogRecordExporterConfigModel,\n InstrumentTypeConfigModel,\n AggregationConfigModel,\n MetricProducerConfigModel,\n PeriodicMetricReaderConfigModel,\n PushMetricExporterConfigModel,\n OtlpHttpMetricExporterConfigModel,\n OtlpGrpcMetricExporterConfigModel,\n SpanExporterConfigModel,\n SamplerConfigModel,\n NameStringValuePairConfigModel,\n HttpTlsConfigModel,\n GrpcTlsConfigModel,\n TextMapPropagatorConfigModel,\n AttributeLimitsConfigModel,\n BatchLogRecordProcessorConfigModel,\n LoggerProviderConfigModel,\n LogRecordProcessorConfigModel,\n OtlpGrpcExporterConfigModel,\n OtlpHttpExporterConfigModel,\n SimpleLogRecordProcessorConfigModel,\n LogRecordLimitsConfigModel,\n} from '@opentelemetry/configuration';\nimport {\n mergePropagatorCompositeConfig,\n mergeResourceAttributesConfig,\n} from '@opentelemetry/configuration';\nimport type {\n AggregationOption,\n AggregationSelector,\n IAttributesProcessor,\n IMetricReader,\n PushMetricExporter,\n ViewOptions,\n} from '@opentelemetry/sdk-metrics';\nimport {\n AggregationType,\n ConsoleMetricExporter,\n createAllowListAttributesProcessor,\n createDenyListAttributesProcessor,\n InstrumentType,\n PeriodicExportingMetricReader,\n} from '@opentelemetry/sdk-metrics';\nimport { OTLPMetricExporter as OTLPGrpcMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';\nimport { OTLPMetricExporter as OTLPHttpMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { AggregationTemporalityPreference } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { OTLPMetricExporter as OTLPProtoMetricExporter } from '@opentelemetry/exporter-metrics-otlp-proto';\nimport type {\n BatchLogRecordProcessorOptions,\n LogRecordExporter,\n LoggerProviderOptions,\n LogRecordProcessor,\n LogRecordLimits,\n} from '@opentelemetry/sdk-logs';\nimport type { MetricProducer } from '@opentelemetry/sdk-metrics';\nimport {\n BatchLogRecordProcessor,\n ConsoleLogRecordExporter,\n SimpleLogRecordProcessor,\n LoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport * as fs from 'fs';\nimport { inspect } from 'util';\nimport { createBatchSpanProcessorFromEnv } from './create-from-env';\n\nconst RESOURCE_DETECTOR_ENVIRONMENT = 'env';\nconst RESOURCE_DETECTOR_HOST = 'host';\nconst RESOURCE_DETECTOR_OS = 'os';\nconst RESOURCE_DETECTOR_PROCESS = 'process';\nconst RESOURCE_DETECTOR_SERVICE_INSTANCE_ID = 'serviceinstance';\n\nexport function getResourceFromConfiguration(\n config: ConfigurationModel\n): Resource | undefined {\n if (!config.resource) {\n return undefined;\n }\n\n const configAttrs = mergeResourceAttributesConfig(\n config.resource.attributes,\n config.resource.attributes_list\n );\n if (!configAttrs) {\n return undefined;\n }\n\n const attrs: DetectedResourceAttributes = {};\n for (let i = 0; i < configAttrs.length; i++) {\n const a = configAttrs[i];\n if (a.value !== null) {\n attrs[a.name] = a.value;\n }\n }\n return resourceFromAttributes(attrs, {\n schemaUrl: config.resource.schema_url ?? undefined,\n });\n}\n\nexport function getResourceDetectorsFromEnv(): Array<ResourceDetector> {\n // When updating this list, make sure to also update the section `resourceDetectors` on README.\n const resourceDetectors = new Map<string, ResourceDetector>([\n [RESOURCE_DETECTOR_HOST, hostDetector],\n [RESOURCE_DETECTOR_OS, osDetector],\n [RESOURCE_DETECTOR_SERVICE_INSTANCE_ID, serviceInstanceIdDetector],\n [RESOURCE_DETECTOR_PROCESS, processDetector],\n [RESOURCE_DETECTOR_ENVIRONMENT, envDetector],\n ]);\n\n const resourceDetectorsFromEnv = getStringListFromEnv(\n 'OTEL_NODE_RESOURCE_DETECTORS'\n ) ?? ['all'];\n\n if (resourceDetectorsFromEnv.includes('all')) {\n return [...resourceDetectors.values()].flat();\n }\n\n if (resourceDetectorsFromEnv.includes('none')) {\n return [];\n }\n\n return resourceDetectorsFromEnv.flatMap(detector => {\n const resourceDetector = resourceDetectors.get(detector);\n if (!resourceDetector) {\n diag.warn(\n `Invalid resource detector \"${detector}\" specified in the environment variable OTEL_NODE_RESOURCE_DETECTORS`\n );\n }\n return resourceDetector || [];\n });\n}\n\nexport function getResourceDetectorsFromConfiguration(\n config: ConfigurationModel\n): Array<ResourceDetector> {\n const detectors = config.resource?.['detection/development']?.detectors ?? [];\n\n return detectors.flatMap(detector => {\n const result: ResourceDetector[] = [];\n if (detector.host !== undefined) result.push(hostDetector);\n if (detector.os !== undefined) result.push(osDetector);\n if (detector.process !== undefined) result.push(processDetector);\n if (detector.service !== undefined) result.push(serviceInstanceIdDetector);\n if (detector.env !== undefined) result.push(envDetector);\n return result;\n });\n}\n\nexport function getOtlpProtocolFromEnv(): string {\n return (\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf'\n );\n}\n\nfunction getOtlpExporterFromEnv(): SpanExporter {\n const protocol = getOtlpProtocolFromEnv();\n\n switch (protocol) {\n case 'grpc':\n return new OTLPGrpcTraceExporter();\n case 'http/json':\n return new OTLPHttpTraceExporter();\n case 'http/protobuf':\n return new OTLPProtoTraceExporter();\n default:\n diag.warn(\n `Unsupported OTLP traces protocol: ${protocol}. Using http/protobuf.`\n );\n return new OTLPProtoTraceExporter();\n }\n}\n\nexport function getSpanProcessorsFromEnv(\n selfObsMeterProvider: MeterProvider | undefined\n): SpanProcessor[] {\n const exportersMap = new Map<string, () => SpanExporter>([\n ['otlp', () => getOtlpExporterFromEnv()],\n ['zipkin', () => new ZipkinExporter()],\n ['console', () => new ConsoleSpanExporter()],\n ]);\n const exporters: SpanExporter[] = [];\n const processors: SpanProcessor[] = [];\n let traceExportersList = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n ).filter(s => s !== 'null');\n\n if (traceExportersList[0] === 'none') {\n diag.warn(\n 'OTEL_TRACES_EXPORTER contains \"none\". SDK will not be initialized.'\n );\n return [];\n }\n\n if (traceExportersList.length === 0) {\n diag.debug('OTEL_TRACES_EXPORTER is empty. Using default otlp exporter.');\n traceExportersList = ['otlp'];\n } else if (\n traceExportersList.length > 1 &&\n traceExportersList.includes('none')\n ) {\n diag.warn(\n 'OTEL_TRACES_EXPORTER contains \"none\" along with other exporters. Using default otlp exporter.'\n );\n traceExportersList = ['otlp'];\n }\n\n for (const name of traceExportersList) {\n const exporter = exportersMap.get(name)?.();\n if (exporter) {\n exporters.push(exporter);\n } else {\n diag.warn(`Unrecognized OTEL_TRACES_EXPORTER value: ${name}.`);\n }\n }\n\n for (const exp of exporters) {\n if (exp instanceof ConsoleSpanExporter) {\n processors.push(\n new SimpleSpanProcessor({ exporter: exp, selfObsMeterProvider })\n );\n } else {\n processors.push(\n createBatchSpanProcessorFromEnv(exp, selfObsMeterProvider)\n );\n }\n }\n\n if (exporters.length === 0) {\n diag.warn(\n 'Unable to set up trace exporter(s) due to invalid exporter and/or protocol values.'\n );\n }\n\n return processors;\n}\n\n/**\n * Get a propagator as defined by environment variables\n */\nexport function getPropagatorFromEnv(): TextMapPropagator | null | undefined {\n // Empty and undefined MUST be treated equal.\n const propagatorsEnvVarValue = getStringListFromEnv('OTEL_PROPAGATORS');\n if (propagatorsEnvVarValue == null) {\n // return undefined to fall back to default\n return undefined;\n }\n\n if (propagatorsEnvVarValue.includes('none')) {\n return null;\n }\n\n // Implementation note: this only contains specification required propagators that are actually hosted in this repo.\n // Any other propagators (like aws, aws-lambda, should go into `@opentelemetry/auto-configuration-propagators` instead).\n const propagatorsFactory = new Map<string, () => TextMapPropagator>([\n ['tracecontext', () => new W3CTraceContextPropagator()],\n ['baggage', () => new W3CBaggagePropagator()],\n ['b3', () => new B3Propagator()],\n [\n 'b3multi',\n () => new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }),\n ],\n ['jaeger', () => new JaegerPropagator()],\n ]);\n\n // Values MUST be deduplicated in order to register a Propagator only once.\n const uniquePropagatorNames = Array.from(new Set(propagatorsEnvVarValue));\n const validPropagators: TextMapPropagator[] = [];\n\n uniquePropagatorNames.forEach(name => {\n const propagator = propagatorsFactory.get(name)?.();\n if (!propagator) {\n diag.warn(\n `Propagator \"${name}\" requested through environment variable is unavailable.`\n );\n return;\n }\n\n validPropagators.push(propagator);\n });\n\n if (validPropagators.length === 0) {\n // null to signal that the default should **not** be used in its place.\n return null;\n } else if (uniquePropagatorNames.length === 1) {\n return validPropagators[0];\n } else {\n return new CompositePropagator({\n propagators: validPropagators,\n });\n }\n}\n\n/**\n * Get a propagator as defined by configuration model from configuration\n */\nexport function getPropagatorFromConfiguration(\n config: ConfigurationModel\n): TextMapPropagator | undefined {\n if (!config.propagator) {\n return undefined;\n }\n\n const configComposite = mergePropagatorCompositeConfig(\n config.propagator.composite,\n config.propagator.composite_list\n );\n if (!configComposite) {\n return undefined;\n }\n\n // TextMapPropagator config items are objects with a single key (the name).\n // Transform this into a more convenient `(name, value)` 2-tuple.\n //\n // As well, guard against two cases where the TypeScript type\n // `TextMapPropagatorConfigModel` does not exactly represent the JSON schema:\n // 1. `\"minProperties\": 1, \"maxProperties\": 1,`\n // 2. The type allows keys with an `undefined` value, but the JSON schema\n // does not.\n const kvFromItem = (\n item: TextMapPropagatorConfigModel\n ): [string, object | null] => {\n const keys = [];\n let value = undefined;\n for (const key of Object.keys(item)) {\n value = item[key];\n if (value === undefined) {\n continue;\n }\n keys.push(key);\n }\n if (keys.length !== 1) {\n throw new Error(\n `invalid \"propagator\" entry in configuration, there must be exactly one key (with a non-undefined value): ${inspect(item)}`\n );\n }\n return [keys[0], value as object | null];\n };\n\n // First pass: handle 'none', remove dupes.\n const names = new Set();\n const kvs = [];\n for (const item of configComposite) {\n const kv = kvFromItem(item);\n const k = kv[0];\n if (names.has(k)) {\n continue;\n }\n names.add(k);\n kvs.push(kv);\n if (k === 'none') {\n return undefined;\n }\n }\n\n // Implementation note: this only contains specification required propagators that are actually hosted in this repo.\n // Any other propagators (like aws, aws-lambda, should go into `@opentelemetry/auto-configuration-propagators` instead).\n const propagatorsFactory = new Map<string, () => TextMapPropagator>([\n ['tracecontext', () => new W3CTraceContextPropagator()],\n ['baggage', () => new W3CBaggagePropagator()],\n ['b3', () => new B3Propagator()],\n [\n 'b3multi',\n () => new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }),\n ],\n ['jaeger', () => new JaegerPropagator()],\n ]);\n\n const validPropagators: TextMapPropagator[] = [];\n for (const [name] of kvs) {\n const propagator = propagatorsFactory.get(name)?.();\n if (!propagator) {\n diag.warn(\n `Propagator \"${name}\" requested through configuration is unavailable.`\n );\n continue;\n }\n validPropagators.push(propagator);\n }\n\n if (validPropagators.length === 0) {\n return undefined;\n } else if (validPropagators.length === 1) {\n return validPropagators[0];\n } else {\n return new CompositePropagator({\n propagators: validPropagators,\n });\n }\n}\n\nexport function setupContextManager(\n contextManager: ContextManager | null | undefined\n) {\n // null means 'do not register'\n if (contextManager === null) {\n return;\n }\n\n // undefined means 'register default'\n if (contextManager === undefined) {\n const defaultContextManager = new AsyncLocalStorageContextManager();\n defaultContextManager.enable();\n context.setGlobalContextManager(defaultContextManager);\n return;\n }\n\n contextManager.enable();\n context.setGlobalContextManager(contextManager);\n}\n\nexport function setupPropagator(\n propagator: TextMapPropagator | null | undefined\n) {\n // null means 'do not register'\n if (propagator === null) {\n return;\n }\n\n // undefined means 'register default'\n if (propagator === undefined) {\n propagation.setGlobalPropagator(\n new CompositePropagator({\n propagators: [\n new W3CTraceContextPropagator(),\n new W3CBaggagePropagator(),\n ],\n })\n );\n return;\n }\n\n propagation.setGlobalPropagator(propagator);\n}\n\nexport function getKeyListFromObjectArray(\n obj: object[] | undefined\n): string[] | undefined {\n if (!obj || obj.length === 0) {\n return undefined;\n }\n\n const keys: string[] = [];\n for (const item of obj) {\n for (const key of Object.keys(item)) {\n keys.push(key);\n }\n }\n return keys;\n}\n\nexport function getNonNegativeNumberFromEnv(\n envVarName: string\n): number | undefined {\n const value = getNumberFromEnv(envVarName);\n if (value != null && value <= 0) {\n diag.warn(\n `${envVarName} (${value}) is invalid, expected number greater than 0, using default.`\n );\n return undefined;\n }\n return value;\n}\n\nexport function getPeriodicExportingMetricReaderFromEnv(\n exporter: PushMetricExporter\n): IMetricReader {\n const defaultTimeoutMillis = 30_000;\n const defaultIntervalMillis = 60_000;\n\n const rawExportIntervalMillis = getNonNegativeNumberFromEnv(\n 'OTEL_METRIC_EXPORT_INTERVAL'\n );\n const rawExportTimeoutMillis = getNonNegativeNumberFromEnv(\n 'OTEL_METRIC_EXPORT_TIMEOUT'\n );\n\n // Apply defaults\n const exportIntervalMillis = rawExportIntervalMillis ?? defaultIntervalMillis;\n let exportTimeoutMillis = rawExportTimeoutMillis ?? defaultTimeoutMillis;\n\n // Ensure timeout doesn't exceed interval\n if (exportTimeoutMillis > exportIntervalMillis) {\n // determine which env vars were set and which ones defaulted for logging purposes\n const timeoutSource =\n rawExportTimeoutMillis != null\n ? rawExportTimeoutMillis.toString()\n : `${defaultTimeoutMillis}, default`;\n const intervalSource =\n rawExportIntervalMillis != null\n ? rawExportIntervalMillis.toString()\n : `${defaultIntervalMillis}, default`;\n\n const bothSetByUser =\n rawExportTimeoutMillis != null && rawExportIntervalMillis != null;\n const logMessage = `OTEL_METRIC_EXPORT_TIMEOUT (${timeoutSource}) is greater than OTEL_METRIC_EXPORT_INTERVAL (${intervalSource}). Clamping timeout to interval value.`;\n\n // only bother users if they explicitly set both values.\n if (bothSetByUser) {\n diag.warn(logMessage);\n } else {\n diag.info(logMessage);\n }\n\n exportTimeoutMillis = exportIntervalMillis;\n }\n\n return new PeriodicExportingMetricReader({\n exportTimeoutMillis,\n exportIntervalMillis,\n exporter,\n });\n}\n\nexport function getOtlpMetricExporterFromEnv(): PushMetricExporter {\n const protocol =\n (\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL')\n )?.trim() || 'http/protobuf'; // Using || to also fall back on empty string\n\n switch (protocol) {\n case 'grpc':\n return new OTLPGrpcMetricExporter();\n case 'http/json':\n return new OTLPHttpMetricExporter();\n case 'http/protobuf':\n return new OTLPProtoMetricExporter();\n }\n\n diag.warn(\n `Unsupported OTLP metrics protocol: \"${protocol}\". Using http/protobuf.`\n );\n return new OTLPProtoMetricExporter();\n}\n\nfunction getMetricProducersFromConfiguration(\n producers: MetricProducerConfigModel[] | undefined\n): MetricProducer[] | undefined {\n if (!producers || producers.length === 0) {\n return undefined;\n }\n const result: MetricProducer[] = [];\n for (const producer of producers) {\n // Note: The \"opencensus\" MetricProducer is intentionally not supported.\n // It is deprecated in OpenTelemetry Configuration v1.2.0.\n diag.warn(\n `Unsupported metric producer in configuration: \"${producer}\". Skipping.`\n );\n }\n return result.length > 0 ? result : undefined;\n}\n\n/**\n * Map a declarative-config `temporality_preference` value to the enum the OTLP\n * metric exporters expect. Returns undefined for an unspecified preference so\n * the exporter falls back to its own default (cumulative).\n */\nfunction getMetricTemporalityPreference(\n preference: string | null | undefined\n): AggregationTemporalityPreference | undefined {\n switch (preference) {\n case 'delta':\n return AggregationTemporalityPreference.DELTA;\n case 'low_memory':\n return AggregationTemporalityPreference.LOWMEMORY;\n case 'cumulative':\n return AggregationTemporalityPreference.CUMULATIVE;\n default:\n return undefined;\n }\n}\n\n/**\n * Map a declarative-config `default_histogram_aggregation` value to an\n * AggregationSelector that applies the requested aggregation to histogram\n * instruments and leaves all other instrument types at their default. Returns\n * undefined for an unspecified value so the exporter uses its own default.\n */\nfunction getMetricAggregationPreference(\n aggregation: string | null | undefined\n): AggregationSelector | undefined {\n let histogramAggregation: AggregationOption;\n switch (aggregation) {\n case 'base2_exponential_bucket_histogram':\n histogramAggregation = { type: AggregationType.EXPONENTIAL_HISTOGRAM };\n break;\n case 'explicit_bucket_histogram':\n histogramAggregation = {\n type: AggregationType.EXPLICIT_BUCKET_HISTOGRAM,\n };\n break;\n default:\n return undefined;\n }\n return (instrumentType: InstrumentType): AggregationOption =>\n instrumentType === InstrumentType.HISTOGRAM\n ? histogramAggregation\n : { type: AggregationType.DEFAULT };\n}\n\nfunction getOtlpHttpMetricExporter(\n otlpHttp: OtlpHttpMetricExporterConfigModel\n): PushMetricExporter | undefined {\n const encoding = otlpHttp?.encoding ?? 'protobuf';\n const options = {\n compression:\n otlpHttp?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: otlpHttp?.endpoint ?? undefined,\n headers: getHeadersFromConfiguration(otlpHttp?.headers),\n timeoutMillis: validateExporterTimeout(otlpHttp?.timeout),\n httpAgentOptions: getHttpAgentOptionsFromTls(otlpHttp?.tls),\n temporalityPreference: getMetricTemporalityPreference(\n otlpHttp?.temporality_preference\n ),\n aggregationPreference: getMetricAggregationPreference(\n otlpHttp?.default_histogram_aggregation\n ),\n };\n if (encoding === 'json') {\n return new OTLPHttpMetricExporter(options);\n } else if (encoding === 'protobuf') {\n return new OTLPProtoMetricExporter(options);\n }\n diag.warn(`Unsupported OTLP metrics encoding: ${encoding}.`);\n return undefined;\n}\n\nfunction getOtlpGrpcMetricExporter(\n otlpGrpc: OtlpGrpcMetricExporterConfigModel\n): PushMetricExporter {\n return new OTLPGrpcMetricExporter({\n compression:\n otlpGrpc?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: otlpGrpc?.endpoint ?? undefined,\n timeoutMillis: validateExporterTimeout(otlpGrpc?.timeout),\n credentials: getGrpcCredentialsFromTls(otlpGrpc?.tls),\n metadata: getGrpcMetadataFromHeaders(otlpGrpc?.headers),\n temporalityPreference: getMetricTemporalityPreference(\n otlpGrpc?.temporality_preference\n ),\n aggregationPreference: getMetricAggregationPreference(\n otlpGrpc?.default_histogram_aggregation\n ),\n });\n}\n\nexport function getMetricExporter(\n exporter: PushMetricExporterConfigModel\n): PushMetricExporter | undefined {\n if (exporter.otlp_http !== undefined) {\n return getOtlpHttpMetricExporter(exporter.otlp_http);\n }\n if (exporter.otlp_grpc !== undefined) {\n return getOtlpGrpcMetricExporter(exporter.otlp_grpc);\n }\n if (exporter.console !== undefined) {\n return new ConsoleMetricExporter();\n }\n diag.warn('Unsupported Metric Exporter.');\n return undefined;\n}\n\nexport function getPeriodicMetricReaderFromConfiguration(\n periodic: PeriodicMetricReaderConfigModel\n): IMetricReader | undefined {\n if (!periodic.exporter) {\n diag.warn('Unsupported Metric Exporter.');\n return undefined;\n }\n\n const exporter = getMetricExporter(periodic.exporter);\n if (!exporter) {\n return undefined;\n }\n\n const metricProducers = getMetricProducersFromConfiguration(\n periodic.producers\n );\n\n // TODO(6425): add cardinality_limits\n return new PeriodicExportingMetricReader({\n exportIntervalMillis: periodic.interval ?? 60_000,\n exportTimeoutMillis: periodic.timeout ?? 30_000,\n exporter,\n metricProducers,\n });\n}\n\n/**\n * Get LoggerProviderConfig from environment variables.\n */\nexport function getLoggerProviderConfigFromEnv(): LoggerProviderOptions {\n return {\n logRecordLimits: {\n attributeCountLimit:\n getNonNegativeNumberFromEnv('OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT') ??\n getNonNegativeNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT'),\n attributeValueLengthLimit:\n getNonNegativeNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n ) ?? getNonNegativeNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'),\n },\n };\n}\n\n/**\n * Get configuration for BatchLogRecordProcessor from environment variables.\n */\nexport function getBatchLogRecordProcessorConfigFromEnv(): Omit<\n BatchLogRecordProcessorOptions,\n 'exporter'\n> {\n return {\n maxQueueSize: getNonNegativeNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE'),\n scheduledDelayMillis: getNonNegativeNumberFromEnv(\n 'OTEL_BLRP_SCHEDULE_DELAY'\n ),\n exportTimeoutMillis: getNonNegativeNumberFromEnv(\n 'OTEL_BLRP_EXPORT_TIMEOUT'\n ),\n maxExportBatchSize: getNonNegativeNumberFromEnv(\n 'OTEL_BLRP_MAX_EXPORT_BATCH_SIZE'\n ),\n };\n}\n\nexport function getBatchLogRecordProcessorFromEnv(\n exporter: LogRecordExporter\n): BatchLogRecordProcessor {\n return new BatchLogRecordProcessor({\n exporter,\n ...getBatchLogRecordProcessorConfigFromEnv(),\n });\n}\n\nfunction createLogRecordLimitsFromConfig(\n limits?: LogRecordLimitsConfigModel,\n attribute_limits?: AttributeLimitsConfigModel\n): LogRecordLimits {\n return {\n attributeValueLengthLimit:\n limits?.attribute_value_length_limit ??\n attribute_limits?.attribute_value_length_limit ??\n undefined,\n attributeCountLimit:\n limits?.attribute_count_limit ??\n attribute_limits?.attribute_count_limit ??\n undefined,\n };\n}\n\nexport function createLoggerProviderFromConfig(\n resource: Resource,\n logger_provider: LoggerProviderConfigModel,\n attribute_limits?: AttributeLimitsConfigModel\n): LoggerProvider {\n const processors = logger_provider.processors.map(p =>\n createLogRecordProcessorFromConfig(p)\n );\n const logRecordLimits = createLogRecordLimitsFromConfig(\n logger_provider.limits,\n attribute_limits\n );\n checkConfigUse('LoggerProvider', logger_provider, ['processors', 'limits']);\n\n return new LoggerProvider({\n resource,\n processors,\n logRecordLimits,\n // TODO: loggerConfigurator\n // TODO: meterProvider\n // Note: forceFlushTimeoutMillis not configurable via decl conf.\n });\n}\n\nexport function createLogRecordExporterFromConfig(\n exporter: LogRecordExporterConfigModel\n): LogRecordExporter {\n const [name, properties] = mustSingleEntry(exporter, 'LogRecordExporter');\n\n switch (name) {\n case 'otlp_http': {\n const props = properties as OtlpHttpExporterConfigModel;\n const commonOpts = {\n compression:\n props?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: props?.endpoint ?? undefined,\n headers: getHeadersFromConfiguration(props?.headers),\n timeoutMillis: validateExporterTimeout(props?.timeout),\n httpAgentOptions: getHttpAgentOptionsFromTls(props?.tls),\n };\n const encoding = props?.encoding ?? 'protobuf';\n switch (encoding) {\n case 'json':\n return new OTLPHttpLogExporter(commonOpts);\n case 'protobuf':\n return new OTLPProtoLogExporter(commonOpts);\n default:\n throw new Error(\n `unknown OtlpHttpExporter encoding in configuration: \"${encoding}\"`\n );\n }\n }\n\n case 'otlp_grpc': {\n const props = properties as OtlpGrpcExporterConfigModel;\n return new OTLPGrpcLogExporter({\n compression:\n props?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: props?.endpoint ?? undefined,\n timeoutMillis: validateExporterTimeout(props?.timeout),\n credentials: getGrpcCredentialsFromTls(props?.tls),\n metadata: getGrpcMetadataFromHeaders(props?.headers),\n });\n }\n\n case 'console':\n return new ConsoleLogRecordExporter();\n\n default:\n throw new Error(\n `unknown LogRecordExporter name in configuration: \"${name}\"`\n );\n }\n}\n\nexport function createLogRecordProcessorFromConfig(\n processor: LogRecordProcessorConfigModel\n): LogRecordProcessor {\n const [name, properties] = mustSingleEntry(processor, 'LogRecordProcessor');\n\n switch (name) {\n case 'batch': {\n const props = properties as BatchLogRecordProcessorConfigModel;\n const exporter = createLogRecordExporterFromConfig(props.exporter);\n return new BatchLogRecordProcessor({\n exporter,\n maxQueueSize: props.max_queue_size ?? undefined,\n maxExportBatchSize: props.max_export_batch_size ?? undefined,\n scheduledDelayMillis: props.schedule_delay ?? undefined,\n exportTimeoutMillis: props.export_timeout ?? undefined,\n });\n }\n\n case 'simple': {\n const props = properties as SimpleLogRecordProcessorConfigModel;\n const exporter = createLogRecordExporterFromConfig(props.exporter);\n return new SimpleLogRecordProcessor({ exporter });\n }\n\n default:\n throw new Error(`unknown LogRecordProcessor name: \"${name}\"`);\n }\n}\n\nexport function getHeadersFromConfiguration(\n headers: NameStringValuePairConfigModel[] | undefined\n): Record<string, string> | undefined {\n if (!headers) {\n return undefined;\n }\n const result: Record<string, string> = {};\n headers.forEach(header => {\n if (header.value !== null) {\n result[header.name] = header.value;\n }\n });\n return result;\n}\n\n/**\n * Validate an exporter timeout value. The spec says 0 means \"no limit\n * (infinity)\" but the JS exporters don't support that yet (see #6617).\n * Warn and return undefined so the exporter falls back to its default.\n */\nfunction validateExporterTimeout(\n timeout: number | null | undefined\n): number | undefined {\n if (timeout === null) {\n return undefined;\n } else if (timeout === 0) {\n diag.warn(\n 'Exporter timeout of 0 (infinite) is not supported. Using default timeout.'\n );\n return undefined;\n }\n return timeout;\n}\n\nexport function getHttpAgentOptionsFromTls(\n tls: HttpTlsConfigModel | undefined\n): { ca?: Buffer; cert?: Buffer; key?: Buffer } | undefined {\n if (tls && (tls.ca_file || tls.cert_file || tls.key_file)) {\n return {\n ca: readFileOrWarn(tls.ca_file, 'TLS CA'),\n cert: readFileOrWarn(tls.cert_file, 'TLS cert'),\n key: readFileOrWarn(tls.key_file, 'TLS key'),\n };\n }\n return undefined;\n}\n\nfunction getGrpcCredentialsFromTls(tls?: GrpcTlsConfigModel) {\n if (tls?.insecure) {\n return createInsecureCredentials();\n }\n const rootCert = readFileOrWarn(tls?.ca_file, 'TLS CA');\n const privateKey = readFileOrWarn(tls?.key_file, 'TLS key');\n const certChain = readFileOrWarn(tls?.cert_file, 'TLS cert');\n if (rootCert || privateKey || certChain) {\n try {\n return createSslCredentials(rootCert, privateKey, certChain);\n } catch (e) {\n diag.warn(`Failed to create gRPC SSL credentials: ${e}`);\n return undefined;\n }\n }\n return undefined;\n}\n\nfunction getGrpcMetadataFromHeaders(\n headers: NameStringValuePairConfigModel[] | undefined\n) {\n if (!headers || headers.length === 0) {\n return undefined;\n }\n const metadata = createEmptyMetadata();\n for (const header of headers) {\n if (header.value !== null) {\n metadata.set(header.name, header.value);\n }\n }\n return metadata;\n}\n\nfunction readFileOrWarn(\n filePath: string | null | undefined,\n label: string\n): Buffer | undefined {\n if (!filePath) return undefined;\n try {\n return fs.readFileSync(filePath);\n } catch (e) {\n diag.warn(`Failed to read ${label} file at ${filePath}: ${e}`);\n return undefined;\n }\n}\n\nexport function getSpanExporter(\n exporter: SpanExporterConfigModel\n): SpanExporter | undefined {\n if (exporter.otlp_http !== undefined) {\n const encoding = exporter.otlp_http?.encoding ?? 'protobuf';\n if (encoding === 'json') {\n return new OTLPHttpTraceExporter({\n compression:\n exporter.otlp_http?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: exporter.otlp_http?.endpoint ?? undefined,\n headers: getHeadersFromConfiguration(exporter.otlp_http?.headers),\n timeoutMillis: validateExporterTimeout(exporter.otlp_http?.timeout),\n httpAgentOptions: getHttpAgentOptionsFromTls(exporter.otlp_http?.tls),\n });\n } else {\n return new OTLPProtoTraceExporter({\n compression:\n exporter.otlp_http?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: exporter.otlp_http?.endpoint ?? undefined,\n headers: getHeadersFromConfiguration(exporter.otlp_http?.headers),\n timeoutMillis: validateExporterTimeout(exporter.otlp_http?.timeout),\n httpAgentOptions: getHttpAgentOptionsFromTls(exporter.otlp_http?.tls),\n });\n }\n } else if (exporter.otlp_grpc !== undefined) {\n return new OTLPGrpcTraceExporter({\n compression:\n exporter.otlp_grpc?.compression === 'gzip'\n ? CompressionAlgorithm.GZIP\n : CompressionAlgorithm.NONE,\n url: exporter.otlp_grpc?.endpoint ?? undefined,\n timeoutMillis: validateExporterTimeout(exporter.otlp_grpc?.timeout),\n credentials: getGrpcCredentialsFromTls(exporter.otlp_grpc?.tls),\n metadata: getGrpcMetadataFromHeaders(exporter.otlp_grpc?.headers),\n });\n } else if (exporter.console !== undefined) {\n return new ConsoleSpanExporter();\n }\n diag.warn('Unsupported Exporter value. No Span Exporter registered');\n return undefined;\n}\n\nexport function getSpanProcessorsFromConfiguration(\n config: ConfigurationModel\n): SpanProcessor[] | undefined {\n const spanProcessors: SpanProcessor[] = [];\n config.tracer_provider?.processors?.forEach(processor => {\n if (processor.batch) {\n const exporter = getSpanExporter(processor.batch.exporter);\n if (exporter) {\n spanProcessors.push(\n new BatchSpanProcessor({\n exporter,\n maxQueueSize: processor.batch.max_queue_size ?? undefined,\n maxExportBatchSize:\n processor.batch.max_export_batch_size ?? undefined,\n scheduledDelayMillis: processor.batch.schedule_delay ?? undefined,\n exportTimeoutMillis: processor.batch.export_timeout ?? undefined,\n })\n );\n }\n }\n if (processor.simple) {\n const exporter = getSpanExporter(processor.simple.exporter);\n if (exporter) {\n spanProcessors.push(new SimpleSpanProcessor({ exporter }));\n }\n }\n });\n if (spanProcessors.length > 0) {\n return spanProcessors;\n }\n return undefined;\n}\n\nexport function getIdGeneratorFromConfiguration(\n config: ConfigurationModel\n): IdGenerator | undefined {\n const idGenerator = config.tracer_provider?.id_generator;\n if (!idGenerator) {\n return undefined;\n }\n if (idGenerator.random !== undefined) {\n return new RandomIdGenerator();\n }\n // Any other key is a third-party / custom id_generator type which we\n // don't currently support. Warn and fall back to SDK default.\n const unknownKeys = Object.keys(idGenerator).filter(k => k !== 'random');\n if (unknownKeys.length > 0) {\n diag.warn(\n `Unsupported id_generator type(s): ${unknownKeys.join(', ')}. Using default.`\n );\n }\n return undefined;\n}\n\nexport function getMeterReadersFromConfiguration(\n config: ConfigurationModel\n): IMetricReader[] | undefined {\n const metricReaders: IMetricReader[] = [];\n config.meter_provider?.readers?.forEach(reader => {\n if (reader.periodic) {\n const periodicReader = getPeriodicMetricReaderFromConfiguration(\n reader.periodic\n );\n if (periodicReader) {\n metricReaders.push(periodicReader);\n }\n }\n });\n if (metricReaders.length > 0) {\n return metricReaders;\n }\n return undefined;\n}\n\nexport function getInstrumentType(\n instrument: InstrumentTypeConfigModel\n): InstrumentType | undefined {\n switch (instrument) {\n case 'counter':\n return InstrumentType.COUNTER;\n case 'gauge':\n return InstrumentType.GAUGE;\n case 'histogram':\n return InstrumentType.HISTOGRAM;\n case 'observable_counter':\n return InstrumentType.OBSERVABLE_COUNTER;\n case 'observable_gauge':\n return InstrumentType.OBSERVABLE_GAUGE;\n case 'observable_up_down_counter':\n return InstrumentType.OBSERVABLE_UP_DOWN_COUNTER;\n case 'up_down_counter':\n return InstrumentType.UP_DOWN_COUNTER;\n default:\n diag.warn(`Unsupported instrument type: ${instrument}`);\n return undefined;\n }\n}\n\nexport function getAggregationType(\n aggregation: AggregationConfigModel\n): AggregationOption | undefined {\n if (aggregation.default) {\n return {\n type: AggregationType.DEFAULT,\n };\n }\n if (aggregation.drop) {\n return {\n type: AggregationType.DROP,\n };\n }\n if (aggregation.explicit_bucket_histogram) {\n return {\n type: AggregationType.EXPLICIT_BUCKET_HISTOGRAM,\n options: {\n recordMinMax:\n aggregation.explicit_bucket_histogram.record_min_max ?? true,\n boundaries: aggregation.explicit_bucket_histogram.boundaries ?? [\n 0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500,\n 10000,\n ],\n },\n };\n }\n\n if (aggregation.base2_exponential_bucket_histogram) {\n return {\n type: AggregationType.EXPONENTIAL_HISTOGRAM,\n options: {\n recordMinMax:\n aggregation.base2_exponential_bucket_histogram.record_min_max ??\n undefined,\n maxSize:\n aggregation.base2_exponential_bucket_histogram.max_size ?? undefined,\n },\n };\n }\n if (aggregation.last_value) {\n return {\n type: AggregationType.LAST_VALUE,\n };\n }\n if (aggregation.sum) {\n return {\n type: AggregationType.SUM,\n };\n }\n\n diag.warn('Unsupported aggregation type');\n return undefined;\n}\n\nexport function getMeterViewsFromConfiguration(\n config: ConfigurationModel\n): ViewOptions[] | undefined {\n const metricViews: ViewOptions[] = [];\n config.meter_provider?.views?.forEach(view => {\n const viewOption: ViewOptions = {};\n if (view.selector) {\n if (view.selector.instrument_name) {\n viewOption.instrumentName = view.selector.instrument_name;\n }\n if (view.selector.instrument_type) {\n const instrumentType = getInstrumentType(view.selector.instrument_type);\n if (instrumentType) {\n viewOption.instrumentType = instrumentType;\n }\n }\n if (view.selector.unit) {\n viewOption.instrumentUnit = view.selector.unit;\n }\n if (view.selector.meter_name) {\n viewOption.meterName = view.selector.meter_name;\n }\n if (view.selector.meter_version) {\n viewOption.meterVersion = view.selector.meter_version;\n }\n if (view.selector.meter_schema_url) {\n viewOption.meterSchemaUrl = view.selector.meter_schema_url;\n }\n }\n if (view.stream) {\n if (view.stream.name) {\n viewOption.name = view.stream.name;\n }\n viewOption.aggregationCardinalityLimit =\n view.stream.aggregation_cardinality_limit ?? 2_000;\n if (view.stream.description) {\n viewOption.description = view.stream.description;\n }\n if (view.stream.aggregation) {\n const aggregationType = getAggregationType(view.stream.aggregation);\n if (aggregationType) {\n viewOption.aggregation = aggregationType;\n }\n }\n if (view.stream.attribute_keys) {\n const processors: IAttributesProcessor[] = [];\n if (\n view.stream.attribute_keys.included &&\n view.stream.attribute_keys.included.length > 0\n ) {\n processors.push(\n createAllowListAttributesProcessor(\n view.stream.attribute_keys.included\n )\n );\n }\n if (\n view.stream.attribute_keys.excluded &&\n view.stream.attribute_keys.excluded.length > 0\n ) {\n processors.push(\n createDenyListAttributesProcessor(\n view.stream.attribute_keys.excluded\n )\n );\n }\n if (processors.length > 0) {\n viewOption.attributesProcessors = processors;\n }\n }\n }\n\n if (Object.keys(viewOption).length > 0) {\n metricViews.push(viewOption);\n }\n });\n if (metricViews.length > 0) {\n return metricViews;\n }\n return undefined;\n}\n\nexport function getInstanceID(config: ConfigurationModel): string | undefined {\n if (config.resource?.attributes) {\n for (let i = 0; i < config.resource.attributes.length; i++) {\n const element = config.resource.attributes[i];\n if (element.name === 'service.instance.id') {\n return element.value?.toString();\n }\n }\n }\n return undefined;\n}\n\nconst DEFAULT_RATIO = 1;\n\n/**\n * Returns the {@link Sampler} configured under `tracer_provider.sampler` in\n * the declarative configuration, or `undefined` if none is set (in which case\n * the SDK applies its default sampler).\n */\nexport function getSamplerFromConfiguration(\n config: ConfigurationModel\n): Sampler | undefined {\n const samplerConfig = config.tracer_provider?.sampler;\n if (!samplerConfig) {\n return undefined;\n }\n return buildSamplerFromConfig(samplerConfig);\n}\n\n/**\n * Builds a {@link Sampler} from a {@link SamplerConfigModel} data model.\n * This allows sampler construction from declarative configuration.\n */\nexport function buildSamplerFromConfig(\n samplerConfig: SamplerConfigModel\n): Sampler {\n if (samplerConfig.always_on !== undefined) {\n return new AlwaysOnSampler();\n }\n if (samplerConfig.always_off !== undefined) {\n return new AlwaysOffSampler();\n }\n if (samplerConfig.trace_id_ratio_based !== undefined) {\n return new TraceIdRatioBasedSampler(\n samplerConfig.trace_id_ratio_based?.ratio ?? DEFAULT_RATIO\n );\n }\n if (samplerConfig.parent_based !== undefined) {\n const pb = samplerConfig.parent_based ?? {};\n return new ParentBasedSampler({\n root: pb.root ? buildSamplerFromConfig(pb.root) : new AlwaysOnSampler(),\n remoteParentSampled: pb.remote_parent_sampled\n ? buildSamplerFromConfig(pb.remote_parent_sampled)\n : undefined,\n remoteParentNotSampled: pb.remote_parent_not_sampled\n ? buildSamplerFromConfig(pb.remote_parent_not_sampled)\n : undefined,\n localParentSampled: pb.local_parent_sampled\n ? buildSamplerFromConfig(pb.local_parent_sampled)\n : undefined,\n localParentNotSampled: pb.local_parent_not_sampled\n ? buildSamplerFromConfig(pb.local_parent_not_sampled)\n : undefined,\n });\n }\n diag.warn('Unknown sampler config, defaulting to ParentBased(AlwaysOn).');\n return new ParentBasedSampler({ root: new AlwaysOnSampler() });\n}\n\n/**\n * Warn if some props from a declarative config object have not been handled.\n *\n * This is intended to be used by `create*FromConfig()` functions. It is a low\n * tech mechanism to add awareness when a given valid config is not being\n * completely handled. This could help when properties are added to the\n * configuration schema. (A higher tech mechanism that wraps the parsed\n * configuration during `create()` and watches for untouched properties\n * might be nice.)\n */\nfunction checkConfigUse(\n name: string,\n props: object | undefined,\n handledProps: string[]\n) {\n if (!props) return;\n // Dev note: I'd use Set#difference, but that requires Node.js v22.\n const unhandledProps = Object.keys(props).filter(\n k => !handledProps.includes(k)\n );\n\n if (unhandledProps.length > 0) {\n diag.warn(\n `Config warning: some specified ${name} configuration properties were not handled by SDK setup: ${JSON.stringify(unhandledProps)}`\n );\n }\n}\n\n/**\n * Return the single non-undefined entry in the given config object, or throw.\n *\n * It is common for Declarative Configuration to have config objects with\n * a single entry, e.g.\n *\n * \"LogRecordProcessor\": {\n * \"type\": \"object\",\n * \"additionalProperties\": {\n * \"type\": [\n * \"object\",\n * \"null\"\n * ]\n * },\n * \"minProperties\": 1,\n * \"maxProperties\": 1,\n *\n * The TypeScript types cannot express the minProperties/maxProperties from the\n * JSON schema. We guard against that here.\n */\nfunction mustSingleEntry(\n configObj: Record<string, unknown>,\n configTypeName: string\n): [string, unknown] {\n const entries = Object.entries(configObj).filter(\n ([_name, properties]) => properties !== undefined\n );\n\n if (entries.length !== 1) {\n const entryNames = entries.map(e => e[0]);\n throw Error(\n `invalid ${configTypeName} in configuration: must have exactly one entry: entries=${JSON.stringify(entryNames)}`\n );\n }\n\n return entries[0];\n}\n"]}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.219.0";
1
+ export declare const VERSION = "0.220.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -6,5 +6,5 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.VERSION = void 0;
8
8
  // this is autogenerated file, see scripts/version-update.js
9
- exports.VERSION = '0.219.0';
9
+ exports.VERSION = '0.220.0';
10
10
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,4DAA4D;AAC/C,QAAA,OAAO,GAAG,SAAS,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.219.0';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,4DAA4D;AAC/C,QAAA,OAAO,GAAG,SAAS,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.220.0';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentelemetry/sdk-node",
3
- "version": "0.219.0",
3
+ "version": "0.220.0",
4
4
  "description": "OpenTelemetry SDK for Node.js",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",
@@ -43,31 +43,32 @@
43
43
  "access": "public"
44
44
  },
45
45
  "dependencies": {
46
- "@opentelemetry/api-logs": "0.219.0",
47
- "@opentelemetry/configuration": "0.219.0",
48
- "@opentelemetry/context-async-hooks": "2.8.0",
49
- "@opentelemetry/core": "2.8.0",
50
- "@opentelemetry/exporter-logs-otlp-grpc": "0.219.0",
51
- "@opentelemetry/exporter-logs-otlp-http": "0.219.0",
52
- "@opentelemetry/exporter-logs-otlp-proto": "0.219.0",
53
- "@opentelemetry/exporter-metrics-otlp-grpc": "0.219.0",
54
- "@opentelemetry/exporter-metrics-otlp-http": "0.219.0",
55
- "@opentelemetry/exporter-metrics-otlp-proto": "0.219.0",
56
- "@opentelemetry/exporter-prometheus": "0.219.0",
57
- "@opentelemetry/exporter-trace-otlp-grpc": "0.219.0",
58
- "@opentelemetry/exporter-trace-otlp-http": "0.219.0",
59
- "@opentelemetry/exporter-trace-otlp-proto": "0.219.0",
60
- "@opentelemetry/exporter-zipkin": "2.8.0",
61
- "@opentelemetry/instrumentation": "0.219.0",
62
- "@opentelemetry/otlp-exporter-base": "0.219.0",
63
- "@opentelemetry/otlp-grpc-exporter-base": "0.219.0",
64
- "@opentelemetry/propagator-b3": "2.8.0",
65
- "@opentelemetry/propagator-jaeger": "2.8.0",
66
- "@opentelemetry/resources": "2.8.0",
67
- "@opentelemetry/sdk-logs": "0.219.0",
68
- "@opentelemetry/sdk-metrics": "2.8.0",
69
- "@opentelemetry/sdk-trace-base": "2.8.0",
70
- "@opentelemetry/sdk-trace-node": "2.8.0",
46
+ "@opentelemetry/api-logs": "0.220.0",
47
+ "@opentelemetry/configuration": "0.220.0",
48
+ "@opentelemetry/context-async-hooks": "2.9.0",
49
+ "@opentelemetry/core": "2.9.0",
50
+ "@opentelemetry/exporter-logs-otlp-grpc": "0.220.0",
51
+ "@opentelemetry/exporter-logs-otlp-http": "0.220.0",
52
+ "@opentelemetry/exporter-logs-otlp-proto": "0.220.0",
53
+ "@opentelemetry/exporter-metrics-otlp-grpc": "0.220.0",
54
+ "@opentelemetry/exporter-metrics-otlp-http": "0.220.0",
55
+ "@opentelemetry/exporter-metrics-otlp-proto": "0.220.0",
56
+ "@opentelemetry/exporter-prometheus": "0.220.0",
57
+ "@opentelemetry/exporter-trace-otlp-grpc": "0.220.0",
58
+ "@opentelemetry/exporter-trace-otlp-http": "0.220.0",
59
+ "@opentelemetry/exporter-trace-otlp-proto": "0.220.0",
60
+ "@opentelemetry/exporter-zipkin": "2.9.0",
61
+ "@opentelemetry/instrumentation": "0.220.0",
62
+ "@opentelemetry/otlp-exporter-base": "0.220.0",
63
+ "@opentelemetry/otlp-grpc-exporter-base": "0.220.0",
64
+ "@opentelemetry/propagator-b3": "2.9.0",
65
+ "@opentelemetry/propagator-jaeger": "2.9.0",
66
+ "@opentelemetry/resources": "2.9.0",
67
+ "@opentelemetry/sdk-logs": "0.220.0",
68
+ "@opentelemetry/sdk-metrics": "2.9.0",
69
+ "@opentelemetry/sdk-trace": "2.9.0",
70
+ "@opentelemetry/sdk-trace-base": "2.9.0",
71
+ "@opentelemetry/sdk-trace-node": "2.9.0",
71
72
  "@opentelemetry/semantic-conventions": "^1.29.0"
72
73
  },
73
74
  "peerDependencies": {
@@ -78,7 +79,7 @@
78
79
  "@types/mocha": "10.0.10",
79
80
  "@types/node": "18.19.130",
80
81
  "@types/sinon": "17.0.4",
81
- "mocha": "11.7.5",
82
+ "mocha": "11.7.6",
82
83
  "nyc": "17.1.0",
83
84
  "sinon": "18.0.1",
84
85
  "ts-loader": "9.5.7",
@@ -86,5 +87,5 @@
86
87
  },
87
88
  "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-sdk-node",
88
89
  "sideEffects": false,
89
- "gitHead": "13a035bc695996cf4aec885fef7b9866f48bc555"
90
+ "gitHead": "40d67b7690a61bd9af0a4e5b5b9f4a14b11fc50e"
90
91
  }