@opentelemetry/configuration 0.211.0 → 0.213.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.
- package/build/src/ConfigFactory.js +1 -12
- package/build/src/ConfigFactory.js.map +1 -1
- package/build/src/EnvironmentConfigFactory.js +37 -86
- package/build/src/EnvironmentConfigFactory.js.map +1 -1
- package/build/src/FileConfigFactory.d.ts +2 -0
- package/build/src/FileConfigFactory.js +166 -113
- package/build/src/FileConfigFactory.js.map +1 -1
- package/build/src/IConfigFactory.js +1 -12
- package/build/src/IConfigFactory.js.map +1 -1
- package/build/src/index.js +1 -12
- package/build/src/index.js.map +1 -1
- package/build/src/models/commonModel.d.ts +77 -39
- package/build/src/models/commonModel.js +29 -13
- package/build/src/models/commonModel.js.map +1 -1
- package/build/src/models/configModel.js +1 -16
- package/build/src/models/configModel.js.map +1 -1
- package/build/src/models/loggerProviderModel.d.ts +26 -16
- package/build/src/models/loggerProviderModel.js +2 -12
- package/build/src/models/loggerProviderModel.js.map +1 -1
- package/build/src/models/meterProviderModel.d.ts +39 -50
- package/build/src/models/meterProviderModel.js +10 -13
- package/build/src/models/meterProviderModel.js.map +1 -1
- package/build/src/models/resourceModel.d.ts +4 -4
- package/build/src/models/resourceModel.js +1 -12
- package/build/src/models/resourceModel.js.map +1 -1
- package/build/src/models/tracerProviderModel.d.ts +72 -79
- package/build/src/models/tracerProviderModel.js +1 -12
- package/build/src/models/tracerProviderModel.js.map +1 -1
- package/build/src/utils.d.ts +3 -0
- package/build/src/utils.js +39 -13
- package/build/src/utils.js.map +1 -1
- package/build/src/version.d.ts +1 -1
- package/build/src/version.js +1 -1
- package/build/src/version.js.map +1 -1
- package/package.json +3 -3
|
@@ -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 * SPDX-License-Identifier: Apache-2.0\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"]}
|
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
3
|
* Copyright The OpenTelemetry Authors
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
5
|
*/
|
|
17
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
7
|
//# sourceMappingURL=IConfigFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IConfigFactory.js","sourceRoot":"","sources":["../../src/IConfigFactory.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"IConfigFactory.js","sourceRoot":"","sources":["../../src/IConfigFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ConfigurationModel } from './models/configModel';\n\nexport interface ConfigFactory {\n /**\n * Returns a ConfigurationModel.\n *\n * @returns ConfigurationModel a Configuration Model with all configuration attributes\n */\n getConfigModel(): ConfigurationModel;\n}\n"]}
|
package/build/src/index.js
CHANGED
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
3
|
* Copyright The OpenTelemetry Authors
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
5
|
*/
|
|
17
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
7
|
exports.createConfigFactory = void 0;
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAOH,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type { ConfigFactory } from './IConfigFactory';\nexport type { ConfigurationModel } from './models/configModel';\nexport type { LogRecordExporter as LogRecordExporterModel } from './models/loggerProviderModel';\nexport type { PushMetricExporter as MeterExporterModel } from './models/meterProviderModel';\nexport type { SpanExporter as SpanExporterModel } from './models/tracerProviderModel';\nexport { createConfigFactory } from './ConfigFactory';\n"]}
|
|
@@ -29,23 +29,9 @@ export interface OtlpHttpExporter {
|
|
|
29
29
|
*/
|
|
30
30
|
endpoint?: string;
|
|
31
31
|
/**
|
|
32
|
-
* Configure
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
@@ -1,24 +1,40 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Copyright The OpenTelemetry Authors
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
15
4
|
*/
|
|
16
5
|
'use strict';
|
|
17
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.OtlpHttpEncoding = void 0;
|
|
7
|
+
exports.SeverityNumber = exports.OtlpHttpEncoding = void 0;
|
|
19
8
|
var OtlpHttpEncoding;
|
|
20
9
|
(function (OtlpHttpEncoding) {
|
|
21
10
|
OtlpHttpEncoding["JSON"] = "json";
|
|
22
11
|
OtlpHttpEncoding["Protobuf"] = "protobuf";
|
|
23
12
|
})(OtlpHttpEncoding = exports.OtlpHttpEncoding || (exports.OtlpHttpEncoding = {}));
|
|
13
|
+
var SeverityNumber;
|
|
14
|
+
(function (SeverityNumber) {
|
|
15
|
+
SeverityNumber["DEBUG"] = "debug";
|
|
16
|
+
SeverityNumber["DEBUG2"] = "debug2";
|
|
17
|
+
SeverityNumber["DEBUG3"] = "debug3";
|
|
18
|
+
SeverityNumber["DEBUG4"] = "debug4";
|
|
19
|
+
SeverityNumber["ERROR"] = "error";
|
|
20
|
+
SeverityNumber["ERROR2"] = "error2";
|
|
21
|
+
SeverityNumber["ERROR3"] = "error3";
|
|
22
|
+
SeverityNumber["ERROR4"] = "error4";
|
|
23
|
+
SeverityNumber["FATAL"] = "fatal";
|
|
24
|
+
SeverityNumber["FATAL2"] = "fatal2";
|
|
25
|
+
SeverityNumber["FATAL3"] = "fatal3";
|
|
26
|
+
SeverityNumber["FATAL4"] = "fatal4";
|
|
27
|
+
SeverityNumber["INFO"] = "info";
|
|
28
|
+
SeverityNumber["INFO2"] = "info2";
|
|
29
|
+
SeverityNumber["INFO3"] = "info3";
|
|
30
|
+
SeverityNumber["INFO4"] = "info4";
|
|
31
|
+
SeverityNumber["TRACE"] = "trace";
|
|
32
|
+
SeverityNumber["TRACE2"] = "trace2";
|
|
33
|
+
SeverityNumber["TRACE3"] = "trace3";
|
|
34
|
+
SeverityNumber["TRACE4"] = "trace4";
|
|
35
|
+
SeverityNumber["WARN"] = "warn";
|
|
36
|
+
SeverityNumber["WARN2"] = "warn2";
|
|
37
|
+
SeverityNumber["WARN3"] = "warn3";
|
|
38
|
+
SeverityNumber["WARN4"] = "warn4";
|
|
39
|
+
})(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));
|
|
24
40
|
//# sourceMappingURL=commonModel.js.map
|