@opentelemetry/configuration 0.210.0 → 0.212.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FileConfigFactory.js","sourceRoot":"","sources":["../../src/FileConfigFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { diagLogLevelFromString, getStringFromEnv } from '@opentelemetry/core';\nimport {\n AttributeLimits,\n Propagator,\n ConfigurationModel,\n initializeDefaultConfiguration,\n} from './models/configModel';\nimport { ConfigFactory } from './IConfigFactory';\nimport * as fs from 'fs';\nimport * as yaml from 'yaml';\nimport {\n getBooleanFromConfigFile,\n getBooleanListFromConfigFile,\n getNumberFromConfigFile,\n getNumberListFromConfigFile,\n getStringFromConfigFile,\n getStringListFromConfigFile,\n} from './utils';\nimport { NameStringValuePair, OtlpHttpEncoding } from './models/commonModel';\nimport {\n initializeDefaultTracerProviderConfiguration,\n SpanExporter,\n SpanProcessor,\n TracerProvider,\n} from './models/tracerProviderModel';\nimport {\n initializeDefaultLoggerProviderConfiguration,\n LoggerProvider,\n LogRecordExporter,\n LogRecordProcessor,\n} from './models/loggerProviderModel';\nimport { AttributeNameValue } from './models/resourceModel';\nimport {\n Aggregation,\n CardinalityLimits,\n ExemplarFilter,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n initializeDefaultMeterProviderConfiguration,\n InstrumentType,\n MeterProvider,\n MetricProducer,\n MetricReader,\n PullMetricExporter,\n PushMetricExporter,\n View,\n ViewSelector,\n ViewStream,\n} from './models/meterProviderModel';\nimport { diag } from '@opentelemetry/api';\n\nexport class FileConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n parseConfigFile(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nexport function hasValidConfigFile(): boolean {\n const configFile = getStringFromEnv('OTEL_EXPERIMENTAL_CONFIG_FILE');\n if (configFile) {\n if (\n !(configFile.endsWith('.yaml') || configFile.endsWith('.yml')) ||\n !fs.existsSync(configFile)\n ) {\n diag.warn(\n `Config file ${configFile} set on OTEL_EXPERIMENTAL_CONFIG_FILE is not valid`\n );\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport function parseConfigFile(config: ConfigurationModel) {\n const supportedFileVersions = ['1.0-rc.1', '1.0-rc.2'];\n const configFile = getStringFromEnv('OTEL_EXPERIMENTAL_CONFIG_FILE') || '';\n const file = fs.readFileSync(configFile, 'utf8');\n const parsedContent = yaml.parse(file);\n\n if (\n parsedContent['file_format'] &&\n supportedFileVersions.includes(parsedContent['file_format'])\n ) {\n const disabled = getBooleanFromConfigFile(parsedContent['disabled']);\n if (disabled !== undefined) {\n config.disabled = disabled;\n }\n\n const logLevel = getNumberFromConfigFile(\n diagLogLevelFromString(parsedContent['log_level'])\n );\n if (logLevel) {\n config.log_level = logLevel;\n }\n\n if (parsedContent['resource']) {\n if (config.resource == null) {\n config.resource = {};\n }\n const schemaUrl = getStringFromConfigFile(\n parsedContent['resource']?.['schema_url']\n );\n if (schemaUrl) {\n config.resource.schema_url = schemaUrl;\n }\n }\n\n setResourceAttributes(\n config,\n parsedContent['resource']?.['attributes'],\n parsedContent['resource']?.['attributes_list']\n );\n setAttributeLimits(config, parsedContent['attribute_limits']);\n setPropagator(config, parsedContent['propagator']);\n setTracerProvider(config, parsedContent['tracer_provider']);\n setMeterProvider(config, parsedContent['meter_provider']);\n setLoggerProvider(config, parsedContent['logger_provider']);\n } else {\n diag.warn(\n `Unsupported File Format: ${parsedContent['file_format']}. It must be one of the following: ${supportedFileVersions}`\n );\n }\n}\n\nexport function setResourceAttributes(\n config: ConfigurationModel,\n attributes: AttributeNameValue[],\n attributeList: string\n) {\n if (attributes || attributeList) {\n const addedKeys = [];\n if (config.resource == null) {\n config.resource = {};\n }\n if (getStringFromConfigFile(attributeList)) {\n config.resource.attributes_list = getStringFromConfigFile(attributeList);\n }\n\n const list = getStringListFromConfigFile(attributeList);\n if ((list && list.length > 0) || (attributes && attributes.length > 0)) {\n config.resource.attributes = [];\n\n if (attributes) {\n for (let i = 0; i < attributes.length; i++) {\n const att = attributes[i];\n let value = att['value'];\n switch (att['type']) {\n case 'bool':\n value = getBooleanFromConfigFile(value);\n break;\n case 'bool_array':\n value = getBooleanListFromConfigFile(value);\n break;\n case 'int':\n case 'double':\n value = getNumberFromConfigFile(value);\n break;\n case 'int_array':\n case 'double_array':\n value = getNumberListFromConfigFile(value);\n break;\n case 'string_array':\n value = getStringListFromConfigFile(value);\n break;\n default:\n value = getStringFromConfigFile(value);\n break;\n }\n\n const key = getStringFromConfigFile(att['name']) ?? '';\n config.resource.attributes.push({\n name: key,\n value: value,\n type: att['type'] ?? 'string',\n });\n addedKeys.push(key);\n }\n }\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (!addedKeys.includes(element[0])) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n }\n }\n}\n\nexport function setAttributeLimits(\n config: ConfigurationModel,\n attrLimits: AttributeLimits\n) {\n if (attrLimits) {\n if (config.attribute_limits == null) {\n config.attribute_limits = {\n attribute_count_limit: 128,\n };\n }\n const lengthLimit = getNumberFromConfigFile(\n attrLimits['attribute_value_length_limit']\n );\n if (lengthLimit) {\n config.attribute_limits.attribute_value_length_limit = lengthLimit;\n }\n const countLimit = getNumberFromConfigFile(\n attrLimits['attribute_count_limit']\n );\n if (countLimit) {\n config.attribute_limits.attribute_count_limit = countLimit;\n }\n }\n}\n\nexport function setPropagator(\n config: ConfigurationModel,\n propagator: Propagator\n): void {\n if (propagator && propagator.composite) {\n const auxList = [];\n const composite = [];\n for (let i = 0; i < propagator.composite.length; i++) {\n const key = Object.keys(propagator.composite[i])[0];\n auxList.push(key);\n composite.push({ [key]: null });\n }\n const compositeList = getStringListFromConfigFile(\n propagator['composite_list']\n );\n if (compositeList) {\n for (let i = 0; i < compositeList.length; i++) {\n if (!auxList.includes(compositeList[i])) {\n composite.push({ [compositeList[i]]: null });\n }\n }\n }\n if (composite.length > 0) {\n if (config.propagator == null) {\n config.propagator = {};\n }\n config.propagator.composite = composite;\n }\n\n const compositeListString = getStringFromConfigFile(\n propagator['composite_list']\n );\n if (compositeListString) {\n if (config.propagator == null) {\n config.propagator = {};\n }\n config.propagator.composite_list = compositeListString;\n }\n }\n}\n\nfunction getConfigHeaders(\n h?: NameStringValuePair[]\n): NameStringValuePair[] | null {\n if (h) {\n const headers: NameStringValuePair[] = [];\n for (let i = 0; i < h.length; i++) {\n const element = h[i];\n headers.push({\n name: element['name'],\n value: element['value'],\n });\n }\n if (headers.length > 0) {\n return headers;\n }\n }\n return null;\n}\n\nenum ProviderType {\n TRACER = 0,\n METER = 1,\n LOGGER = 2,\n}\n\nfunction parseConfigSpanOrLogRecordExporter(\n exporter: SpanExporter | LogRecordExporter,\n providerType: ProviderType\n): SpanExporter | LogRecordExporter {\n const exporterType = Object.keys(exporter)[0];\n let parsedExporter: SpanExporter | LogRecordExporter = {};\n let e;\n let certFile;\n let clientCertFile;\n let clientKeyFile;\n let compression;\n let headers;\n let headersList;\n let insecure;\n let endpoint;\n\n switch (providerType) {\n case ProviderType.TRACER:\n endpoint = 'http://localhost:4318/v1/traces';\n parsedExporter = parsedExporter as SpanExporter;\n break;\n case ProviderType.LOGGER:\n endpoint = 'http://localhost:4318/v1/logs';\n parsedExporter = parsedExporter as LogRecordExporter;\n break;\n }\n\n switch (exporterType) {\n case 'otlp_http':\n e = exporter['otlp_http'];\n if (e) {\n parsedExporter = {\n otlp_http: {\n endpoint: getStringFromConfigFile(e['endpoint']) ?? endpoint,\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n encoding:\n getStringFromConfigFile(e['encoding']) === 'json'\n ? OtlpHttpEncoding.JSON\n : OtlpHttpEncoding.Protobuf,\n },\n };\n\n certFile = getStringFromConfigFile(e['certificate_file']);\n if (certFile && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.certificate_file = certFile;\n }\n clientCertFile = getStringFromConfigFile(e['client_certificate_file']);\n if (clientCertFile && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.client_certificate_file = clientCertFile;\n }\n clientKeyFile = getStringFromConfigFile(e['client_key_file']);\n if (clientKeyFile && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.client_key_file = clientKeyFile;\n }\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers = headers;\n }\n }\n break;\n\n case 'otlp_grpc':\n e = exporter['otlp_grpc'];\n if (e) {\n parsedExporter = {\n otlp_grpc: {\n endpoint:\n getStringFromConfigFile(e['endpoint']) ?? 'http://localhost:4317',\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n },\n };\n\n certFile = getStringFromConfigFile(e['certificate_file']);\n if (certFile && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.certificate_file = certFile;\n }\n clientCertFile = getStringFromConfigFile(e['client_certificate_file']);\n if (clientCertFile && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.client_certificate_file = clientCertFile;\n }\n clientKeyFile = getStringFromConfigFile(e['client_key_file']);\n if (clientKeyFile && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.client_key_file = clientKeyFile;\n }\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers = headers;\n }\n insecure = getBooleanFromConfigFile(e['insecure']);\n if ((insecure || insecure === false) && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.insecure = insecure;\n }\n }\n break;\n\n case 'otlp_file/development':\n e = exporter['otlp_file/development'];\n if (e) {\n parsedExporter = {\n 'otlp_file/development': {\n output_stream:\n getStringFromConfigFile(e['output_stream']) ?? 'stdout',\n },\n };\n }\n break;\n\n case 'console':\n parsedExporter = {\n console: {},\n };\n break;\n\n case 'zipkin':\n e = (exporter as SpanExporter)['zipkin'];\n if (e) {\n parsedExporter = {\n zipkin: {\n endpoint:\n getStringFromConfigFile(e['endpoint']) ??\n 'http://localhost:9411/api/v2/spans',\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n },\n };\n }\n break;\n }\n\n return parsedExporter;\n}\n\nexport function setTracerProvider(\n config: ConfigurationModel,\n tracerProvider: TracerProvider\n): void {\n if (tracerProvider && tracerProvider.processors?.length > 0) {\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n // Limits\n if (tracerProvider['limits']) {\n if (config.tracer_provider.limits == null) {\n config.tracer_provider.limits = {};\n }\n const attributeValueLengthLimit = getNumberFromConfigFile(\n tracerProvider['limits']['attribute_value_length_limit']\n );\n\n if (attributeValueLengthLimit) {\n config.tracer_provider.limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['attribute_count_limit']\n );\n if (attributeCountLimit) {\n config.tracer_provider.limits.attribute_count_limit =\n attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['event_count_limit']\n );\n if (eventCountLimit) {\n config.tracer_provider.limits.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['link_count_limit']\n );\n if (linkCountLimit) {\n config.tracer_provider.limits.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['event_attribute_count_limit']\n );\n if (eventAttributeCountLimit) {\n config.tracer_provider.limits.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['link_attribute_count_limit']\n );\n if (linkAttributeCountLimit) {\n config.tracer_provider.limits.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n }\n\n // Processors\n for (let i = 0; i < tracerProvider['processors'].length; i++) {\n const processorType = Object.keys(tracerProvider['processors'][i])[0];\n if (processorType === 'batch') {\n const element = tracerProvider['processors'][i]['batch'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.TRACER\n );\n const batchConfig: SpanProcessor = {\n batch: {\n schedule_delay:\n getNumberFromConfigFile(element['schedule_delay']) ?? 5000,\n export_timeout:\n getNumberFromConfigFile(element['export_timeout']) ?? 30000,\n max_queue_size:\n getNumberFromConfigFile(element['max_queue_size']) ?? 2048,\n max_export_batch_size:\n getNumberFromConfigFile(element['max_export_batch_size']) ??\n 512,\n exporter: parsedExporter as SpanExporter,\n },\n };\n\n config.tracer_provider.processors.push(batchConfig);\n }\n } else if (processorType === 'simple') {\n const element = tracerProvider['processors'][i]['simple'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.TRACER\n );\n const simpleConfig: SpanProcessor = {\n simple: {\n exporter: parsedExporter as SpanExporter,\n },\n };\n\n config.tracer_provider.processors.push(simpleConfig);\n }\n }\n }\n } else if (\n tracerProvider &&\n (tracerProvider.processors == null ||\n tracerProvider.processors.length === 0)\n ) {\n diag.warn('TracerProvider must have at least one processor configured');\n }\n}\n\nfunction getCardinalityLimits(limits?: CardinalityLimits): CardinalityLimits {\n if (limits == null) {\n limits = {};\n }\n const defaultLimit = getNumberFromConfigFile(limits['default']) ?? 2000;\n\n return {\n default: defaultLimit,\n counter: getNumberFromConfigFile(limits['counter']) ?? defaultLimit,\n gauge: getNumberFromConfigFile(limits['gauge']) ?? defaultLimit,\n histogram: getNumberFromConfigFile(limits['histogram']) ?? defaultLimit,\n observable_counter:\n getNumberFromConfigFile(limits['observable_counter']) ?? defaultLimit,\n observable_gauge:\n getNumberFromConfigFile(limits['observable_gauge']) ?? defaultLimit,\n observable_up_down_counter:\n getNumberFromConfigFile(limits['observable_up_down_counter']) ??\n defaultLimit,\n up_down_counter:\n getNumberFromConfigFile(limits['up_down_counter']) ?? defaultLimit,\n };\n}\n\nfunction getProducers(producers?: MetricProducer[]): MetricProducer[] {\n const parsedProducers: MetricProducer[] = [];\n if (producers) {\n for (let j = 0; j < producers.length; j++) {\n const producer = producers[j];\n if (Object.keys(producer)[0] === 'opencensus') {\n parsedProducers.push({ opencensus: undefined });\n }\n if (Object.keys(producer)[0] === 'prometheus') {\n parsedProducers.push({ prometheus: undefined });\n }\n }\n }\n\n return parsedProducers;\n}\n\nexport function getTemporalityPreference(\n temporalityPreference?: ExporterTemporalityPreference\n): ExporterTemporalityPreference {\n const temporalityPreferenceType = getStringFromConfigFile(\n temporalityPreference\n );\n switch (temporalityPreferenceType) {\n case 'cumulative':\n return ExporterTemporalityPreference.Cumulative;\n case 'delta':\n return ExporterTemporalityPreference.Delta;\n case 'low_memory':\n return ExporterTemporalityPreference.LowMemory;\n default:\n return ExporterTemporalityPreference.Cumulative;\n }\n}\n\nfunction getDefaultHistogramAggregation(\n defaultHistogramAggregation?: ExporterDefaultHistogramAggregation\n): ExporterDefaultHistogramAggregation {\n const defaultHistogramAggregationType = getStringFromConfigFile(\n defaultHistogramAggregation\n );\n switch (defaultHistogramAggregationType) {\n case 'explicit_bucket_histogram':\n return ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n case 'base2_exponential_bucket_histogram':\n return ExporterDefaultHistogramAggregation.Base2ExponentialBucketHistogram;\n default:\n return ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n }\n}\n\nfunction parseMetricExporter(exporter: PushMetricExporter): PushMetricExporter {\n const exporterType = Object.keys(exporter)[0];\n let parsedExporter: PushMetricExporter = {};\n let e;\n let certFile;\n let clientCertFile;\n let clientKeyFile;\n let compression;\n let headers;\n let headersList;\n let insecure;\n\n switch (exporterType) {\n case 'otlp_http':\n e = exporter['otlp_http'];\n if (e) {\n parsedExporter = {\n otlp_http: {\n endpoint:\n getStringFromConfigFile(e['endpoint']) ??\n 'http://localhost:4318/v1/metrics',\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n encoding:\n getStringFromConfigFile(e['encoding']) === 'json'\n ? OtlpHttpEncoding.JSON\n : OtlpHttpEncoding.Protobuf,\n temporality_preference: getTemporalityPreference(\n e['temporality_preference']\n ),\n default_histogram_aggregation: getDefaultHistogramAggregation(\n e['default_histogram_aggregation']\n ),\n },\n };\n\n certFile = getStringFromConfigFile(e['certificate_file']);\n if (certFile && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.certificate_file = certFile;\n }\n clientCertFile = getStringFromConfigFile(e['client_certificate_file']);\n if (clientCertFile && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.client_certificate_file = clientCertFile;\n }\n clientKeyFile = getStringFromConfigFile(e['client_key_file']);\n if (clientKeyFile && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.client_key_file = clientKeyFile;\n }\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers = headers;\n }\n }\n break;\n\n case 'otlp_grpc':\n e = exporter['otlp_grpc'];\n if (e) {\n parsedExporter = {\n otlp_grpc: {\n endpoint:\n getStringFromConfigFile(e['endpoint']) ?? 'http://localhost:4317',\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n temporality_preference: getTemporalityPreference(\n e['temporality_preference']\n ),\n default_histogram_aggregation: getDefaultHistogramAggregation(\n e['default_histogram_aggregation']\n ),\n },\n };\n\n certFile = getStringFromConfigFile(e['certificate_file']);\n if (certFile && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.certificate_file = certFile;\n }\n clientCertFile = getStringFromConfigFile(e['client_certificate_file']);\n if (clientCertFile && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.client_certificate_file = clientCertFile;\n }\n clientKeyFile = getStringFromConfigFile(e['client_key_file']);\n if (clientKeyFile && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.client_key_file = clientKeyFile;\n }\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers = headers;\n }\n insecure = getBooleanFromConfigFile(e['insecure']);\n if ((insecure || insecure === false) && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.insecure = insecure;\n }\n }\n break;\n\n case 'otlp_file/development':\n e = exporter['otlp_file/development'];\n if (e) {\n parsedExporter = {\n 'otlp_file/development': {\n output_stream:\n getStringFromConfigFile(e['output_stream']) ?? 'stdout',\n temporality_preference: getTemporalityPreference(\n e['temporality_preference']\n ),\n default_histogram_aggregation: getDefaultHistogramAggregation(\n e['default_histogram_aggregation']\n ),\n },\n };\n }\n break;\n\n case 'console':\n parsedExporter = {\n console: {},\n };\n break;\n }\n\n return parsedExporter;\n}\n\nexport function setMeterProvider(\n config: ConfigurationModel,\n meterProvider: MeterProvider\n): void {\n if (meterProvider && meterProvider.readers?.length > 0) {\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n const exemplarFilter = getStringFromConfigFile(\n meterProvider['exemplar_filter']\n );\n if (exemplarFilter) {\n switch (exemplarFilter) {\n case 'trace_based':\n config.meter_provider.exemplar_filter = ExemplarFilter.TraceBased;\n break;\n case 'always_on':\n config.meter_provider.exemplar_filter = ExemplarFilter.AlwaysOn;\n break;\n case 'always_off':\n config.meter_provider.exemplar_filter = ExemplarFilter.AlwaysOff;\n break;\n default:\n config.meter_provider.exemplar_filter = ExemplarFilter.TraceBased;\n break;\n }\n }\n\n for (let i = 0; i < meterProvider.readers.length; i++) {\n const readerType = Object.keys(meterProvider['readers'][i])[0];\n if (readerType === 'pull') {\n const element = meterProvider['readers'][i]['pull'];\n if (element) {\n const exporter: PullMetricExporter = {\n 'prometheus/development': {\n host:\n getStringFromConfigFile(\n element['exporter']['prometheus/development']['host']\n ) ?? 'localhost',\n port:\n getNumberFromConfigFile(\n element['exporter']['prometheus/development']['port']\n ) ?? 9464,\n without_scope_info:\n getBooleanFromConfigFile(\n element['exporter']['prometheus/development'][\n 'without_scope_info'\n ]\n ) ?? false,\n with_resource_constant_labels: {\n included:\n getStringListFromConfigFile(\n element['exporter']['prometheus/development'][\n 'with_resource_constant_labels'\n ]['included']\n ) ?? [],\n excluded:\n getStringListFromConfigFile(\n element['exporter']['prometheus/development'][\n 'with_resource_constant_labels'\n ]['excluded']\n ) ?? [],\n },\n },\n };\n\n const pullReader: MetricReader = {\n pull: {\n exporter: exporter,\n cardinality_limits: getCardinalityLimits(\n element['cardinality_limits']\n ),\n },\n };\n const p = getProducers(element['producers']);\n if (p.length > 0 && pullReader.pull) {\n pullReader.pull.producers = p;\n }\n config.meter_provider.readers.push(pullReader);\n }\n } else if (readerType === 'periodic') {\n const element = meterProvider['readers'][i]['periodic'];\n if (element) {\n const parsedExporter = parseMetricExporter(element['exporter']);\n\n const periodicReader: MetricReader = {\n periodic: {\n exporter: parsedExporter,\n cardinality_limits: getCardinalityLimits(\n element['cardinality_limits']\n ),\n interval: getNumberFromConfigFile(element['interval']) ?? 60000,\n timeout: getNumberFromConfigFile(element['timeout']) ?? 30000,\n },\n };\n const p = getProducers(element['producers']);\n if (p.length > 0 && periodicReader.periodic) {\n periodicReader.periodic.producers = p;\n }\n config.meter_provider.readers.push(periodicReader);\n }\n }\n }\n\n if (meterProvider['views'] && meterProvider['views'].length > 0) {\n config.meter_provider.views = [];\n for (let j = 0; j < meterProvider['views'].length; j++) {\n const element = meterProvider['views'][j];\n const view: View = {};\n if (element['selector']) {\n const selector: ViewSelector = {};\n const instrumentName = getStringFromConfigFile(\n element['selector']['instrument_name']\n );\n if (instrumentName) {\n selector.instrument_name = instrumentName;\n }\n\n const unit = getStringFromConfigFile(element['selector']['unit']);\n if (unit) {\n selector.unit = unit;\n }\n\n const meterName = getStringFromConfigFile(\n element['selector']['meter_name']\n );\n if (meterName) {\n selector.meter_name = meterName;\n }\n\n const meterVersion = getStringFromConfigFile(\n element['selector']['meter_version']\n );\n if (meterVersion) {\n selector.meter_version = meterVersion;\n }\n\n const meterSchemaUrl = getStringFromConfigFile(\n element['selector']['meter_schema_url']\n );\n if (meterSchemaUrl) {\n selector.meter_schema_url = meterSchemaUrl;\n }\n\n const instrumentType = getStringFromConfigFile(\n element['selector']['instrument_type']\n );\n if (instrumentType) {\n switch (instrumentType) {\n case 'counter':\n selector.instrument_type = InstrumentType.Counter;\n break;\n case 'gauge':\n selector.instrument_type = InstrumentType.Gauge;\n break;\n case 'histogram':\n selector.instrument_type = InstrumentType.Histogram;\n break;\n case 'observable_counter':\n selector.instrument_type = InstrumentType.ObservableCounter;\n break;\n case 'observable_gauge':\n selector.instrument_type = InstrumentType.ObservableGauge;\n break;\n case 'observable_up_down_counter':\n selector.instrument_type =\n InstrumentType.ObservableUpDownCounter;\n break;\n case 'up_down_counter':\n selector.instrument_type = InstrumentType.UpDownCounter;\n break;\n }\n }\n\n if (Object.keys(selector).length > 0) {\n view.selector = selector;\n }\n }\n if (element['stream']) {\n const stream: ViewStream = {};\n const name = getStringFromConfigFile(element['stream']['name']);\n if (name) {\n stream.name = name;\n }\n\n const description = getStringFromConfigFile(\n element['stream']['description']\n );\n if (description) {\n stream.description = description;\n }\n\n const aggregationCardinalityLimit = getNumberFromConfigFile(\n element['stream']['aggregation_cardinality_limit']\n );\n if (aggregationCardinalityLimit) {\n stream.aggregation_cardinality_limit = aggregationCardinalityLimit;\n }\n\n if (element['stream']['attribute_keys']) {\n stream.attribute_keys = {\n included:\n getStringListFromConfigFile(\n element['stream']['attribute_keys']['included']\n ) ?? [],\n excluded:\n getStringListFromConfigFile(\n element['stream']['attribute_keys']['excluded']\n ) ?? [],\n };\n }\n const rawAgg = element['stream']['aggregation'];\n if (rawAgg) {\n const aggregation: Aggregation = {};\n if (rawAgg['default']) {\n aggregation.default = {};\n }\n if (rawAgg['drop']) {\n aggregation.drop = {};\n }\n if (rawAgg['last_value']) {\n aggregation.last_value = {};\n }\n if (rawAgg['sum']) {\n aggregation.sum = {};\n }\n if (rawAgg['explicit_bucket_histogram']) {\n aggregation.explicit_bucket_histogram = {\n boundaries: getNumberListFromConfigFile(\n rawAgg['explicit_bucket_histogram']['boundaries']\n ) ?? [\n 0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000,\n 7500, 10000,\n ],\n record_min_max:\n getBooleanFromConfigFile(\n rawAgg['explicit_bucket_histogram']['record_min_max']\n ) === false\n ? false\n : true,\n };\n }\n if (rawAgg['base2_exponential_bucket_histogram']) {\n aggregation.base2_exponential_bucket_histogram = {\n record_min_max:\n getBooleanFromConfigFile(\n rawAgg['base2_exponential_bucket_histogram'][\n 'record_min_max'\n ]\n ) === false\n ? false\n : true,\n };\n const maxScale = getNumberFromConfigFile(\n rawAgg['base2_exponential_bucket_histogram']['max_scale']\n );\n if (maxScale) {\n aggregation.base2_exponential_bucket_histogram.max_scale =\n maxScale;\n }\n\n const maxSize = getNumberFromConfigFile(\n rawAgg['base2_exponential_bucket_histogram']['max_size']\n );\n if (maxSize) {\n aggregation.base2_exponential_bucket_histogram.max_size =\n maxSize;\n }\n }\n stream.aggregation = aggregation;\n }\n if (Object.keys(stream).length > 0) {\n view.stream = stream;\n }\n }\n config.meter_provider.views.push(view);\n }\n }\n } else if (\n meterProvider &&\n (meterProvider.readers == null || meterProvider.readers.length === 0)\n ) {\n diag.warn('MeterProvider must have at least one reader configured');\n }\n}\n\nexport function setLoggerProvider(\n config: ConfigurationModel,\n loggerProvider: LoggerProvider\n): void {\n if (loggerProvider && loggerProvider.processors?.length > 0) {\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n // Limits\n if (loggerProvider['limits']) {\n const attributeValueLengthLimit = getNumberFromConfigFile(\n loggerProvider['limits']['attribute_value_length_limit']\n );\n const attributeCountLimit = getNumberFromConfigFile(\n loggerProvider['limits']['attribute_count_limit']\n );\n if (attributeValueLengthLimit || attributeCountLimit) {\n if (config.logger_provider.limits == null) {\n config.logger_provider.limits = { attribute_count_limit: 128 };\n }\n if (attributeValueLengthLimit) {\n config.logger_provider.limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n if (attributeCountLimit) {\n config.logger_provider.limits.attribute_count_limit =\n attributeCountLimit;\n }\n }\n }\n\n // Processors\n for (let i = 0; i < loggerProvider['processors'].length; i++) {\n const processorType = Object.keys(loggerProvider['processors'][i])[0];\n if (processorType === 'batch') {\n const element = loggerProvider['processors'][i]['batch'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.LOGGER\n );\n const batchConfig: LogRecordProcessor = {\n batch: {\n schedule_delay:\n getNumberFromConfigFile(element['schedule_delay']) ?? 1000,\n export_timeout:\n getNumberFromConfigFile(element['export_timeout']) ?? 30000,\n max_queue_size:\n getNumberFromConfigFile(element['max_queue_size']) ?? 2048,\n max_export_batch_size:\n getNumberFromConfigFile(element['max_export_batch_size']) ??\n 512,\n exporter: parsedExporter as LogRecordExporter,\n },\n };\n\n config.logger_provider.processors.push(batchConfig);\n }\n } else if (processorType === 'simple') {\n const element = loggerProvider['processors'][i]['simple'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.LOGGER\n );\n const simpleConfig: LogRecordProcessor = {\n simple: {\n exporter: parsedExporter,\n },\n };\n\n config.logger_provider.processors.push(simpleConfig);\n }\n }\n }\n\n // logger_configurator/development\n if (loggerProvider['logger_configurator/development']) {\n const defaultConfigDisabled = getBooleanFromConfigFile(\n loggerProvider['logger_configurator/development']['default_config']?.[\n 'disabled'\n ]\n );\n if (defaultConfigDisabled || defaultConfigDisabled === false) {\n config.logger_provider['logger_configurator/development'] = {\n default_config: {\n disabled: defaultConfigDisabled,\n },\n };\n }\n\n if (\n loggerProvider['logger_configurator/development'].loggers &&\n loggerProvider['logger_configurator/development'].loggers.length > 0\n ) {\n const loggers = [];\n for (\n let i = 0;\n i < loggerProvider['logger_configurator/development'].loggers.length;\n i++\n ) {\n const logger =\n loggerProvider['logger_configurator/development'].loggers[i];\n let disabled = false;\n if (logger['config']) {\n disabled =\n getBooleanFromConfigFile(logger['config']['disabled']) ?? false;\n }\n const name = getStringFromConfigFile(logger['name']);\n if (name) {\n loggers.push({\n name: name,\n config: {\n disabled: disabled,\n },\n });\n }\n }\n if (config.logger_provider['logger_configurator/development'] == null) {\n config.logger_provider['logger_configurator/development'] = {};\n }\n config.logger_provider['logger_configurator/development'].loggers =\n loggers;\n }\n }\n } else if (\n loggerProvider &&\n (loggerProvider.processors == null ||\n loggerProvider.processors.length === 0)\n ) {\n diag.warn('LoggerProvider must have at least one processor configured');\n }\n}\n"]}
1
+ {"version":3,"file":"FileConfigFactory.js","sourceRoot":"","sources":["../../src/FileConfigFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { diagLogLevelFromString, getStringFromEnv } from '@opentelemetry/core';\nimport {\n AttributeLimits,\n Propagator,\n ConfigurationModel,\n initializeDefaultConfiguration,\n} from './models/configModel';\nimport { ConfigFactory } from './IConfigFactory';\nimport * as fs from 'fs';\nimport * as yaml from 'yaml';\nimport {\n getBooleanFromConfigFile,\n getBooleanListFromConfigFile,\n getGrpcTlsConfig,\n getHttpTlsConfig,\n getNumberFromConfigFile,\n getNumberListFromConfigFile,\n getStringFromConfigFile,\n getStringListFromConfigFile,\n} from './utils';\nimport {\n NameStringValuePair,\n OtlpHttpEncoding,\n SeverityNumber,\n} from './models/commonModel';\nimport {\n initializeDefaultTracerProviderConfiguration,\n SpanExporter,\n SpanProcessor,\n TracerProvider,\n} from './models/tracerProviderModel';\nimport {\n ExperimentalLoggerMatcherAndConfig,\n initializeDefaultLoggerProviderConfiguration,\n LoggerProvider,\n LogRecordExporter,\n LogRecordProcessor,\n} from './models/loggerProviderModel';\nimport { AttributeNameValue } from './models/resourceModel';\nimport {\n Aggregation,\n CardinalityLimits,\n ExemplarFilter,\n ExperimentalPrometheusTranslationStrategy,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n initializeDefaultMeterProviderConfiguration,\n InstrumentType,\n MeterProvider,\n MetricProducer,\n MetricReader,\n PullMetricExporter,\n PushMetricExporter,\n View,\n ViewSelector,\n ViewStream,\n} from './models/meterProviderModel';\nimport { diag } from '@opentelemetry/api';\n\nexport class FileConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n parseConfigFile(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nexport function hasValidConfigFile(): boolean {\n const configFile = getStringFromEnv('OTEL_EXPERIMENTAL_CONFIG_FILE');\n if (configFile) {\n if (\n !(configFile.endsWith('.yaml') || configFile.endsWith('.yml')) ||\n !fs.existsSync(configFile)\n ) {\n diag.warn(\n `Config file ${configFile} set on OTEL_EXPERIMENTAL_CONFIG_FILE is not valid`\n );\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport function parseConfigFile(config: ConfigurationModel) {\n const supportedFileVersions = ['1.0-rc.3'];\n const configFile = getStringFromEnv('OTEL_EXPERIMENTAL_CONFIG_FILE') || '';\n const file = fs.readFileSync(configFile, 'utf8');\n const parsedContent = yaml.parse(file);\n\n if (\n parsedContent['file_format'] &&\n supportedFileVersions.includes(parsedContent['file_format'])\n ) {\n const disabled = getBooleanFromConfigFile(parsedContent['disabled']);\n if (disabled !== undefined) {\n config.disabled = disabled;\n }\n\n const logLevel = getNumberFromConfigFile(\n diagLogLevelFromString(parsedContent['log_level'])\n );\n if (logLevel) {\n config.log_level = logLevel;\n }\n\n if (parsedContent['resource']) {\n if (config.resource == null) {\n config.resource = {};\n }\n const schemaUrl = getStringFromConfigFile(\n parsedContent['resource']?.['schema_url']\n );\n if (schemaUrl) {\n config.resource.schema_url = schemaUrl;\n }\n }\n\n setResourceAttributes(\n config,\n parsedContent['resource']?.['attributes'],\n parsedContent['resource']?.['attributes_list']\n );\n setAttributeLimits(config, parsedContent['attribute_limits']);\n setPropagator(config, parsedContent['propagator']);\n setTracerProvider(config, parsedContent['tracer_provider']);\n setMeterProvider(config, parsedContent['meter_provider']);\n setLoggerProvider(config, parsedContent['logger_provider']);\n } else {\n diag.warn(\n `Unsupported File Format: ${parsedContent['file_format']}. It must be one of the following: ${supportedFileVersions}`\n );\n }\n}\n\nexport function setResourceAttributes(\n config: ConfigurationModel,\n attributes: AttributeNameValue[],\n attributeList: string\n) {\n if (attributes || attributeList) {\n const addedKeys = [];\n if (config.resource == null) {\n config.resource = {};\n }\n if (getStringFromConfigFile(attributeList)) {\n config.resource.attributes_list = getStringFromConfigFile(attributeList);\n }\n\n const list = getStringListFromConfigFile(attributeList);\n if ((list && list.length > 0) || (attributes && attributes.length > 0)) {\n config.resource.attributes = [];\n\n if (attributes) {\n for (let i = 0; i < attributes.length; i++) {\n const att = attributes[i];\n let value = att['value'];\n switch (att['type']) {\n case 'bool':\n value = getBooleanFromConfigFile(value);\n break;\n case 'bool_array':\n value = getBooleanListFromConfigFile(value);\n break;\n case 'int':\n case 'double':\n value = getNumberFromConfigFile(value);\n break;\n case 'int_array':\n case 'double_array':\n value = getNumberListFromConfigFile(value);\n break;\n case 'string_array':\n value = getStringListFromConfigFile(value);\n break;\n default:\n value = getStringFromConfigFile(value);\n break;\n }\n\n const key = getStringFromConfigFile(att['name']) ?? '';\n config.resource.attributes.push({\n name: key,\n value: value,\n type: att['type'] ?? 'string',\n });\n addedKeys.push(key);\n }\n }\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (!addedKeys.includes(element[0])) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n }\n }\n}\n\nexport function setAttributeLimits(\n config: ConfigurationModel,\n attrLimits: AttributeLimits\n) {\n if (attrLimits) {\n if (config.attribute_limits == null) {\n config.attribute_limits = {\n attribute_count_limit: 128,\n };\n }\n const lengthLimit = getNumberFromConfigFile(\n attrLimits['attribute_value_length_limit']\n );\n if (lengthLimit) {\n config.attribute_limits.attribute_value_length_limit = lengthLimit;\n }\n const countLimit = getNumberFromConfigFile(\n attrLimits['attribute_count_limit']\n );\n if (countLimit) {\n config.attribute_limits.attribute_count_limit = countLimit;\n }\n }\n}\n\nexport function setPropagator(\n config: ConfigurationModel,\n propagator: Propagator\n): void {\n if (propagator && (propagator.composite || propagator.composite_list)) {\n const auxList = [];\n const composite = [];\n if (propagator.composite) {\n for (let i = 0; i < propagator.composite.length; i++) {\n const key = Object.keys(propagator.composite[i])[0];\n auxList.push(key);\n composite.push({ [key]: null });\n }\n }\n\n const compositeList = getStringListFromConfigFile(\n propagator['composite_list']\n );\n if (compositeList) {\n for (let i = 0; i < compositeList.length; i++) {\n if (!auxList.includes(compositeList[i])) {\n composite.push({ [compositeList[i]]: null });\n }\n }\n }\n if (composite.length > 0) {\n if (config.propagator == null) {\n config.propagator = {};\n }\n config.propagator.composite = composite;\n }\n\n const compositeListString = getStringFromConfigFile(\n propagator['composite_list']\n );\n if (compositeListString) {\n config.propagator!.composite_list = compositeListString;\n } else if (auxList.length > 0) {\n // Generate composite_list from the composite entries\n config.propagator!.composite_list = auxList.join(',');\n }\n }\n}\n\nfunction getConfigHeaders(\n h?: NameStringValuePair[]\n): NameStringValuePair[] | null {\n if (h) {\n const headers: NameStringValuePair[] = [];\n for (let i = 0; i < h.length; i++) {\n const element = h[i];\n headers.push({\n name: element['name'],\n value: element['value'],\n });\n }\n if (headers.length > 0) {\n return headers;\n }\n }\n return null;\n}\n\nenum ProviderType {\n TRACER = 0,\n METER = 1,\n LOGGER = 2,\n}\n\nfunction parseConfigSpanOrLogRecordExporter(\n exporter: SpanExporter | LogRecordExporter,\n providerType: ProviderType\n): SpanExporter | LogRecordExporter {\n const exporterType = Object.keys(exporter)[0];\n let parsedExporter: SpanExporter | LogRecordExporter = {};\n let e;\n let certFile;\n let clientCertFile;\n let clientKeyFile;\n let compression;\n let headers;\n let headersList;\n let insecure;\n let endpoint;\n\n switch (providerType) {\n case ProviderType.TRACER:\n endpoint = 'http://localhost:4318/v1/traces';\n parsedExporter = parsedExporter as SpanExporter;\n break;\n case ProviderType.LOGGER:\n endpoint = 'http://localhost:4318/v1/logs';\n parsedExporter = parsedExporter as LogRecordExporter;\n break;\n }\n\n switch (exporterType) {\n case 'otlp_http':\n e = exporter['otlp_http'];\n if (e) {\n parsedExporter = {\n otlp_http: {\n endpoint: getStringFromConfigFile(e['endpoint']) ?? endpoint,\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n encoding:\n getStringFromConfigFile(e['encoding']) === 'json'\n ? OtlpHttpEncoding.JSON\n : OtlpHttpEncoding.Protobuf,\n },\n };\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers = headers;\n }\n\n if (e['tls']) {\n certFile = getStringFromConfigFile(e['tls']['ca_file']);\n clientCertFile = getStringFromConfigFile(e['tls']['cert_file']);\n clientKeyFile = getStringFromConfigFile(e['tls']['key_file']);\n\n const tls = getHttpTlsConfig(certFile, clientKeyFile, clientCertFile);\n if (tls) {\n parsedExporter.otlp_http!.tls = tls;\n }\n }\n }\n break;\n\n case 'otlp_grpc':\n e = exporter['otlp_grpc'];\n if (e) {\n parsedExporter = {\n otlp_grpc: {\n endpoint:\n getStringFromConfigFile(e['endpoint']) ?? 'http://localhost:4317',\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n },\n };\n\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers = headers;\n }\n\n if (e['tls']) {\n certFile = getStringFromConfigFile(e['tls']['ca_file']);\n clientCertFile = getStringFromConfigFile(e['tls']['cert_file']);\n clientKeyFile = getStringFromConfigFile(e['tls']['key_file']);\n insecure = getBooleanFromConfigFile(e['tls']['insecure']);\n\n const tls = getGrpcTlsConfig(\n certFile,\n clientKeyFile,\n clientCertFile,\n insecure\n );\n if (tls) {\n parsedExporter.otlp_grpc!.tls = tls;\n }\n }\n }\n break;\n\n case 'otlp_file/development':\n e = exporter['otlp_file/development'];\n if (e) {\n parsedExporter = {\n 'otlp_file/development': {\n output_stream:\n getStringFromConfigFile(e['output_stream']) ?? 'stdout',\n },\n };\n }\n break;\n\n case 'console':\n parsedExporter = {\n console: {},\n };\n break;\n }\n\n return parsedExporter;\n}\n\nexport function setTracerProvider(\n config: ConfigurationModel,\n tracerProvider: TracerProvider\n): void {\n if (tracerProvider && tracerProvider.processors?.length > 0) {\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n // Limits\n if (tracerProvider['limits']) {\n const attributeValueLengthLimit = getNumberFromConfigFile(\n tracerProvider['limits']['attribute_value_length_limit']\n );\n\n if (attributeValueLengthLimit) {\n config.tracer_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['attribute_count_limit']\n );\n if (attributeCountLimit) {\n config.tracer_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['event_count_limit']\n );\n if (eventCountLimit) {\n config.tracer_provider.limits!.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['link_count_limit']\n );\n if (linkCountLimit) {\n config.tracer_provider.limits!.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['event_attribute_count_limit']\n );\n if (eventAttributeCountLimit) {\n config.tracer_provider.limits!.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromConfigFile(\n tracerProvider['limits']['link_attribute_count_limit']\n );\n if (linkAttributeCountLimit) {\n config.tracer_provider.limits!.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n }\n\n // Processors\n for (let i = 0; i < tracerProvider['processors'].length; i++) {\n const processorType = Object.keys(tracerProvider['processors'][i])[0];\n if (processorType === 'batch') {\n const element = tracerProvider['processors'][i]['batch'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.TRACER\n );\n const batchConfig: SpanProcessor = {\n batch: {\n schedule_delay:\n getNumberFromConfigFile(element['schedule_delay']) ?? 5000,\n export_timeout:\n getNumberFromConfigFile(element['export_timeout']) ?? 30000,\n max_queue_size:\n getNumberFromConfigFile(element['max_queue_size']) ?? 2048,\n max_export_batch_size:\n getNumberFromConfigFile(element['max_export_batch_size']) ??\n 512,\n exporter: parsedExporter as SpanExporter,\n },\n };\n\n config.tracer_provider.processors.push(batchConfig);\n }\n } else if (processorType === 'simple') {\n const element = tracerProvider['processors'][i]['simple'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.TRACER\n );\n const simpleConfig: SpanProcessor = {\n simple: {\n exporter: parsedExporter as SpanExporter,\n },\n };\n\n config.tracer_provider.processors.push(simpleConfig);\n }\n }\n }\n } else if (\n tracerProvider &&\n (tracerProvider.processors == null ||\n tracerProvider.processors.length === 0)\n ) {\n diag.warn('TracerProvider must have at least one processor configured');\n }\n}\n\nfunction getCardinalityLimits(limits?: CardinalityLimits): CardinalityLimits {\n if (limits == null) {\n limits = {};\n }\n const defaultLimit = getNumberFromConfigFile(limits['default']) ?? 2000;\n\n return {\n default: defaultLimit,\n counter: getNumberFromConfigFile(limits['counter']) ?? defaultLimit,\n gauge: getNumberFromConfigFile(limits['gauge']) ?? defaultLimit,\n histogram: getNumberFromConfigFile(limits['histogram']) ?? defaultLimit,\n observable_counter:\n getNumberFromConfigFile(limits['observable_counter']) ?? defaultLimit,\n observable_gauge:\n getNumberFromConfigFile(limits['observable_gauge']) ?? defaultLimit,\n observable_up_down_counter:\n getNumberFromConfigFile(limits['observable_up_down_counter']) ??\n defaultLimit,\n up_down_counter:\n getNumberFromConfigFile(limits['up_down_counter']) ?? defaultLimit,\n };\n}\n\nfunction getProducers(producers?: MetricProducer[]): MetricProducer[] {\n const parsedProducers: MetricProducer[] = [];\n if (producers) {\n for (let j = 0; j < producers.length; j++) {\n const producer = producers[j];\n if (Object.keys(producer)[0] === 'opencensus') {\n parsedProducers.push({ opencensus: {} });\n }\n }\n }\n\n return parsedProducers;\n}\n\nexport function getTemporalityPreference(\n temporalityPreference?: ExporterTemporalityPreference\n): ExporterTemporalityPreference {\n const temporalityPreferenceType = getStringFromConfigFile(\n temporalityPreference\n );\n switch (temporalityPreferenceType) {\n case 'cumulative':\n return ExporterTemporalityPreference.Cumulative;\n case 'delta':\n return ExporterTemporalityPreference.Delta;\n case 'low_memory':\n return ExporterTemporalityPreference.LowMemory;\n default:\n return ExporterTemporalityPreference.Cumulative;\n }\n}\n\nfunction getDefaultHistogramAggregation(\n defaultHistogramAggregation?: ExporterDefaultHistogramAggregation\n): ExporterDefaultHistogramAggregation {\n const defaultHistogramAggregationType = getStringFromConfigFile(\n defaultHistogramAggregation\n );\n switch (defaultHistogramAggregationType) {\n case 'explicit_bucket_histogram':\n return ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n case 'base2_exponential_bucket_histogram':\n return ExporterDefaultHistogramAggregation.Base2ExponentialBucketHistogram;\n default:\n return ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n }\n}\n\nfunction parseMetricExporter(exporter: PushMetricExporter): PushMetricExporter {\n const exporterType = Object.keys(exporter)[0];\n let parsedExporter: PushMetricExporter = {};\n let e;\n let certFile;\n let clientCertFile;\n let clientKeyFile;\n let compression;\n let headers;\n let headersList;\n let insecure;\n\n switch (exporterType) {\n case 'otlp_http':\n e = exporter['otlp_http'];\n if (e) {\n parsedExporter = {\n otlp_http: {\n endpoint:\n getStringFromConfigFile(e['endpoint']) ??\n 'http://localhost:4318/v1/metrics',\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n encoding:\n getStringFromConfigFile(e['encoding']) === 'json'\n ? OtlpHttpEncoding.JSON\n : OtlpHttpEncoding.Protobuf,\n temporality_preference: getTemporalityPreference(\n e['temporality_preference']\n ),\n default_histogram_aggregation: getDefaultHistogramAggregation(\n e['default_histogram_aggregation']\n ),\n },\n };\n\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_http) {\n parsedExporter.otlp_http.headers = headers;\n }\n\n if (e['tls']) {\n certFile = getStringFromConfigFile(e['tls']['ca_file']);\n clientCertFile = getStringFromConfigFile(e['tls']['cert_file']);\n clientKeyFile = getStringFromConfigFile(e['tls']['key_file']);\n\n const tls = getHttpTlsConfig(certFile, clientKeyFile, clientCertFile);\n if (tls) {\n parsedExporter.otlp_http!.tls = tls;\n }\n }\n }\n break;\n\n case 'otlp_grpc':\n e = exporter['otlp_grpc'];\n if (e) {\n parsedExporter = {\n otlp_grpc: {\n endpoint:\n getStringFromConfigFile(e['endpoint']) ?? 'http://localhost:4317',\n timeout: getNumberFromConfigFile(e['timeout']) ?? 10000,\n temporality_preference: getTemporalityPreference(\n e['temporality_preference']\n ),\n default_histogram_aggregation: getDefaultHistogramAggregation(\n e['default_histogram_aggregation']\n ),\n },\n };\n\n compression = getStringFromConfigFile(e['compression']);\n if (compression && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.compression = compression;\n }\n headersList = getStringFromConfigFile(e['headers_list']);\n if (headersList && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers_list = headersList;\n }\n headers = getConfigHeaders(e['headers']);\n if (headers && parsedExporter.otlp_grpc) {\n parsedExporter.otlp_grpc.headers = headers;\n }\n\n if (e['tls']) {\n certFile = getStringFromConfigFile(e['tls']['ca_file']);\n clientCertFile = getStringFromConfigFile(e['tls']['cert_file']);\n clientKeyFile = getStringFromConfigFile(e['tls']['key_file']);\n insecure = getBooleanFromConfigFile(e['tls']['insecure']);\n\n const tls = getGrpcTlsConfig(\n certFile,\n clientKeyFile,\n clientCertFile,\n insecure\n );\n if (tls) {\n parsedExporter.otlp_grpc!.tls = tls;\n }\n }\n }\n break;\n\n case 'otlp_file/development':\n e = exporter['otlp_file/development'];\n if (e) {\n parsedExporter = {\n 'otlp_file/development': {\n output_stream:\n getStringFromConfigFile(e['output_stream']) ?? 'stdout',\n temporality_preference: getTemporalityPreference(\n e['temporality_preference']\n ),\n default_histogram_aggregation: getDefaultHistogramAggregation(\n e['default_histogram_aggregation']\n ),\n },\n };\n }\n break;\n\n case 'console':\n e = exporter['console'];\n if (e) {\n parsedExporter = {\n console: {\n temporality_preference: getTemporalityPreference(\n e['temporality_preference']\n ),\n default_histogram_aggregation: getDefaultHistogramAggregation(\n e['default_histogram_aggregation']\n ),\n },\n };\n }\n break;\n }\n\n return parsedExporter;\n}\n\nexport function setMeterProvider(\n config: ConfigurationModel,\n meterProvider: MeterProvider\n): void {\n if (meterProvider && meterProvider.readers?.length > 0) {\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n const exemplarFilter = getStringFromConfigFile(\n meterProvider['exemplar_filter']\n );\n if (exemplarFilter) {\n switch (exemplarFilter) {\n case 'trace_based':\n config.meter_provider.exemplar_filter = ExemplarFilter.TraceBased;\n break;\n case 'always_on':\n config.meter_provider.exemplar_filter = ExemplarFilter.AlwaysOn;\n break;\n case 'always_off':\n config.meter_provider.exemplar_filter = ExemplarFilter.AlwaysOff;\n break;\n default:\n config.meter_provider.exemplar_filter = ExemplarFilter.TraceBased;\n break;\n }\n }\n\n for (let i = 0; i < meterProvider.readers.length; i++) {\n const readerType = Object.keys(meterProvider['readers'][i])[0];\n if (readerType === 'pull') {\n const element = meterProvider['readers'][i]['pull'];\n if (element) {\n const exporter: PullMetricExporter = {\n 'prometheus/development': {\n host:\n getStringFromConfigFile(\n element['exporter']['prometheus/development']['host']\n ) ?? 'localhost',\n port:\n getNumberFromConfigFile(\n element['exporter']['prometheus/development']['port']\n ) ?? 9464,\n without_scope_info:\n getBooleanFromConfigFile(\n element['exporter']['prometheus/development'][\n 'without_scope_info'\n ]\n ) ?? false,\n without_target_info:\n getBooleanFromConfigFile(\n element['exporter']['prometheus/development'][\n 'without_target_info'\n ]\n ) ?? false,\n },\n };\n if (\n element['exporter']['prometheus/development'][\n 'with_resource_constant_labels'\n ]\n ) {\n exporter['prometheus/development']!.with_resource_constant_labels =\n {\n included:\n getStringListFromConfigFile(\n element['exporter']['prometheus/development'][\n 'with_resource_constant_labels'\n ]?.['included']\n ) ?? [],\n excluded:\n getStringListFromConfigFile(\n element['exporter']['prometheus/development'][\n 'with_resource_constant_labels'\n ]?.['excluded']\n ) ?? [],\n };\n }\n\n if (\n element['exporter']['prometheus/development'][\n 'translation_strategy'\n ]\n ) {\n const ts = getStringFromConfigFile(\n element['exporter']['prometheus/development'][\n 'translation_strategy'\n ]\n );\n switch (ts) {\n case 'underscore_escaping_with_suffixes':\n exporter['prometheus/development']!.translation_strategy =\n ExperimentalPrometheusTranslationStrategy.UnderscoreEscapingWithSuffixes;\n break;\n case 'underscore_escaping_without_suffixes':\n exporter['prometheus/development']!.translation_strategy =\n ExperimentalPrometheusTranslationStrategy.UnderscoreEscapingWithoutSuffixes;\n break;\n case 'no_utf8_escaping_with_suffixes':\n exporter['prometheus/development']!.translation_strategy =\n ExperimentalPrometheusTranslationStrategy.NoUtf8EscapingWithSuffixes;\n break;\n case 'no_translation':\n exporter['prometheus/development']!.translation_strategy =\n ExperimentalPrometheusTranslationStrategy.NoTranslation;\n break;\n }\n }\n const pullReader: MetricReader = {\n pull: {\n exporter: exporter,\n cardinality_limits: getCardinalityLimits(\n element['cardinality_limits']\n ),\n },\n };\n const p = getProducers(element['producers']);\n if (p.length > 0 && pullReader.pull) {\n pullReader.pull.producers = p;\n }\n config.meter_provider.readers.push(pullReader);\n }\n } else if (readerType === 'periodic') {\n const element = meterProvider['readers'][i]['periodic'];\n if (element) {\n const parsedExporter = parseMetricExporter(element['exporter']);\n\n const periodicReader: MetricReader = {\n periodic: {\n exporter: parsedExporter,\n cardinality_limits: getCardinalityLimits(\n element['cardinality_limits']\n ),\n interval: getNumberFromConfigFile(element['interval']) ?? 60000,\n timeout: getNumberFromConfigFile(element['timeout']) ?? 30000,\n },\n };\n const p = getProducers(element['producers']);\n if (p.length > 0 && periodicReader.periodic) {\n periodicReader.periodic.producers = p;\n }\n config.meter_provider.readers.push(periodicReader);\n }\n }\n }\n\n if (meterProvider['views'] && meterProvider['views'].length > 0) {\n config.meter_provider.views = [];\n for (let j = 0; j < meterProvider['views'].length; j++) {\n const element = meterProvider['views'][j];\n const view: View = {};\n if (element['selector']) {\n const selector: ViewSelector = {};\n const instrumentName = getStringFromConfigFile(\n element['selector']['instrument_name']\n );\n if (instrumentName) {\n selector.instrument_name = instrumentName;\n }\n\n const unit = getStringFromConfigFile(element['selector']['unit']);\n if (unit) {\n selector.unit = unit;\n }\n\n const meterName = getStringFromConfigFile(\n element['selector']['meter_name']\n );\n if (meterName) {\n selector.meter_name = meterName;\n }\n\n const meterVersion = getStringFromConfigFile(\n element['selector']['meter_version']\n );\n if (meterVersion) {\n selector.meter_version = meterVersion;\n }\n\n const meterSchemaUrl = getStringFromConfigFile(\n element['selector']['meter_schema_url']\n );\n if (meterSchemaUrl) {\n selector.meter_schema_url = meterSchemaUrl;\n }\n\n const instrumentType = getStringFromConfigFile(\n element['selector']['instrument_type']\n );\n if (instrumentType) {\n switch (instrumentType) {\n case 'counter':\n selector.instrument_type = InstrumentType.Counter;\n break;\n case 'gauge':\n selector.instrument_type = InstrumentType.Gauge;\n break;\n case 'histogram':\n selector.instrument_type = InstrumentType.Histogram;\n break;\n case 'observable_counter':\n selector.instrument_type = InstrumentType.ObservableCounter;\n break;\n case 'observable_gauge':\n selector.instrument_type = InstrumentType.ObservableGauge;\n break;\n case 'observable_up_down_counter':\n selector.instrument_type =\n InstrumentType.ObservableUpDownCounter;\n break;\n case 'up_down_counter':\n selector.instrument_type = InstrumentType.UpDownCounter;\n break;\n }\n }\n\n if (Object.keys(selector).length > 0) {\n view.selector = selector;\n }\n }\n if (element['stream']) {\n const stream: ViewStream = {};\n const name = getStringFromConfigFile(element['stream']['name']);\n if (name) {\n stream.name = name;\n }\n\n const description = getStringFromConfigFile(\n element['stream']['description']\n );\n if (description) {\n stream.description = description;\n }\n\n const aggregationCardinalityLimit = getNumberFromConfigFile(\n element['stream']['aggregation_cardinality_limit']\n );\n if (aggregationCardinalityLimit) {\n stream.aggregation_cardinality_limit = aggregationCardinalityLimit;\n }\n\n if (element['stream']['attribute_keys']) {\n stream.attribute_keys = {\n included:\n getStringListFromConfigFile(\n element['stream']['attribute_keys']['included']\n ) ?? [],\n excluded:\n getStringListFromConfigFile(\n element['stream']['attribute_keys']['excluded']\n ) ?? [],\n };\n }\n const rawAgg = element['stream']['aggregation'];\n if (rawAgg) {\n const aggregation: Aggregation = {};\n if (rawAgg['default']) {\n aggregation.default = {};\n }\n if (rawAgg['drop']) {\n aggregation.drop = {};\n }\n if (rawAgg['last_value']) {\n aggregation.last_value = {};\n }\n if (rawAgg['sum']) {\n aggregation.sum = {};\n }\n if (rawAgg['explicit_bucket_histogram']) {\n aggregation.explicit_bucket_histogram = {\n boundaries: getNumberListFromConfigFile(\n rawAgg['explicit_bucket_histogram']['boundaries']\n ) ?? [\n 0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000,\n 7500, 10000,\n ],\n record_min_max:\n getBooleanFromConfigFile(\n rawAgg['explicit_bucket_histogram']['record_min_max']\n ) === false\n ? false\n : true,\n };\n }\n if (rawAgg['base2_exponential_bucket_histogram']) {\n aggregation.base2_exponential_bucket_histogram = {\n record_min_max:\n getBooleanFromConfigFile(\n rawAgg['base2_exponential_bucket_histogram'][\n 'record_min_max'\n ]\n ) === false\n ? false\n : true,\n };\n const maxScale = getNumberFromConfigFile(\n rawAgg['base2_exponential_bucket_histogram']['max_scale']\n );\n if (maxScale) {\n aggregation.base2_exponential_bucket_histogram.max_scale =\n maxScale;\n }\n\n const maxSize = getNumberFromConfigFile(\n rawAgg['base2_exponential_bucket_histogram']['max_size']\n );\n if (maxSize) {\n aggregation.base2_exponential_bucket_histogram.max_size =\n maxSize;\n }\n }\n stream.aggregation = aggregation;\n }\n if (Object.keys(stream).length > 0) {\n view.stream = stream;\n }\n }\n config.meter_provider.views.push(view);\n }\n }\n } else if (\n meterProvider &&\n (meterProvider.readers == null || meterProvider.readers.length === 0)\n ) {\n diag.warn('MeterProvider must have at least one reader configured');\n }\n}\n\nexport function getSeverity(\n severity?: SeverityNumber\n): SeverityNumber | undefined {\n const severityType = getStringFromConfigFile(severity);\n switch (severityType) {\n case 'debug':\n return SeverityNumber.DEBUG;\n case 'debug2':\n return SeverityNumber.DEBUG2;\n case 'debug3':\n return SeverityNumber.DEBUG3;\n case 'debug4':\n return SeverityNumber.DEBUG4;\n case 'info':\n return SeverityNumber.INFO;\n case 'info2':\n return SeverityNumber.INFO2;\n case 'info3':\n return SeverityNumber.INFO3;\n case 'info4':\n return SeverityNumber.INFO4;\n case 'warn':\n return SeverityNumber.WARN;\n case 'warn2':\n return SeverityNumber.WARN2;\n case 'warn3':\n return SeverityNumber.WARN3;\n case 'warn4':\n return SeverityNumber.WARN4;\n case 'error':\n return SeverityNumber.ERROR;\n case 'error2':\n return SeverityNumber.ERROR2;\n case 'error3':\n return SeverityNumber.ERROR3;\n case 'error4':\n return SeverityNumber.ERROR4;\n case 'fatal':\n return SeverityNumber.FATAL;\n case 'fatal2':\n return SeverityNumber.FATAL2;\n case 'fatal3':\n return SeverityNumber.FATAL3;\n case 'fatal4':\n return SeverityNumber.FATAL4;\n case 'trace':\n return SeverityNumber.TRACE;\n case 'trace2':\n return SeverityNumber.TRACE2;\n case 'trace3':\n return SeverityNumber.TRACE3;\n case 'trace4':\n return SeverityNumber.TRACE4;\n default:\n return undefined;\n }\n}\n\nexport function setLoggerProvider(\n config: ConfigurationModel,\n loggerProvider: LoggerProvider\n): void {\n if (loggerProvider && loggerProvider.processors?.length > 0) {\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n // Limits\n if (loggerProvider['limits']) {\n const attributeValueLengthLimit = getNumberFromConfigFile(\n loggerProvider['limits']['attribute_value_length_limit']\n );\n const attributeCountLimit = getNumberFromConfigFile(\n loggerProvider['limits']['attribute_count_limit']\n );\n if (attributeValueLengthLimit || attributeCountLimit) {\n if (attributeValueLengthLimit) {\n config.logger_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n if (attributeCountLimit) {\n config.logger_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n }\n }\n\n // Processors\n for (let i = 0; i < loggerProvider['processors'].length; i++) {\n const processorType = Object.keys(loggerProvider['processors'][i])[0];\n if (processorType === 'batch') {\n const element = loggerProvider['processors'][i]['batch'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.LOGGER\n );\n const batchConfig: LogRecordProcessor = {\n batch: {\n schedule_delay:\n getNumberFromConfigFile(element['schedule_delay']) ?? 1000,\n export_timeout:\n getNumberFromConfigFile(element['export_timeout']) ?? 30000,\n max_queue_size:\n getNumberFromConfigFile(element['max_queue_size']) ?? 2048,\n max_export_batch_size:\n getNumberFromConfigFile(element['max_export_batch_size']) ??\n 512,\n exporter: parsedExporter as LogRecordExporter,\n },\n };\n\n config.logger_provider.processors.push(batchConfig);\n }\n } else if (processorType === 'simple') {\n const element = loggerProvider['processors'][i]['simple'];\n if (element) {\n const parsedExporter = parseConfigSpanOrLogRecordExporter(\n element['exporter'],\n ProviderType.LOGGER\n );\n const simpleConfig: LogRecordProcessor = {\n simple: {\n exporter: parsedExporter,\n },\n };\n\n config.logger_provider.processors.push(simpleConfig);\n }\n }\n }\n\n // logger_configurator/development\n if (loggerProvider['logger_configurator/development']) {\n const defaultConfigDisabled = getBooleanFromConfigFile(\n loggerProvider['logger_configurator/development']['default_config']?.[\n 'enabled'\n ]\n );\n if (defaultConfigDisabled || defaultConfigDisabled === false) {\n config.logger_provider['logger_configurator/development'] = {\n default_config: {\n enabled: defaultConfigDisabled,\n },\n };\n }\n\n if (\n loggerProvider['logger_configurator/development'].loggers &&\n loggerProvider['logger_configurator/development'].loggers.length > 0\n ) {\n const loggers = [];\n for (\n let i = 0;\n i < loggerProvider['logger_configurator/development'].loggers.length;\n i++\n ) {\n const logger =\n loggerProvider['logger_configurator/development'].loggers[i];\n let enabled = false;\n let traceBased;\n let minSeverity;\n if (logger['config']) {\n enabled =\n getBooleanFromConfigFile(logger['config']['enabled']) ?? false;\n traceBased = getBooleanFromConfigFile(\n logger['config']['trace_based']\n );\n if (logger['config']['minimum_severity']) {\n minSeverity = getSeverity(logger['config']['minimum_severity']);\n }\n }\n const name = getStringFromConfigFile(logger['name']);\n if (name) {\n const loggerNew: ExperimentalLoggerMatcherAndConfig = {\n name: name,\n config: {\n enabled: enabled,\n },\n };\n if (traceBased !== undefined) {\n loggerNew.config!.trace_based = traceBased;\n }\n if (minSeverity !== undefined) {\n loggerNew.config!.minimum_severity = minSeverity;\n }\n\n loggers.push(loggerNew);\n }\n }\n if (config.logger_provider['logger_configurator/development'] == null) {\n config.logger_provider['logger_configurator/development'] = {};\n }\n config.logger_provider['logger_configurator/development'].loggers =\n loggers;\n }\n }\n } else if (\n loggerProvider &&\n (loggerProvider.processors == null ||\n loggerProvider.processors.length === 0)\n ) {\n diag.warn('LoggerProvider must have at least one processor configured');\n }\n}\n"]}
@@ -29,23 +29,9 @@ export interface OtlpHttpExporter {
29
29
  */
30
30
  endpoint?: string;
31
31
  /**
32
- * Configure certificate used to verify a server's TLS credentials.
33
- * Absolute path to certificate file in PEM format.
34
- * If omitted or null, system default certificate verification is used for secure connections.
35
- */
36
- certificate_file?: string;
37
- /**
38
- * Configure mTLS private client key.
39
- * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
40
- * If omitted or null, mTLS is not used.
41
- */
42
- client_key_file?: string;
43
- /**
44
- * Configure mTLS client certificate.
45
- * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
46
- * If omitted or null, mTLS is not used.
32
+ * Configure TLS settings for the exporter.
47
33
  */
48
- client_certificate_file?: string;
34
+ tls?: HttpTls;
49
35
  /**
50
36
  * Configure compression.
51
37
  * Values include: gzip, none. Implementations may support other compression algorithms.
@@ -87,23 +73,9 @@ export interface OtlpGrpcExporter {
87
73
  */
88
74
  endpoint?: string;
89
75
  /**
90
- * Configure certificate used to verify a server's TLS credentials.
91
- * Absolute path to certificate file in PEM format.
92
- * If omitted or null, system default certificate verification is used for secure connections.
93
- */
94
- certificate_file?: string;
95
- /**
96
- * Configure mTLS private client key.
97
- * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
98
- * If omitted or null, mTLS is not used.
76
+ * Configure TLS settings for the exporter.
99
77
  */
100
- client_key_file?: string;
101
- /**
102
- * Configure mTLS client certificate.
103
- * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
104
- * If omitted or null, mTLS is not used.
105
- */
106
- client_certificate_file?: string;
78
+ tls?: GrpcTls;
107
79
  /**
108
80
  * Configure headers. Entries have higher priority than entries from .headers_list.
109
81
  * If an entry's .value is null, the entry is ignored.
@@ -127,14 +99,8 @@ export interface OtlpGrpcExporter {
127
99
  * If omitted or null, 10000 is used.
128
100
  */
129
101
  timeout?: number;
130
- /**
131
- * Configure client transport security for the exporter's connection.
132
- * Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.
133
- * If omitted or null, false is used.
134
- */
135
- insecure?: boolean;
136
102
  }
137
- export interface OtlpFileExporter {
103
+ export interface ExperimentalOtlpFileExporter {
138
104
  /**
139
105
  * Configure output stream.
140
106
  * Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
@@ -142,4 +108,76 @@ export interface OtlpFileExporter {
142
108
  */
143
109
  output_stream?: string;
144
110
  }
111
+ export interface HttpTls {
112
+ /**
113
+ * Configure certificate used to verify a server's TLS credentials.
114
+ * Absolute path to certificate file in PEM format.
115
+ * If omitted or null, system default certificate verification is used for secure connections.
116
+ */
117
+ ca_file?: string;
118
+ /**
119
+ * Configure mTLS private client key.
120
+ * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
121
+ * If omitted or null, mTLS is not used.
122
+ */
123
+ key_file?: string;
124
+ /**
125
+ * Configure mTLS client certificate.
126
+ * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
127
+ * If omitted or null, mTLS is not used.
128
+ */
129
+ cert_file?: string;
130
+ }
131
+ export interface GrpcTls {
132
+ /**
133
+ * Configure certificate used to verify a server's TLS credentials.
134
+ * Absolute path to certificate file in PEM format.
135
+ * If omitted or null, system default certificate verification is used for secure connections.
136
+ */
137
+ ca_file?: string;
138
+ /**
139
+ * Configure mTLS private client key.
140
+ * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
141
+ * If omitted or null, mTLS is not used.
142
+ */
143
+ key_file?: string;
144
+ /**
145
+ * Configure mTLS client certificate.
146
+ * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
147
+ * If omitted or null, mTLS is not used.
148
+ */
149
+ cert_file?: string;
150
+ /**
151
+ * Configure client transport security for the exporter's connection.
152
+ * Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.
153
+ * If omitted or null, false is used.
154
+ */
155
+ insecure?: boolean;
156
+ }
157
+ export declare enum SeverityNumber {
158
+ DEBUG = "debug",
159
+ DEBUG2 = "debug2",
160
+ DEBUG3 = "debug3",
161
+ DEBUG4 = "debug4",
162
+ ERROR = "error",
163
+ ERROR2 = "error2",
164
+ ERROR3 = "error3",
165
+ ERROR4 = "error4",
166
+ FATAL = "fatal",
167
+ FATAL2 = "fatal2",
168
+ FATAL3 = "fatal3",
169
+ FATAL4 = "fatal4",
170
+ INFO = "info",
171
+ INFO2 = "info2",
172
+ INFO3 = "info3",
173
+ INFO4 = "info4",
174
+ TRACE = "trace",
175
+ TRACE2 = "trace2",
176
+ TRACE3 = "trace3",
177
+ TRACE4 = "trace4",
178
+ WARN = "warn",
179
+ WARN2 = "warn2",
180
+ WARN3 = "warn3",
181
+ WARN4 = "warn4"
182
+ }
145
183
  //# sourceMappingURL=commonModel.d.ts.map
@@ -15,10 +15,37 @@
15
15
  */
16
16
  'use strict';
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.OtlpHttpEncoding = void 0;
18
+ exports.SeverityNumber = exports.OtlpHttpEncoding = void 0;
19
19
  var OtlpHttpEncoding;
20
20
  (function (OtlpHttpEncoding) {
21
21
  OtlpHttpEncoding["JSON"] = "json";
22
22
  OtlpHttpEncoding["Protobuf"] = "protobuf";
23
23
  })(OtlpHttpEncoding = exports.OtlpHttpEncoding || (exports.OtlpHttpEncoding = {}));
24
+ var SeverityNumber;
25
+ (function (SeverityNumber) {
26
+ SeverityNumber["DEBUG"] = "debug";
27
+ SeverityNumber["DEBUG2"] = "debug2";
28
+ SeverityNumber["DEBUG3"] = "debug3";
29
+ SeverityNumber["DEBUG4"] = "debug4";
30
+ SeverityNumber["ERROR"] = "error";
31
+ SeverityNumber["ERROR2"] = "error2";
32
+ SeverityNumber["ERROR3"] = "error3";
33
+ SeverityNumber["ERROR4"] = "error4";
34
+ SeverityNumber["FATAL"] = "fatal";
35
+ SeverityNumber["FATAL2"] = "fatal2";
36
+ SeverityNumber["FATAL3"] = "fatal3";
37
+ SeverityNumber["FATAL4"] = "fatal4";
38
+ SeverityNumber["INFO"] = "info";
39
+ SeverityNumber["INFO2"] = "info2";
40
+ SeverityNumber["INFO3"] = "info3";
41
+ SeverityNumber["INFO4"] = "info4";
42
+ SeverityNumber["TRACE"] = "trace";
43
+ SeverityNumber["TRACE2"] = "trace2";
44
+ SeverityNumber["TRACE3"] = "trace3";
45
+ SeverityNumber["TRACE4"] = "trace4";
46
+ SeverityNumber["WARN"] = "warn";
47
+ SeverityNumber["WARN2"] = "warn2";
48
+ SeverityNumber["WARN3"] = "warn3";
49
+ SeverityNumber["WARN4"] = "warn4";
50
+ })(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));
24
51
  //# sourceMappingURL=commonModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commonModel.js","sourceRoot":"","sources":["../../../src/models/commonModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,YAAY,CAAC;;;AA4Fb,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,yCAAqB,CAAA;AACvB,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nexport interface IncludeExclude {\n /**\n * Configure list of attribute key patterns to include from resource detectors.\n * Attribute keys from resource detectors are evaluated to match as follows:\n * * If the value of the attribute key exactly matches.\n * * If the value of the attribute key matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\n * If omitted, all attributes are included.\n */\n included?: string[];\n\n /**\n * Configure list of attribute key patterns to exclude from resource detectors. Applies after .resource.detectors.attributes.included (i.e. excluded has higher priority than included).\n * Attribute keys from resource detectors are evaluated to match as follows:\n * * If the value of the attribute key exactly matches.\n * * If the value of the attribute key matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\n * If omitted, .included attributes are included.\n */\n excluded?: string[];\n}\n\nexport interface NameStringValuePair {\n name: string;\n value: string;\n}\n\nexport interface OtlpHttpExporter {\n /**\n * Configure endpoint, including the trace, metric or log specific path.\n * If omitted or null, http://localhost:4318/v1/traces is used for trace,\n * http://localhost:4318/v1/metrics for metrics\n * and http://localhost:4318/v1/logs is used for logs.\n */\n endpoint?: string;\n\n /**\n * Configure certificate used to verify a server's TLS credentials.\n * Absolute path to certificate file in PEM format.\n * If omitted or null, system default certificate verification is used for secure connections.\n */\n certificate_file?: string;\n\n /**\n * Configure mTLS private client key.\n * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.\n * If omitted or null, mTLS is not used.\n */\n client_key_file?: string;\n\n /**\n * Configure mTLS client certificate.\n * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.\n * If omitted or null, mTLS is not used.\n */\n client_certificate_file?: string;\n\n /**\n * Configure compression.\n * Values include: gzip, none. Implementations may support other compression algorithms.\n * If omitted or null, none is used.\n */\n compression?: string;\n\n /**\n * Configure max time (in milliseconds) to wait for each export.\n * Value must be non-negative. A value of 0 indicates no limit (infinity).\n * If omitted or null, 10000 is used.\n */\n timeout?: number;\n\n /**\n * Configure headers. Entries have higher priority than entries from .headers_list.\n * If an entry's .value is null, the entry is ignored.\n */\n headers?: NameStringValuePair[];\n\n /**\n * Configure headers. Entries have lower priority than entries from .headers.\n * The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS.\n * If omitted or null, no headers are added.\n */\n headers_list?: string;\n\n /**\n * Configure the encoding used for messages.\n * Values include: protobuf, json. Implementations may not support json.\n * If omitted or null, protobuf is used.\n */\n encoding?: OtlpHttpEncoding;\n}\n\nexport enum OtlpHttpEncoding {\n JSON = 'json',\n Protobuf = 'protobuf',\n}\n\nexport interface OtlpGrpcExporter {\n /**\n * Configure endpoint.\n * If omitted or null, http://localhost:4317 is used.\n */\n endpoint?: string;\n\n /**\n * Configure certificate used to verify a server's TLS credentials.\n * Absolute path to certificate file in PEM format.\n * If omitted or null, system default certificate verification is used for secure connections.\n */\n certificate_file?: string;\n\n /**\n * Configure mTLS private client key.\n * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.\n * If omitted or null, mTLS is not used.\n */\n client_key_file?: string;\n\n /**\n * Configure mTLS client certificate.\n * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.\n * If omitted or null, mTLS is not used.\n */\n client_certificate_file?: string;\n\n /**\n * Configure headers. Entries have higher priority than entries from .headers_list.\n * If an entry's .value is null, the entry is ignored.\n */\n headers?: NameStringValuePair[];\n\n /**\n * Configure headers. Entries have lower priority than entries from .headers.\n * The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS.\n * If omitted or null, no headers are added.\n */\n headers_list?: string;\n\n /**\n * Configure compression.\n * Values include: gzip, none. Implementations may support other compression algorithms.\n * If omitted or null, none is used.\n */\n compression?: string;\n\n /**\n * Configure max time (in milliseconds) to wait for each export.\n * Value must be non-negative. A value of 0 indicates no limit (infinity).\n * If omitted or null, 10000 is used.\n */\n timeout?: number;\n\n /**\n * Configure client transport security for the exporter's connection.\n * Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.\n * If omitted or null, false is used.\n */\n insecure?: boolean;\n}\n\nexport interface OtlpFileExporter {\n /**\n * Configure output stream.\n * Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.\n * If omitted or null, stdout is used.\n */\n output_stream?: string;\n}\n"]}
1
+ {"version":3,"file":"commonModel.js","sourceRoot":"","sources":["../../../src/models/commonModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,YAAY,CAAC;;;AA4Eb,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,yCAAqB,CAAA;AACvB,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B;AAwGD,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,iCAAe,CAAA;AACjB,CAAC,EAzBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAyBzB","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nexport interface IncludeExclude {\n /**\n * Configure list of attribute key patterns to include from resource detectors.\n * Attribute keys from resource detectors are evaluated to match as follows:\n * * If the value of the attribute key exactly matches.\n * * If the value of the attribute key matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\n * If omitted, all attributes are included.\n */\n included?: string[];\n\n /**\n * Configure list of attribute key patterns to exclude from resource detectors. Applies after .resource.detectors.attributes.included (i.e. excluded has higher priority than included).\n * Attribute keys from resource detectors are evaluated to match as follows:\n * * If the value of the attribute key exactly matches.\n * * If the value of the attribute key matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\n * If omitted, .included attributes are included.\n */\n excluded?: string[];\n}\n\nexport interface NameStringValuePair {\n name: string;\n value: string;\n}\n\nexport interface OtlpHttpExporter {\n /**\n * Configure endpoint, including the trace, metric or log specific path.\n * If omitted or null, http://localhost:4318/v1/traces is used for trace,\n * http://localhost:4318/v1/metrics for metrics\n * and http://localhost:4318/v1/logs is used for logs.\n */\n endpoint?: string;\n\n /**\n * Configure TLS settings for the exporter.\n */\n tls?: HttpTls;\n\n /**\n * Configure compression.\n * Values include: gzip, none. Implementations may support other compression algorithms.\n * If omitted or null, none is used.\n */\n compression?: string;\n\n /**\n * Configure max time (in milliseconds) to wait for each export.\n * Value must be non-negative. A value of 0 indicates no limit (infinity).\n * If omitted or null, 10000 is used.\n */\n timeout?: number;\n\n /**\n * Configure headers. Entries have higher priority than entries from .headers_list.\n * If an entry's .value is null, the entry is ignored.\n */\n headers?: NameStringValuePair[];\n\n /**\n * Configure headers. Entries have lower priority than entries from .headers.\n * The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS.\n * If omitted or null, no headers are added.\n */\n headers_list?: string;\n\n /**\n * Configure the encoding used for messages.\n * Values include: protobuf, json. Implementations may not support json.\n * If omitted or null, protobuf is used.\n */\n encoding?: OtlpHttpEncoding;\n}\n\nexport enum OtlpHttpEncoding {\n JSON = 'json',\n Protobuf = 'protobuf',\n}\n\nexport interface OtlpGrpcExporter {\n /**\n * Configure endpoint.\n * If omitted or null, http://localhost:4317 is used.\n */\n endpoint?: string;\n\n /**\n * Configure TLS settings for the exporter.\n */\n tls?: GrpcTls;\n\n /**\n * Configure headers. Entries have higher priority than entries from .headers_list.\n * If an entry's .value is null, the entry is ignored.\n */\n headers?: NameStringValuePair[];\n\n /**\n * Configure headers. Entries have lower priority than entries from .headers.\n * The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS.\n * If omitted or null, no headers are added.\n */\n headers_list?: string;\n\n /**\n * Configure compression.\n * Values include: gzip, none. Implementations may support other compression algorithms.\n * If omitted or null, none is used.\n */\n compression?: string;\n\n /**\n * Configure max time (in milliseconds) to wait for each export.\n * Value must be non-negative. A value of 0 indicates no limit (infinity).\n * If omitted or null, 10000 is used.\n */\n timeout?: number;\n}\n\nexport interface ExperimentalOtlpFileExporter {\n /**\n * Configure output stream.\n * Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.\n * If omitted or null, stdout is used.\n */\n output_stream?: string;\n}\n\nexport interface HttpTls {\n /**\n * Configure certificate used to verify a server's TLS credentials.\n * Absolute path to certificate file in PEM format.\n * If omitted or null, system default certificate verification is used for secure connections.\n */\n ca_file?: string;\n\n /**\n * Configure mTLS private client key.\n * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.\n * If omitted or null, mTLS is not used.\n */\n key_file?: string;\n\n /**\n * Configure mTLS client certificate.\n * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.\n * If omitted or null, mTLS is not used.\n */\n cert_file?: string;\n}\n\nexport interface GrpcTls {\n /**\n * Configure certificate used to verify a server's TLS credentials.\n * Absolute path to certificate file in PEM format.\n * If omitted or null, system default certificate verification is used for secure connections.\n */\n ca_file?: string;\n\n /**\n * Configure mTLS private client key.\n * Absolute path to client key file in PEM format. If set, .client_certificate must also be set.\n * If omitted or null, mTLS is not used.\n */\n key_file?: string;\n\n /**\n * Configure mTLS client certificate.\n * Absolute path to client certificate file in PEM format. If set, .client_key must also be set.\n * If omitted or null, mTLS is not used.\n */\n cert_file?: string;\n\n /**\n * Configure client transport security for the exporter's connection.\n * Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.\n * If omitted or null, false is used.\n */\n insecure?: boolean;\n}\n\nexport enum SeverityNumber {\n DEBUG = 'debug',\n DEBUG2 = 'debug2',\n DEBUG3 = 'debug3',\n DEBUG4 = 'debug4',\n ERROR = 'error',\n ERROR2 = 'error2',\n ERROR3 = 'error3',\n ERROR4 = 'error4',\n FATAL = 'fatal',\n FATAL2 = 'fatal2',\n FATAL3 = 'fatal3',\n FATAL4 = 'fatal4',\n INFO = 'info',\n INFO2 = 'info2',\n INFO3 = 'info3',\n INFO4 = 'info4',\n TRACE = 'trace',\n TRACE2 = 'trace2',\n TRACE3 = 'trace3',\n TRACE4 = 'trace4',\n WARN = 'warn',\n WARN2 = 'warn2',\n WARN3 = 'warn3',\n WARN4 = 'warn4',\n}\n"]}
@@ -25,10 +25,6 @@ function initializeDefaultConfiguration() {
25
25
  attribute_limits: {
26
26
  attribute_count_limit: 128,
27
27
  },
28
- propagator: {
29
- composite: [{ tracecontext: null }, { baggage: null }],
30
- composite_list: 'tracecontext,baggage',
31
- },
32
28
  };
33
29
  return config;
34
30
  }