@opentelemetry/configuration 0.300.0-development.0 → 0.300.0-rc.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.
@@ -90,12 +90,12 @@ function setResources(config) {
90
90
  }
91
91
  function setAttributeLimits(config) {
92
92
  const attributeValueLengthLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT");
93
- if (attributeValueLengthLimit && attributeValueLengthLimit > 0) {
93
+ if (attributeValueLengthLimit !== void 0 && attributeValueLengthLimit >= 0) {
94
94
  if (config.attribute_limits == null) config.attribute_limits = { attribute_count_limit: 128 };
95
95
  config.attribute_limits.attribute_value_length_limit = attributeValueLengthLimit;
96
96
  }
97
97
  const attributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT");
98
- if (attributeCountLimit) {
98
+ if (attributeCountLimit !== void 0) {
99
99
  if (config.attribute_limits == null) config.attribute_limits = { attribute_count_limit: attributeCountLimit };
100
100
  else config.attribute_limits.attribute_count_limit = attributeCountLimit;
101
101
  }
@@ -146,17 +146,17 @@ function setTracerProvider(config, env) {
146
146
  config.tracer_provider = require_utils.initializeDefaultTracerProviderConfiguration();
147
147
  setSampler(config, env);
148
148
  const attributeValueLengthLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT");
149
- if (attributeValueLengthLimit) config.tracer_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
149
+ if (attributeValueLengthLimit !== void 0) config.tracer_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
150
150
  const attributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT");
151
- if (attributeCountLimit) config.tracer_provider.limits.attribute_count_limit = attributeCountLimit;
151
+ if (attributeCountLimit !== void 0) config.tracer_provider.limits.attribute_count_limit = attributeCountLimit;
152
152
  const eventCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT");
153
- if (eventCountLimit) config.tracer_provider.limits.event_count_limit = eventCountLimit;
153
+ if (eventCountLimit !== void 0) config.tracer_provider.limits.event_count_limit = eventCountLimit;
154
154
  const linkCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT");
155
- if (linkCountLimit) config.tracer_provider.limits.link_count_limit = linkCountLimit;
155
+ if (linkCountLimit !== void 0) config.tracer_provider.limits.link_count_limit = linkCountLimit;
156
156
  const eventAttributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT");
157
- if (eventAttributeCountLimit) config.tracer_provider.limits.event_attribute_count_limit = eventAttributeCountLimit;
157
+ if (eventAttributeCountLimit !== void 0) config.tracer_provider.limits.event_attribute_count_limit = eventAttributeCountLimit;
158
158
  const linkAttributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_LINK_ATTRIBUTE_COUNT_LIMIT");
159
- if (linkAttributeCountLimit) config.tracer_provider.limits.link_attribute_count_limit = linkAttributeCountLimit;
159
+ if (linkAttributeCountLimit !== void 0) config.tracer_provider.limits.link_attribute_count_limit = linkAttributeCountLimit;
160
160
  const batch = {
161
161
  exporter: {},
162
162
  schedule_delay: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY") ?? 5e3,
@@ -289,9 +289,9 @@ function setLoggerProvider(config) {
289
289
  config.logger_provider = require_utils.initializeDefaultLoggerProviderConfiguration();
290
290
  const attributeValueLengthLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT");
291
291
  const attributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT");
292
- if (attributeValueLengthLimit || attributeCountLimit) {
293
- if (attributeValueLengthLimit) config.logger_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
294
- if (attributeCountLimit) config.logger_provider.limits.attribute_count_limit = attributeCountLimit;
292
+ if (attributeValueLengthLimit !== void 0 || attributeCountLimit !== void 0) {
293
+ if (attributeValueLengthLimit !== void 0) config.logger_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
294
+ if (attributeCountLimit !== void 0) config.logger_provider.limits.attribute_count_limit = attributeCountLimit;
295
295
  }
296
296
  const batch = {
297
297
  exporter: {},
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentConfigFactory.cjs","names":["initializeDefaultConfiguration","readAllEnvVars","getStringFromEnv","getStringListFromEnv","getNumberFromEnv","initializeDefaultTracerProviderConfiguration","getGrpcTlsConfig","getHttpTlsConfig","initializeDefaultMeterProviderConfiguration","initializeDefaultLoggerProviderConfiguration"],"sources":["../src/EnvironmentConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n getStringFromEnv,\n getStringListFromEnv,\n getNumberFromEnv,\n} from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport type {\n ExemplarFilter,\n BatchLogRecordProcessor,\n BatchSpanProcessor,\n ConfigurationModel,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n LogRecordExporter,\n LogRecordProcessor,\n PeriodicMetricReader,\n PushMetricExporter,\n SeverityNumber,\n SpanExporter,\n SpanProcessor,\n} from './generated/types';\nimport { diag } from '@opentelemetry/api';\nimport {\n getGrpcTlsConfig,\n getHttpTlsConfig,\n initializeDefaultConfiguration,\n initializeDefaultTracerProviderConfiguration,\n initializeDefaultMeterProviderConfiguration,\n initializeDefaultLoggerProviderConfiguration,\n} from './utils';\nimport type { EnvValues } from './EnvReader';\nimport { readAllEnvVars } from './EnvReader';\nimport { SamplerType } from './EnvDefinition';\n\ntype ExperimentalResourceDetector = NonNullable<\n NonNullable<\n NonNullable<ConfigurationModel['resource']>['detection/development']\n >['detectors']\n>[number];\n\n/**\n * EnvironmentConfigProvider provides a configuration based on environment variables.\n */\nexport class EnvironmentConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n const envValues = readAllEnvVars();\n this._config.disabled = envValues.OTEL_SDK_DISABLED;\n\n const logLevelString = getStringFromEnv('OTEL_LOG_LEVEL');\n if (logLevelString) {\n this._config.log_level =\n severityNumberConfigFromLogLevelString(logLevelString);\n }\n\n setResources(this._config);\n setAttributeLimits(this._config);\n setPropagators(this._config);\n setTracerProvider(this._config, envValues);\n setMeterProvider(this._config);\n setLoggerProvider(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nconst SEV_NUM_CONFIG_FROM_LOG_LEVEL: { [key: string]: SeverityNumber } = {\n // Declarative config `log_level` has no \"NONE\". Using 'fatal' is\n // equivalent, because the OTel JS diag API does not have a \"fatal\" level.\n NONE: 'fatal',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n VERBOSE: 'trace2',\n // Declarative config `log_level` has no \"ALL\". Using 'trace' is\n // equivalent, because that is the lowest SeverityNumber level.\n ALL: 'trace',\n};\n\n/**\n * Return a declarative config SeverityNumberConfig value (as used for\n * `log_level`) for the given `OTEL_LOG_LEVEL` string value.\n *\n * See notes at \"opentelemetr-sdk-node/src/diag.ts\".\n */\nfunction severityNumberConfigFromLogLevelString(\n str?: string\n): SeverityNumber | undefined {\n if (!str) {\n return undefined;\n }\n const sevNumConfig = SEV_NUM_CONFIG_FROM_LOG_LEVEL[str.toUpperCase()];\n if (!sevNumConfig) {\n diag.warn(\n `Unknown log level \"${str}\", expected one of ${Object.keys(SEV_NUM_CONFIG_FROM_LOG_LEVEL)}, using default info`\n );\n return 'info';\n }\n return sevNumConfig;\n}\n\nexport function setResources(config: ConfigurationModel): void {\n if (config.resource == null) {\n config.resource = {};\n }\n\n const resourceAttrList = getStringFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const list = resourceAttrList\n ? resourceAttrList\n .split(',')\n .map(s => s.trim())\n .filter(s => s)\n : [];\n const serviceName = getStringFromEnv('OTEL_SERVICE_NAME');\n\n if (serviceName) {\n config.resource.attributes = [\n {\n name: 'service.name',\n value: serviceName,\n type: 'string',\n },\n ];\n }\n if (list.length > 0) {\n config.resource.attributes_list = resourceAttrList;\n if (config.resource.attributes == null) {\n config.resource.attributes = [];\n }\n\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (\n element[0] !== 'service.name' ||\n (element[0] === 'service.name' && serviceName === undefined)\n ) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n\n const nodeDetectors = getStringListFromEnv('OTEL_NODE_RESOURCE_DETECTORS');\n if (\n nodeDetectors &&\n nodeDetectors.length > 0 &&\n !nodeDetectors.includes('none')\n ) {\n const all = nodeDetectors.includes('all');\n const detectors: ExperimentalResourceDetector[] = [];\n if (all || nodeDetectors.includes('container'))\n detectors.push({ container: {} });\n if (all || nodeDetectors.includes('host')) detectors.push({ host: {} });\n if (all || nodeDetectors.includes('os')) detectors.push({ os: {} });\n if (all || nodeDetectors.includes('process'))\n detectors.push({ process: {} });\n if (all || nodeDetectors.includes('serviceinstance'))\n detectors.push({ service: {} });\n if (all || nodeDetectors.includes('env')) detectors.push({ env: {} });\n if (detectors.length > 0) {\n if (config.resource['detection/development'] == null) {\n config.resource['detection/development'] = {};\n }\n config.resource['detection/development'].detectors = detectors;\n }\n }\n}\n\nexport function setAttributeLimits(config: ConfigurationModel): void {\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit && attributeValueLengthLimit > 0) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: 128 };\n }\n config.attribute_limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT');\n if (attributeCountLimit) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: attributeCountLimit };\n } else {\n config.attribute_limits.attribute_count_limit = attributeCountLimit;\n }\n }\n}\n\nexport function setPropagators(config: ConfigurationModel): void {\n if (config.propagator == null) {\n config.propagator = {};\n }\n const compositeList = getStringFromEnv('OTEL_PROPAGATORS');\n if (compositeList) {\n config.propagator.composite_list = compositeList;\n const names = compositeList\n .split(',')\n .map(s => s.trim())\n .filter(s => s);\n if (names.length > 0) {\n config.propagator.composite = [];\n // Store each propagator name as a type-discriminator key. The config\n // model doesn't validate names here — known vs third-party propagators\n // are resolved when the SDK instantiates from the model.\n for (const name of names) {\n config.propagator.composite.push({ [name]: {} });\n }\n }\n }\n}\n\nexport function setSampler(config: ConfigurationModel, env: EnvValues): void {\n const sampler = env.OTEL_TRACES_SAMPLER;\n const arg = env.OTEL_TRACES_SAMPLER_ARG;\n\n if (!sampler || !config.tracer_provider) {\n return;\n }\n\n const ratio = arg ? parseFloat(arg) : 1.0;\n\n switch (sampler) {\n case SamplerType.AlwaysOn:\n config.tracer_provider.sampler = { always_on: {} };\n break;\n\n case SamplerType.AlwaysOff:\n config.tracer_provider.sampler = { always_off: {} };\n break;\n\n case SamplerType.TraceIdRatio:\n config.tracer_provider.sampler = {\n trace_id_ratio_based: { ratio },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOn:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_on: {} } },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOff:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_off: {} } },\n };\n break;\n\n case SamplerType.ParentBasedTraceIdRatio:\n config.tracer_provider.sampler = {\n parent_based: { root: { trace_id_ratio_based: { ratio } } },\n };\n break;\n\n default:\n // readEnvVar already warns for invalid values via allowedValues\n break;\n }\n}\n\nexport function setTracerProvider(\n config: ConfigurationModel,\n env: EnvValues\n): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_TRACES_EXPORTER contains \"none\". Tracer provider will not be initialized.'\n );\n return;\n }\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n setSampler(config, env);\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit) {\n config.tracer_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeCountLimit) {\n config.tracer_provider.limits!.attribute_count_limit = attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT');\n if (eventCountLimit) {\n config.tracer_provider.limits!.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT');\n if (linkCountLimit) {\n config.tracer_provider.limits!.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromEnv(\n 'OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT'\n );\n if (eventAttributeCountLimit) {\n config.tracer_provider.limits!.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromEnv(\n 'OTEL_LINK_ATTRIBUTE_COUNT_LIMIT'\n );\n if (linkAttributeCountLimit) {\n config.tracer_provider.limits!.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n\n const batch: BatchSpanProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000,\n export_timeout: getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchSpanProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: SpanProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.tracer_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<SpanExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<SpanExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/traces`\n : 'http://localhost:4318/v1/traces'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n\n const processor: SpanProcessor = { batch: batchInfo };\n config.tracer_provider.processors!.push(processor);\n }\n }\n}\n\nexport function setMeterProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_METRICS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_METRICS_EXPORTER contains \"none\". Meter provider will not be initialized.'\n );\n return;\n }\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n\n const interval = getNumberFromEnv('OTEL_METRIC_EXPORT_INTERVAL') ?? 60000;\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n if (exporterType === 'prometheus') {\n const pullReader = {\n exporter: {\n 'prometheus/development': {\n host:\n getStringFromEnv('OTEL_EXPORTER_PROMETHEUS_HOST') ?? 'localhost',\n port: getNumberFromEnv('OTEL_EXPORTER_PROMETHEUS_PORT') ?? 9464,\n scope_info_enabled: true,\n 'target_info_enabled/development': true,\n },\n },\n };\n config.meter_provider.readers!.push({ pull: pullReader });\n continue;\n }\n\n const readerPeriodicInfo: PeriodicMetricReader = {\n interval,\n timeout: getNumberFromEnv('OTEL_METRIC_EXPORT_TIMEOUT') ?? 30000,\n exporter: {},\n };\n\n if (exporterType === 'console') {\n readerPeriodicInfo.exporter = { console: {} };\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeoutExporter =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_METRICS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n const rawTemporality =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE') ??\n 'cumulative';\n const validTemporalities = ['cumulative', 'delta', 'low_memory'];\n const temporalityPreference = validTemporalities.includes(rawTemporality)\n ? rawTemporality\n : 'cumulative';\n const rawHistogramAgg =\n getStringFromEnv(\n 'OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION'\n ) ?? 'explicit_bucket_histogram';\n const validHistogramAggs = [\n 'explicit_bucket_histogram',\n 'base2_exponential_bucket_histogram',\n ];\n const defaultHistogramAggregation = validHistogramAggs.includes(\n rawHistogramAgg\n )\n ? rawHistogramAgg\n : 'explicit_bucket_histogram';\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<PushMetricExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n readerPeriodicInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<PushMetricExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/metrics`\n : 'http://localhost:4318/v1/metrics'),\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n readerPeriodicInfo.exporter = { otlp_http: otlpHttp };\n }\n }\n config.meter_provider.readers!.push({ periodic: readerPeriodicInfo });\n }\n\n const rawExemplarFilter =\n getStringFromEnv('OTEL_METRICS_EXEMPLAR_FILTER') ?? 'trace_based';\n config.meter_provider.exemplar_filter =\n rawExemplarFilter === 'default'\n ? 'trace_based'\n : (rawExemplarFilter as ExemplarFilter);\n}\n\nexport function setLoggerProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_LOGS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_LOGS_EXPORTER contains \"none\". Logger provider will not be initialized.'\n );\n return;\n }\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeValueLengthLimit || attributeCountLimit) {\n if (attributeValueLengthLimit) {\n config.logger_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n if (attributeCountLimit) {\n config.logger_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n }\n\n const batch: BatchLogRecordProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BLRP_SCHEDULE_DELAY') ?? 1000,\n export_timeout: getNumberFromEnv('OTEL_BLRP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BLRP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchLogRecordProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: LogRecordProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.logger_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_LOGS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<LogRecordExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<LogRecordExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/logs`\n : 'http://localhost:4318/v1/logs'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n const processor: LogRecordProcessor = { batch: batchInfo };\n config.logger_provider.processors!.push(processor);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EnvironmentConfigFactory.cjs","names":["initializeDefaultConfiguration","readAllEnvVars","getStringFromEnv","getStringListFromEnv","getNumberFromEnv","initializeDefaultTracerProviderConfiguration","getGrpcTlsConfig","getHttpTlsConfig","initializeDefaultMeterProviderConfiguration","initializeDefaultLoggerProviderConfiguration"],"sources":["../src/EnvironmentConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n getStringFromEnv,\n getStringListFromEnv,\n getNumberFromEnv,\n} from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport type {\n ExemplarFilter,\n BatchLogRecordProcessor,\n BatchSpanProcessor,\n ConfigurationModel,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n LogRecordExporter,\n LogRecordProcessor,\n PeriodicMetricReader,\n PushMetricExporter,\n SeverityNumber,\n SpanExporter,\n SpanProcessor,\n} from './generated/types';\nimport { diag } from '@opentelemetry/api';\nimport {\n getGrpcTlsConfig,\n getHttpTlsConfig,\n initializeDefaultConfiguration,\n initializeDefaultTracerProviderConfiguration,\n initializeDefaultMeterProviderConfiguration,\n initializeDefaultLoggerProviderConfiguration,\n} from './utils';\nimport type { EnvValues } from './EnvReader';\nimport { readAllEnvVars } from './EnvReader';\nimport { SamplerType } from './EnvDefinition';\n\ntype ExperimentalResourceDetector = NonNullable<\n NonNullable<\n NonNullable<ConfigurationModel['resource']>['detection/development']\n >['detectors']\n>[number];\n\n/**\n * EnvironmentConfigProvider provides a configuration based on environment variables.\n */\nexport class EnvironmentConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n const envValues = readAllEnvVars();\n this._config.disabled = envValues.OTEL_SDK_DISABLED;\n\n const logLevelString = getStringFromEnv('OTEL_LOG_LEVEL');\n if (logLevelString) {\n this._config.log_level =\n severityNumberConfigFromLogLevelString(logLevelString);\n }\n\n setResources(this._config);\n setAttributeLimits(this._config);\n setPropagators(this._config);\n setTracerProvider(this._config, envValues);\n setMeterProvider(this._config);\n setLoggerProvider(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nconst SEV_NUM_CONFIG_FROM_LOG_LEVEL: { [key: string]: SeverityNumber } = {\n // Declarative config `log_level` has no \"NONE\". Using 'fatal' is\n // equivalent, because the OTel JS diag API does not have a \"fatal\" level.\n NONE: 'fatal',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n VERBOSE: 'trace2',\n // Declarative config `log_level` has no \"ALL\". Using 'trace' is\n // equivalent, because that is the lowest SeverityNumber level.\n ALL: 'trace',\n};\n\n/**\n * Return a declarative config SeverityNumberConfig value (as used for\n * `log_level`) for the given `OTEL_LOG_LEVEL` string value.\n *\n * See notes at \"opentelemetr-sdk-node/src/diag.ts\".\n */\nfunction severityNumberConfigFromLogLevelString(\n str?: string\n): SeverityNumber | undefined {\n if (!str) {\n return undefined;\n }\n const sevNumConfig = SEV_NUM_CONFIG_FROM_LOG_LEVEL[str.toUpperCase()];\n if (!sevNumConfig) {\n diag.warn(\n `Unknown log level \"${str}\", expected one of ${Object.keys(SEV_NUM_CONFIG_FROM_LOG_LEVEL)}, using default info`\n );\n return 'info';\n }\n return sevNumConfig;\n}\n\nexport function setResources(config: ConfigurationModel): void {\n if (config.resource == null) {\n config.resource = {};\n }\n\n const resourceAttrList = getStringFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const list = resourceAttrList\n ? resourceAttrList\n .split(',')\n .map(s => s.trim())\n .filter(s => s)\n : [];\n const serviceName = getStringFromEnv('OTEL_SERVICE_NAME');\n\n if (serviceName) {\n config.resource.attributes = [\n {\n name: 'service.name',\n value: serviceName,\n type: 'string',\n },\n ];\n }\n if (list.length > 0) {\n config.resource.attributes_list = resourceAttrList;\n if (config.resource.attributes == null) {\n config.resource.attributes = [];\n }\n\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (\n element[0] !== 'service.name' ||\n (element[0] === 'service.name' && serviceName === undefined)\n ) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n\n const nodeDetectors = getStringListFromEnv('OTEL_NODE_RESOURCE_DETECTORS');\n if (\n nodeDetectors &&\n nodeDetectors.length > 0 &&\n !nodeDetectors.includes('none')\n ) {\n const all = nodeDetectors.includes('all');\n const detectors: ExperimentalResourceDetector[] = [];\n if (all || nodeDetectors.includes('container'))\n detectors.push({ container: {} });\n if (all || nodeDetectors.includes('host')) detectors.push({ host: {} });\n if (all || nodeDetectors.includes('os')) detectors.push({ os: {} });\n if (all || nodeDetectors.includes('process'))\n detectors.push({ process: {} });\n if (all || nodeDetectors.includes('serviceinstance'))\n detectors.push({ service: {} });\n if (all || nodeDetectors.includes('env')) detectors.push({ env: {} });\n if (detectors.length > 0) {\n if (config.resource['detection/development'] == null) {\n config.resource['detection/development'] = {};\n }\n config.resource['detection/development'].detectors = detectors;\n }\n }\n}\n\nexport function setAttributeLimits(config: ConfigurationModel): void {\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (\n attributeValueLengthLimit !== undefined &&\n attributeValueLengthLimit >= 0\n ) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: 128 };\n }\n config.attribute_limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT');\n if (attributeCountLimit !== undefined) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: attributeCountLimit };\n } else {\n config.attribute_limits.attribute_count_limit = attributeCountLimit;\n }\n }\n}\n\nexport function setPropagators(config: ConfigurationModel): void {\n if (config.propagator == null) {\n config.propagator = {};\n }\n const compositeList = getStringFromEnv('OTEL_PROPAGATORS');\n if (compositeList) {\n config.propagator.composite_list = compositeList;\n const names = compositeList\n .split(',')\n .map(s => s.trim())\n .filter(s => s);\n if (names.length > 0) {\n config.propagator.composite = [];\n // Store each propagator name as a type-discriminator key. The config\n // model doesn't validate names here — known vs third-party propagators\n // are resolved when the SDK instantiates from the model.\n for (const name of names) {\n config.propagator.composite.push({ [name]: {} });\n }\n }\n }\n}\n\nexport function setSampler(config: ConfigurationModel, env: EnvValues): void {\n const sampler = env.OTEL_TRACES_SAMPLER;\n const arg = env.OTEL_TRACES_SAMPLER_ARG;\n\n if (!sampler || !config.tracer_provider) {\n return;\n }\n\n const ratio = arg ? parseFloat(arg) : 1.0;\n\n switch (sampler) {\n case SamplerType.AlwaysOn:\n config.tracer_provider.sampler = { always_on: {} };\n break;\n\n case SamplerType.AlwaysOff:\n config.tracer_provider.sampler = { always_off: {} };\n break;\n\n case SamplerType.TraceIdRatio:\n config.tracer_provider.sampler = {\n trace_id_ratio_based: { ratio },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOn:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_on: {} } },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOff:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_off: {} } },\n };\n break;\n\n case SamplerType.ParentBasedTraceIdRatio:\n config.tracer_provider.sampler = {\n parent_based: { root: { trace_id_ratio_based: { ratio } } },\n };\n break;\n\n default:\n // readEnvVar already warns for invalid values via allowedValues\n break;\n }\n}\n\nexport function setTracerProvider(\n config: ConfigurationModel,\n env: EnvValues\n): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_TRACES_EXPORTER contains \"none\". Tracer provider will not be initialized.'\n );\n return;\n }\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n setSampler(config, env);\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit !== undefined) {\n config.tracer_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeCountLimit !== undefined) {\n config.tracer_provider.limits!.attribute_count_limit = attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT');\n if (eventCountLimit !== undefined) {\n config.tracer_provider.limits!.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT');\n if (linkCountLimit !== undefined) {\n config.tracer_provider.limits!.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromEnv(\n 'OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT'\n );\n if (eventAttributeCountLimit !== undefined) {\n config.tracer_provider.limits!.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromEnv(\n 'OTEL_LINK_ATTRIBUTE_COUNT_LIMIT'\n );\n if (linkAttributeCountLimit !== undefined) {\n config.tracer_provider.limits!.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n\n const batch: BatchSpanProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000,\n export_timeout: getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchSpanProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: SpanProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.tracer_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<SpanExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<SpanExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/traces`\n : 'http://localhost:4318/v1/traces'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n\n const processor: SpanProcessor = { batch: batchInfo };\n config.tracer_provider.processors!.push(processor);\n }\n }\n}\n\nexport function setMeterProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_METRICS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_METRICS_EXPORTER contains \"none\". Meter provider will not be initialized.'\n );\n return;\n }\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n\n const interval = getNumberFromEnv('OTEL_METRIC_EXPORT_INTERVAL') ?? 60000;\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n if (exporterType === 'prometheus') {\n const pullReader = {\n exporter: {\n 'prometheus/development': {\n host:\n getStringFromEnv('OTEL_EXPORTER_PROMETHEUS_HOST') ?? 'localhost',\n port: getNumberFromEnv('OTEL_EXPORTER_PROMETHEUS_PORT') ?? 9464,\n scope_info_enabled: true,\n 'target_info_enabled/development': true,\n },\n },\n };\n config.meter_provider.readers!.push({ pull: pullReader });\n continue;\n }\n\n const readerPeriodicInfo: PeriodicMetricReader = {\n interval,\n timeout: getNumberFromEnv('OTEL_METRIC_EXPORT_TIMEOUT') ?? 30000,\n exporter: {},\n };\n\n if (exporterType === 'console') {\n readerPeriodicInfo.exporter = { console: {} };\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeoutExporter =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_METRICS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n const rawTemporality =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE') ??\n 'cumulative';\n const validTemporalities = ['cumulative', 'delta', 'low_memory'];\n const temporalityPreference = validTemporalities.includes(rawTemporality)\n ? rawTemporality\n : 'cumulative';\n const rawHistogramAgg =\n getStringFromEnv(\n 'OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION'\n ) ?? 'explicit_bucket_histogram';\n const validHistogramAggs = [\n 'explicit_bucket_histogram',\n 'base2_exponential_bucket_histogram',\n ];\n const defaultHistogramAggregation = validHistogramAggs.includes(\n rawHistogramAgg\n )\n ? rawHistogramAgg\n : 'explicit_bucket_histogram';\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<PushMetricExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n readerPeriodicInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<PushMetricExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/metrics`\n : 'http://localhost:4318/v1/metrics'),\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n readerPeriodicInfo.exporter = { otlp_http: otlpHttp };\n }\n }\n config.meter_provider.readers!.push({ periodic: readerPeriodicInfo });\n }\n\n const rawExemplarFilter =\n getStringFromEnv('OTEL_METRICS_EXEMPLAR_FILTER') ?? 'trace_based';\n config.meter_provider.exemplar_filter =\n rawExemplarFilter === 'default'\n ? 'trace_based'\n : (rawExemplarFilter as ExemplarFilter);\n}\n\nexport function setLoggerProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_LOGS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_LOGS_EXPORTER contains \"none\". Logger provider will not be initialized.'\n );\n return;\n }\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT'\n );\n if (\n attributeValueLengthLimit !== undefined ||\n attributeCountLimit !== undefined\n ) {\n if (attributeValueLengthLimit !== undefined) {\n config.logger_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n if (attributeCountLimit !== undefined) {\n config.logger_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n }\n\n const batch: BatchLogRecordProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BLRP_SCHEDULE_DELAY') ?? 1000,\n export_timeout: getNumberFromEnv('OTEL_BLRP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BLRP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchLogRecordProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: LogRecordProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.logger_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_LOGS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<LogRecordExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<LogRecordExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/logs`\n : 'http://localhost:4318/v1/logs'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n const processor: LogRecordProcessor = { batch: batchInfo };\n config.logger_provider.processors!.push(processor);\n }\n }\n}\n"],"mappings":"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"}
@@ -90,12 +90,12 @@ function setResources(config) {
90
90
  }
91
91
  function setAttributeLimits(config) {
92
92
  const attributeValueLengthLimit = getNumberFromEnv("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT");
93
- if (attributeValueLengthLimit && attributeValueLengthLimit > 0) {
93
+ if (attributeValueLengthLimit !== void 0 && attributeValueLengthLimit >= 0) {
94
94
  if (config.attribute_limits == null) config.attribute_limits = { attribute_count_limit: 128 };
95
95
  config.attribute_limits.attribute_value_length_limit = attributeValueLengthLimit;
96
96
  }
97
97
  const attributeCountLimit = getNumberFromEnv("OTEL_ATTRIBUTE_COUNT_LIMIT");
98
- if (attributeCountLimit) {
98
+ if (attributeCountLimit !== void 0) {
99
99
  if (config.attribute_limits == null) config.attribute_limits = { attribute_count_limit: attributeCountLimit };
100
100
  else config.attribute_limits.attribute_count_limit = attributeCountLimit;
101
101
  }
@@ -146,17 +146,17 @@ function setTracerProvider(config, env) {
146
146
  config.tracer_provider = initializeDefaultTracerProviderConfiguration();
147
147
  setSampler(config, env);
148
148
  const attributeValueLengthLimit = getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT");
149
- if (attributeValueLengthLimit) config.tracer_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
149
+ if (attributeValueLengthLimit !== void 0) config.tracer_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
150
150
  const attributeCountLimit = getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT");
151
- if (attributeCountLimit) config.tracer_provider.limits.attribute_count_limit = attributeCountLimit;
151
+ if (attributeCountLimit !== void 0) config.tracer_provider.limits.attribute_count_limit = attributeCountLimit;
152
152
  const eventCountLimit = getNumberFromEnv("OTEL_SPAN_EVENT_COUNT_LIMIT");
153
- if (eventCountLimit) config.tracer_provider.limits.event_count_limit = eventCountLimit;
153
+ if (eventCountLimit !== void 0) config.tracer_provider.limits.event_count_limit = eventCountLimit;
154
154
  const linkCountLimit = getNumberFromEnv("OTEL_SPAN_LINK_COUNT_LIMIT");
155
- if (linkCountLimit) config.tracer_provider.limits.link_count_limit = linkCountLimit;
155
+ if (linkCountLimit !== void 0) config.tracer_provider.limits.link_count_limit = linkCountLimit;
156
156
  const eventAttributeCountLimit = getNumberFromEnv("OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT");
157
- if (eventAttributeCountLimit) config.tracer_provider.limits.event_attribute_count_limit = eventAttributeCountLimit;
157
+ if (eventAttributeCountLimit !== void 0) config.tracer_provider.limits.event_attribute_count_limit = eventAttributeCountLimit;
158
158
  const linkAttributeCountLimit = getNumberFromEnv("OTEL_LINK_ATTRIBUTE_COUNT_LIMIT");
159
- if (linkAttributeCountLimit) config.tracer_provider.limits.link_attribute_count_limit = linkAttributeCountLimit;
159
+ if (linkAttributeCountLimit !== void 0) config.tracer_provider.limits.link_attribute_count_limit = linkAttributeCountLimit;
160
160
  const batch = {
161
161
  exporter: {},
162
162
  schedule_delay: getNumberFromEnv("OTEL_BSP_SCHEDULE_DELAY") ?? 5e3,
@@ -289,9 +289,9 @@ function setLoggerProvider(config) {
289
289
  config.logger_provider = initializeDefaultLoggerProviderConfiguration();
290
290
  const attributeValueLengthLimit = getNumberFromEnv("OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT");
291
291
  const attributeCountLimit = getNumberFromEnv("OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT");
292
- if (attributeValueLengthLimit || attributeCountLimit) {
293
- if (attributeValueLengthLimit) config.logger_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
294
- if (attributeCountLimit) config.logger_provider.limits.attribute_count_limit = attributeCountLimit;
292
+ if (attributeValueLengthLimit !== void 0 || attributeCountLimit !== void 0) {
293
+ if (attributeValueLengthLimit !== void 0) config.logger_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
294
+ if (attributeCountLimit !== void 0) config.logger_provider.limits.attribute_count_limit = attributeCountLimit;
295
295
  }
296
296
  const batch = {
297
297
  exporter: {},
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentConfigFactory.mjs","names":[],"sources":["../src/EnvironmentConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n getStringFromEnv,\n getStringListFromEnv,\n getNumberFromEnv,\n} from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport type {\n ExemplarFilter,\n BatchLogRecordProcessor,\n BatchSpanProcessor,\n ConfigurationModel,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n LogRecordExporter,\n LogRecordProcessor,\n PeriodicMetricReader,\n PushMetricExporter,\n SeverityNumber,\n SpanExporter,\n SpanProcessor,\n} from './generated/types';\nimport { diag } from '@opentelemetry/api';\nimport {\n getGrpcTlsConfig,\n getHttpTlsConfig,\n initializeDefaultConfiguration,\n initializeDefaultTracerProviderConfiguration,\n initializeDefaultMeterProviderConfiguration,\n initializeDefaultLoggerProviderConfiguration,\n} from './utils';\nimport type { EnvValues } from './EnvReader';\nimport { readAllEnvVars } from './EnvReader';\nimport { SamplerType } from './EnvDefinition';\n\ntype ExperimentalResourceDetector = NonNullable<\n NonNullable<\n NonNullable<ConfigurationModel['resource']>['detection/development']\n >['detectors']\n>[number];\n\n/**\n * EnvironmentConfigProvider provides a configuration based on environment variables.\n */\nexport class EnvironmentConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n const envValues = readAllEnvVars();\n this._config.disabled = envValues.OTEL_SDK_DISABLED;\n\n const logLevelString = getStringFromEnv('OTEL_LOG_LEVEL');\n if (logLevelString) {\n this._config.log_level =\n severityNumberConfigFromLogLevelString(logLevelString);\n }\n\n setResources(this._config);\n setAttributeLimits(this._config);\n setPropagators(this._config);\n setTracerProvider(this._config, envValues);\n setMeterProvider(this._config);\n setLoggerProvider(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nconst SEV_NUM_CONFIG_FROM_LOG_LEVEL: { [key: string]: SeverityNumber } = {\n // Declarative config `log_level` has no \"NONE\". Using 'fatal' is\n // equivalent, because the OTel JS diag API does not have a \"fatal\" level.\n NONE: 'fatal',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n VERBOSE: 'trace2',\n // Declarative config `log_level` has no \"ALL\". Using 'trace' is\n // equivalent, because that is the lowest SeverityNumber level.\n ALL: 'trace',\n};\n\n/**\n * Return a declarative config SeverityNumberConfig value (as used for\n * `log_level`) for the given `OTEL_LOG_LEVEL` string value.\n *\n * See notes at \"opentelemetr-sdk-node/src/diag.ts\".\n */\nfunction severityNumberConfigFromLogLevelString(\n str?: string\n): SeverityNumber | undefined {\n if (!str) {\n return undefined;\n }\n const sevNumConfig = SEV_NUM_CONFIG_FROM_LOG_LEVEL[str.toUpperCase()];\n if (!sevNumConfig) {\n diag.warn(\n `Unknown log level \"${str}\", expected one of ${Object.keys(SEV_NUM_CONFIG_FROM_LOG_LEVEL)}, using default info`\n );\n return 'info';\n }\n return sevNumConfig;\n}\n\nexport function setResources(config: ConfigurationModel): void {\n if (config.resource == null) {\n config.resource = {};\n }\n\n const resourceAttrList = getStringFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const list = resourceAttrList\n ? resourceAttrList\n .split(',')\n .map(s => s.trim())\n .filter(s => s)\n : [];\n const serviceName = getStringFromEnv('OTEL_SERVICE_NAME');\n\n if (serviceName) {\n config.resource.attributes = [\n {\n name: 'service.name',\n value: serviceName,\n type: 'string',\n },\n ];\n }\n if (list.length > 0) {\n config.resource.attributes_list = resourceAttrList;\n if (config.resource.attributes == null) {\n config.resource.attributes = [];\n }\n\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (\n element[0] !== 'service.name' ||\n (element[0] === 'service.name' && serviceName === undefined)\n ) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n\n const nodeDetectors = getStringListFromEnv('OTEL_NODE_RESOURCE_DETECTORS');\n if (\n nodeDetectors &&\n nodeDetectors.length > 0 &&\n !nodeDetectors.includes('none')\n ) {\n const all = nodeDetectors.includes('all');\n const detectors: ExperimentalResourceDetector[] = [];\n if (all || nodeDetectors.includes('container'))\n detectors.push({ container: {} });\n if (all || nodeDetectors.includes('host')) detectors.push({ host: {} });\n if (all || nodeDetectors.includes('os')) detectors.push({ os: {} });\n if (all || nodeDetectors.includes('process'))\n detectors.push({ process: {} });\n if (all || nodeDetectors.includes('serviceinstance'))\n detectors.push({ service: {} });\n if (all || nodeDetectors.includes('env')) detectors.push({ env: {} });\n if (detectors.length > 0) {\n if (config.resource['detection/development'] == null) {\n config.resource['detection/development'] = {};\n }\n config.resource['detection/development'].detectors = detectors;\n }\n }\n}\n\nexport function setAttributeLimits(config: ConfigurationModel): void {\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit && attributeValueLengthLimit > 0) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: 128 };\n }\n config.attribute_limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT');\n if (attributeCountLimit) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: attributeCountLimit };\n } else {\n config.attribute_limits.attribute_count_limit = attributeCountLimit;\n }\n }\n}\n\nexport function setPropagators(config: ConfigurationModel): void {\n if (config.propagator == null) {\n config.propagator = {};\n }\n const compositeList = getStringFromEnv('OTEL_PROPAGATORS');\n if (compositeList) {\n config.propagator.composite_list = compositeList;\n const names = compositeList\n .split(',')\n .map(s => s.trim())\n .filter(s => s);\n if (names.length > 0) {\n config.propagator.composite = [];\n // Store each propagator name as a type-discriminator key. The config\n // model doesn't validate names here — known vs third-party propagators\n // are resolved when the SDK instantiates from the model.\n for (const name of names) {\n config.propagator.composite.push({ [name]: {} });\n }\n }\n }\n}\n\nexport function setSampler(config: ConfigurationModel, env: EnvValues): void {\n const sampler = env.OTEL_TRACES_SAMPLER;\n const arg = env.OTEL_TRACES_SAMPLER_ARG;\n\n if (!sampler || !config.tracer_provider) {\n return;\n }\n\n const ratio = arg ? parseFloat(arg) : 1.0;\n\n switch (sampler) {\n case SamplerType.AlwaysOn:\n config.tracer_provider.sampler = { always_on: {} };\n break;\n\n case SamplerType.AlwaysOff:\n config.tracer_provider.sampler = { always_off: {} };\n break;\n\n case SamplerType.TraceIdRatio:\n config.tracer_provider.sampler = {\n trace_id_ratio_based: { ratio },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOn:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_on: {} } },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOff:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_off: {} } },\n };\n break;\n\n case SamplerType.ParentBasedTraceIdRatio:\n config.tracer_provider.sampler = {\n parent_based: { root: { trace_id_ratio_based: { ratio } } },\n };\n break;\n\n default:\n // readEnvVar already warns for invalid values via allowedValues\n break;\n }\n}\n\nexport function setTracerProvider(\n config: ConfigurationModel,\n env: EnvValues\n): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_TRACES_EXPORTER contains \"none\". Tracer provider will not be initialized.'\n );\n return;\n }\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n setSampler(config, env);\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit) {\n config.tracer_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeCountLimit) {\n config.tracer_provider.limits!.attribute_count_limit = attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT');\n if (eventCountLimit) {\n config.tracer_provider.limits!.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT');\n if (linkCountLimit) {\n config.tracer_provider.limits!.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromEnv(\n 'OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT'\n );\n if (eventAttributeCountLimit) {\n config.tracer_provider.limits!.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromEnv(\n 'OTEL_LINK_ATTRIBUTE_COUNT_LIMIT'\n );\n if (linkAttributeCountLimit) {\n config.tracer_provider.limits!.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n\n const batch: BatchSpanProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000,\n export_timeout: getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchSpanProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: SpanProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.tracer_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<SpanExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<SpanExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/traces`\n : 'http://localhost:4318/v1/traces'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n\n const processor: SpanProcessor = { batch: batchInfo };\n config.tracer_provider.processors!.push(processor);\n }\n }\n}\n\nexport function setMeterProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_METRICS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_METRICS_EXPORTER contains \"none\". Meter provider will not be initialized.'\n );\n return;\n }\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n\n const interval = getNumberFromEnv('OTEL_METRIC_EXPORT_INTERVAL') ?? 60000;\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n if (exporterType === 'prometheus') {\n const pullReader = {\n exporter: {\n 'prometheus/development': {\n host:\n getStringFromEnv('OTEL_EXPORTER_PROMETHEUS_HOST') ?? 'localhost',\n port: getNumberFromEnv('OTEL_EXPORTER_PROMETHEUS_PORT') ?? 9464,\n scope_info_enabled: true,\n 'target_info_enabled/development': true,\n },\n },\n };\n config.meter_provider.readers!.push({ pull: pullReader });\n continue;\n }\n\n const readerPeriodicInfo: PeriodicMetricReader = {\n interval,\n timeout: getNumberFromEnv('OTEL_METRIC_EXPORT_TIMEOUT') ?? 30000,\n exporter: {},\n };\n\n if (exporterType === 'console') {\n readerPeriodicInfo.exporter = { console: {} };\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeoutExporter =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_METRICS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n const rawTemporality =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE') ??\n 'cumulative';\n const validTemporalities = ['cumulative', 'delta', 'low_memory'];\n const temporalityPreference = validTemporalities.includes(rawTemporality)\n ? rawTemporality\n : 'cumulative';\n const rawHistogramAgg =\n getStringFromEnv(\n 'OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION'\n ) ?? 'explicit_bucket_histogram';\n const validHistogramAggs = [\n 'explicit_bucket_histogram',\n 'base2_exponential_bucket_histogram',\n ];\n const defaultHistogramAggregation = validHistogramAggs.includes(\n rawHistogramAgg\n )\n ? rawHistogramAgg\n : 'explicit_bucket_histogram';\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<PushMetricExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n readerPeriodicInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<PushMetricExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/metrics`\n : 'http://localhost:4318/v1/metrics'),\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n readerPeriodicInfo.exporter = { otlp_http: otlpHttp };\n }\n }\n config.meter_provider.readers!.push({ periodic: readerPeriodicInfo });\n }\n\n const rawExemplarFilter =\n getStringFromEnv('OTEL_METRICS_EXEMPLAR_FILTER') ?? 'trace_based';\n config.meter_provider.exemplar_filter =\n rawExemplarFilter === 'default'\n ? 'trace_based'\n : (rawExemplarFilter as ExemplarFilter);\n}\n\nexport function setLoggerProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_LOGS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_LOGS_EXPORTER contains \"none\". Logger provider will not be initialized.'\n );\n return;\n }\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeValueLengthLimit || attributeCountLimit) {\n if (attributeValueLengthLimit) {\n config.logger_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n if (attributeCountLimit) {\n config.logger_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n }\n\n const batch: BatchLogRecordProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BLRP_SCHEDULE_DELAY') ?? 1000,\n export_timeout: getNumberFromEnv('OTEL_BLRP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BLRP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchLogRecordProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: LogRecordProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.logger_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_LOGS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<LogRecordExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<LogRecordExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/logs`\n : 'http://localhost:4318/v1/logs'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n const processor: LogRecordProcessor = { batch: batchInfo };\n config.logger_provider.processors!.push(processor);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EnvironmentConfigFactory.mjs","names":[],"sources":["../src/EnvironmentConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n getStringFromEnv,\n getStringListFromEnv,\n getNumberFromEnv,\n} from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport type {\n ExemplarFilter,\n BatchLogRecordProcessor,\n BatchSpanProcessor,\n ConfigurationModel,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n LogRecordExporter,\n LogRecordProcessor,\n PeriodicMetricReader,\n PushMetricExporter,\n SeverityNumber,\n SpanExporter,\n SpanProcessor,\n} from './generated/types';\nimport { diag } from '@opentelemetry/api';\nimport {\n getGrpcTlsConfig,\n getHttpTlsConfig,\n initializeDefaultConfiguration,\n initializeDefaultTracerProviderConfiguration,\n initializeDefaultMeterProviderConfiguration,\n initializeDefaultLoggerProviderConfiguration,\n} from './utils';\nimport type { EnvValues } from './EnvReader';\nimport { readAllEnvVars } from './EnvReader';\nimport { SamplerType } from './EnvDefinition';\n\ntype ExperimentalResourceDetector = NonNullable<\n NonNullable<\n NonNullable<ConfigurationModel['resource']>['detection/development']\n >['detectors']\n>[number];\n\n/**\n * EnvironmentConfigProvider provides a configuration based on environment variables.\n */\nexport class EnvironmentConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n const envValues = readAllEnvVars();\n this._config.disabled = envValues.OTEL_SDK_DISABLED;\n\n const logLevelString = getStringFromEnv('OTEL_LOG_LEVEL');\n if (logLevelString) {\n this._config.log_level =\n severityNumberConfigFromLogLevelString(logLevelString);\n }\n\n setResources(this._config);\n setAttributeLimits(this._config);\n setPropagators(this._config);\n setTracerProvider(this._config, envValues);\n setMeterProvider(this._config);\n setLoggerProvider(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nconst SEV_NUM_CONFIG_FROM_LOG_LEVEL: { [key: string]: SeverityNumber } = {\n // Declarative config `log_level` has no \"NONE\". Using 'fatal' is\n // equivalent, because the OTel JS diag API does not have a \"fatal\" level.\n NONE: 'fatal',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n VERBOSE: 'trace2',\n // Declarative config `log_level` has no \"ALL\". Using 'trace' is\n // equivalent, because that is the lowest SeverityNumber level.\n ALL: 'trace',\n};\n\n/**\n * Return a declarative config SeverityNumberConfig value (as used for\n * `log_level`) for the given `OTEL_LOG_LEVEL` string value.\n *\n * See notes at \"opentelemetr-sdk-node/src/diag.ts\".\n */\nfunction severityNumberConfigFromLogLevelString(\n str?: string\n): SeverityNumber | undefined {\n if (!str) {\n return undefined;\n }\n const sevNumConfig = SEV_NUM_CONFIG_FROM_LOG_LEVEL[str.toUpperCase()];\n if (!sevNumConfig) {\n diag.warn(\n `Unknown log level \"${str}\", expected one of ${Object.keys(SEV_NUM_CONFIG_FROM_LOG_LEVEL)}, using default info`\n );\n return 'info';\n }\n return sevNumConfig;\n}\n\nexport function setResources(config: ConfigurationModel): void {\n if (config.resource == null) {\n config.resource = {};\n }\n\n const resourceAttrList = getStringFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const list = resourceAttrList\n ? resourceAttrList\n .split(',')\n .map(s => s.trim())\n .filter(s => s)\n : [];\n const serviceName = getStringFromEnv('OTEL_SERVICE_NAME');\n\n if (serviceName) {\n config.resource.attributes = [\n {\n name: 'service.name',\n value: serviceName,\n type: 'string',\n },\n ];\n }\n if (list.length > 0) {\n config.resource.attributes_list = resourceAttrList;\n if (config.resource.attributes == null) {\n config.resource.attributes = [];\n }\n\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (\n element[0] !== 'service.name' ||\n (element[0] === 'service.name' && serviceName === undefined)\n ) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n\n const nodeDetectors = getStringListFromEnv('OTEL_NODE_RESOURCE_DETECTORS');\n if (\n nodeDetectors &&\n nodeDetectors.length > 0 &&\n !nodeDetectors.includes('none')\n ) {\n const all = nodeDetectors.includes('all');\n const detectors: ExperimentalResourceDetector[] = [];\n if (all || nodeDetectors.includes('container'))\n detectors.push({ container: {} });\n if (all || nodeDetectors.includes('host')) detectors.push({ host: {} });\n if (all || nodeDetectors.includes('os')) detectors.push({ os: {} });\n if (all || nodeDetectors.includes('process'))\n detectors.push({ process: {} });\n if (all || nodeDetectors.includes('serviceinstance'))\n detectors.push({ service: {} });\n if (all || nodeDetectors.includes('env')) detectors.push({ env: {} });\n if (detectors.length > 0) {\n if (config.resource['detection/development'] == null) {\n config.resource['detection/development'] = {};\n }\n config.resource['detection/development'].detectors = detectors;\n }\n }\n}\n\nexport function setAttributeLimits(config: ConfigurationModel): void {\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (\n attributeValueLengthLimit !== undefined &&\n attributeValueLengthLimit >= 0\n ) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: 128 };\n }\n config.attribute_limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT');\n if (attributeCountLimit !== undefined) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: attributeCountLimit };\n } else {\n config.attribute_limits.attribute_count_limit = attributeCountLimit;\n }\n }\n}\n\nexport function setPropagators(config: ConfigurationModel): void {\n if (config.propagator == null) {\n config.propagator = {};\n }\n const compositeList = getStringFromEnv('OTEL_PROPAGATORS');\n if (compositeList) {\n config.propagator.composite_list = compositeList;\n const names = compositeList\n .split(',')\n .map(s => s.trim())\n .filter(s => s);\n if (names.length > 0) {\n config.propagator.composite = [];\n // Store each propagator name as a type-discriminator key. The config\n // model doesn't validate names here — known vs third-party propagators\n // are resolved when the SDK instantiates from the model.\n for (const name of names) {\n config.propagator.composite.push({ [name]: {} });\n }\n }\n }\n}\n\nexport function setSampler(config: ConfigurationModel, env: EnvValues): void {\n const sampler = env.OTEL_TRACES_SAMPLER;\n const arg = env.OTEL_TRACES_SAMPLER_ARG;\n\n if (!sampler || !config.tracer_provider) {\n return;\n }\n\n const ratio = arg ? parseFloat(arg) : 1.0;\n\n switch (sampler) {\n case SamplerType.AlwaysOn:\n config.tracer_provider.sampler = { always_on: {} };\n break;\n\n case SamplerType.AlwaysOff:\n config.tracer_provider.sampler = { always_off: {} };\n break;\n\n case SamplerType.TraceIdRatio:\n config.tracer_provider.sampler = {\n trace_id_ratio_based: { ratio },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOn:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_on: {} } },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOff:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_off: {} } },\n };\n break;\n\n case SamplerType.ParentBasedTraceIdRatio:\n config.tracer_provider.sampler = {\n parent_based: { root: { trace_id_ratio_based: { ratio } } },\n };\n break;\n\n default:\n // readEnvVar already warns for invalid values via allowedValues\n break;\n }\n}\n\nexport function setTracerProvider(\n config: ConfigurationModel,\n env: EnvValues\n): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_TRACES_EXPORTER contains \"none\". Tracer provider will not be initialized.'\n );\n return;\n }\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n setSampler(config, env);\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit !== undefined) {\n config.tracer_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeCountLimit !== undefined) {\n config.tracer_provider.limits!.attribute_count_limit = attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT');\n if (eventCountLimit !== undefined) {\n config.tracer_provider.limits!.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT');\n if (linkCountLimit !== undefined) {\n config.tracer_provider.limits!.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromEnv(\n 'OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT'\n );\n if (eventAttributeCountLimit !== undefined) {\n config.tracer_provider.limits!.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromEnv(\n 'OTEL_LINK_ATTRIBUTE_COUNT_LIMIT'\n );\n if (linkAttributeCountLimit !== undefined) {\n config.tracer_provider.limits!.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n\n const batch: BatchSpanProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000,\n export_timeout: getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchSpanProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: SpanProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.tracer_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<SpanExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<SpanExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/traces`\n : 'http://localhost:4318/v1/traces'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n\n const processor: SpanProcessor = { batch: batchInfo };\n config.tracer_provider.processors!.push(processor);\n }\n }\n}\n\nexport function setMeterProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_METRICS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_METRICS_EXPORTER contains \"none\". Meter provider will not be initialized.'\n );\n return;\n }\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n\n const interval = getNumberFromEnv('OTEL_METRIC_EXPORT_INTERVAL') ?? 60000;\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n if (exporterType === 'prometheus') {\n const pullReader = {\n exporter: {\n 'prometheus/development': {\n host:\n getStringFromEnv('OTEL_EXPORTER_PROMETHEUS_HOST') ?? 'localhost',\n port: getNumberFromEnv('OTEL_EXPORTER_PROMETHEUS_PORT') ?? 9464,\n scope_info_enabled: true,\n 'target_info_enabled/development': true,\n },\n },\n };\n config.meter_provider.readers!.push({ pull: pullReader });\n continue;\n }\n\n const readerPeriodicInfo: PeriodicMetricReader = {\n interval,\n timeout: getNumberFromEnv('OTEL_METRIC_EXPORT_TIMEOUT') ?? 30000,\n exporter: {},\n };\n\n if (exporterType === 'console') {\n readerPeriodicInfo.exporter = { console: {} };\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeoutExporter =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_METRICS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n const rawTemporality =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE') ??\n 'cumulative';\n const validTemporalities = ['cumulative', 'delta', 'low_memory'];\n const temporalityPreference = validTemporalities.includes(rawTemporality)\n ? rawTemporality\n : 'cumulative';\n const rawHistogramAgg =\n getStringFromEnv(\n 'OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION'\n ) ?? 'explicit_bucket_histogram';\n const validHistogramAggs = [\n 'explicit_bucket_histogram',\n 'base2_exponential_bucket_histogram',\n ];\n const defaultHistogramAggregation = validHistogramAggs.includes(\n rawHistogramAgg\n )\n ? rawHistogramAgg\n : 'explicit_bucket_histogram';\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<PushMetricExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n readerPeriodicInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<PushMetricExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/metrics`\n : 'http://localhost:4318/v1/metrics'),\n timeout: timeoutExporter,\n temporality_preference:\n temporalityPreference as ExporterTemporalityPreference,\n default_histogram_aggregation:\n defaultHistogramAggregation as ExporterDefaultHistogramAggregation,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n readerPeriodicInfo.exporter = { otlp_http: otlpHttp };\n }\n }\n config.meter_provider.readers!.push({ periodic: readerPeriodicInfo });\n }\n\n const rawExemplarFilter =\n getStringFromEnv('OTEL_METRICS_EXEMPLAR_FILTER') ?? 'trace_based';\n config.meter_provider.exemplar_filter =\n rawExemplarFilter === 'default'\n ? 'trace_based'\n : (rawExemplarFilter as ExemplarFilter);\n}\n\nexport function setLoggerProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_LOGS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n 'OTEL_LOGS_EXPORTER contains \"none\". Logger provider will not be initialized.'\n );\n return;\n }\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT'\n );\n if (\n attributeValueLengthLimit !== undefined ||\n attributeCountLimit !== undefined\n ) {\n if (attributeValueLengthLimit !== undefined) {\n config.logger_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n if (attributeCountLimit !== undefined) {\n config.logger_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n }\n\n const batch: BatchLogRecordProcessor = {\n exporter: {},\n schedule_delay: getNumberFromEnv('OTEL_BLRP_SCHEDULE_DELAY') ?? 1000,\n export_timeout: getNumberFromEnv('OTEL_BLRP_EXPORT_TIMEOUT') ?? 30000,\n max_queue_size: getNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE') ?? 2048,\n max_export_batch_size:\n getNumberFromEnv('OTEL_BLRP_MAX_EXPORT_BATCH_SIZE') ?? 512,\n };\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo: BatchLogRecordProcessor = {\n ...batch,\n exporter: {},\n };\n if (exporterType === 'console') {\n const processor: LogRecordProcessor = {\n simple: { exporter: { console: {} } },\n };\n config.logger_provider.processors!.push(processor);\n } else {\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_LOGS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const otlpGrpc: NonNullable<LogRecordExporter['otlp_grpc']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317',\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n };\n batchInfo.exporter = { otlp_grpc: otlpGrpc };\n } else {\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n const encoding =\n protocol === 'http/json'\n ? 'json'\n : protocol === 'http/protobuf'\n ? 'protobuf'\n : undefined;\n const otlpHttp: NonNullable<LogRecordExporter['otlp_http']> = {\n endpoint:\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/logs`\n : 'http://localhost:4318/v1/logs'),\n timeout,\n ...(tls !== undefined && { tls }),\n ...(compression !== undefined && { compression }),\n ...(headersList !== undefined && { headers_list: headersList }),\n ...(encoding !== undefined && { encoding }),\n };\n batchInfo.exporter = { otlp_http: otlpHttp };\n }\n const processor: LogRecordProcessor = { batch: batchInfo };\n config.logger_provider.processors!.push(processor);\n }\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@opentelemetry/configuration",
3
- "version": "0.300.0-development.0",
3
+ "version": "0.300.0-rc.0",
4
4
  "description": "OpenTelemetry Configuration",
5
5
  "main": "./dist/index.cjs",
6
6
  "types": "./dist/index.d.cts",
7
7
  "exports": {
8
8
  ".": {
9
- "import": {
10
- "types": "./dist/index.d.mts",
11
- "default": "./dist/index.mjs"
12
- },
13
9
  "require": {
14
10
  "types": "./dist/index.d.cts",
15
11
  "default": "./dist/index.cjs"
12
+ },
13
+ "default": {
14
+ "types": "./dist/index.d.mts",
15
+ "default": "./dist/index.mjs"
16
16
  }
17
17
  }
18
18
  },
@@ -48,26 +48,26 @@
48
48
  "access": "public"
49
49
  },
50
50
  "dependencies": {
51
- "@opentelemetry/core": "3.0.0-development.0",
51
+ "@opentelemetry/core": "3.0.0-rc.0",
52
52
  "yaml": "^2.8.3"
53
53
  },
54
54
  "peerDependencies": {
55
- "@opentelemetry/api": "^1.9.0"
55
+ "@opentelemetry/api": "^1.9.0 || 1.10.0-rc.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@opentelemetry/api": "^1.9.0",
58
+ "@opentelemetry/api": "^1.9.0 || 1.10.0-rc.0",
59
59
  "@types/mocha": "10.0.10",
60
60
  "@types/node": "18.19.130",
61
61
  "@types/sinon": "17.0.4",
62
62
  "ajv": "^8.0.0",
63
63
  "json-schema-to-typescript": "^15.0.0",
64
- "mocha": "11.8.0",
65
- "nyc": "17.1.0",
64
+ "mocha": "12.0.3",
65
+ "nyc": "18.0.0",
66
66
  "sinon": "18.0.1",
67
67
  "ts-loader": "9.5.7",
68
68
  "typescript": "5.2.2"
69
69
  },
70
70
  "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/configuration",
71
71
  "sideEffects": false,
72
- "gitHead": "ad3499bf70ee996f5565e5cd00f2c5fcb2e87042"
72
+ "gitHead": "fc3902d5304276e24601f243a1c065031ab81f6b"
73
73
  }