@opentelemetry/configuration 0.209.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/LICENSE +201 -0
- package/README.md +35 -0
- package/build/src/ConfigFactory.d.ts +3 -0
- package/build/src/ConfigFactory.js +28 -0
- package/build/src/ConfigFactory.js.map +1 -0
- package/build/src/EnvironmentConfigFactory.d.ts +17 -0
- package/build/src/EnvironmentConfigFactory.js +639 -0
- package/build/src/EnvironmentConfigFactory.js.map +1 -0
- package/build/src/FileConfigFactory.d.ts +21 -0
- package/build/src/FileConfigFactory.js +909 -0
- package/build/src/FileConfigFactory.js.map +1 -0
- package/build/src/IConfigFactory.d.ts +10 -0
- package/build/src/IConfigFactory.js +18 -0
- package/build/src/IConfigFactory.js.map +1 -0
- package/build/src/index.d.ts +7 -0
- package/build/src/index.js +21 -0
- package/build/src/index.js.map +1 -0
- package/build/src/models/commonModel.d.ts +145 -0
- package/build/src/models/commonModel.js +24 -0
- package/build/src/models/commonModel.js.map +1 -0
- package/build/src/models/configModel.d.ts +82 -0
- package/build/src/models/configModel.js +36 -0
- package/build/src/models/configModel.js.map +1 -0
- package/build/src/models/loggerProviderModel.d.ts +124 -0
- package/build/src/models/loggerProviderModel.js +28 -0
- package/build/src/models/loggerProviderModel.js.map +1 -0
- package/build/src/models/meterProviderModel.d.ts +470 -0
- package/build/src/models/meterProviderModel.js +53 -0
- package/build/src/models/meterProviderModel.js.map +1 -0
- package/build/src/models/resourceModel.d.ts +63 -0
- package/build/src/models/resourceModel.js +18 -0
- package/build/src/models/resourceModel.js.map +1 -0
- package/build/src/models/tracerProviderModel.d.ts +177 -0
- package/build/src/models/tracerProviderModel.js +41 -0
- package/build/src/models/tracerProviderModel.js.map +1 -0
- package/build/src/utils.d.ts +66 -0
- package/build/src/utils.js +174 -0
- package/build/src/utils.js.map +1 -0
- package/build/src/version.d.ts +2 -0
- package/build/src/version.js +21 -0
- package/build/src/version.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ConfigurationModel } from './models/configModel';
|
|
2
|
+
export interface ConfigFactory {
|
|
3
|
+
/**
|
|
4
|
+
* Returns a ConfigurationModel.
|
|
5
|
+
*
|
|
6
|
+
* @returns ConfigurationModel a Configuration Model with all configuration attributes
|
|
7
|
+
*/
|
|
8
|
+
getConfigModel(): ConfigurationModel;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=IConfigFactory.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
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.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
//# sourceMappingURL=IConfigFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IConfigFactory.js","sourceRoot":"","sources":["../../src/IConfigFactory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG","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 { 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"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { ConfigFactory } from './IConfigFactory';
|
|
2
|
+
export type { ConfigurationModel } from './models/configModel';
|
|
3
|
+
export type { LogRecordExporter as LogRecordExporterModel } from './models/loggerProviderModel';
|
|
4
|
+
export type { PushMetricExporter as MeterExporterModel } from './models/meterProviderModel';
|
|
5
|
+
export type { SpanExporter as SpanExporterModel } from './models/tracerProviderModel';
|
|
6
|
+
export { createConfigFactory } from './ConfigFactory';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
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.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.createConfigFactory = void 0;
|
|
19
|
+
var ConfigFactory_1 = require("./ConfigFactory");
|
|
20
|
+
Object.defineProperty(exports, "createConfigFactory", { enumerable: true, get: function () { return ConfigFactory_1.createConfigFactory; } });
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAOH,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA","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\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"]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
export interface IncludeExclude {
|
|
2
|
+
/**
|
|
3
|
+
* Configure list of attribute key patterns to include from resource detectors.
|
|
4
|
+
* Attribute keys from resource detectors are evaluated to match as follows:
|
|
5
|
+
* * If the value of the attribute key exactly matches.
|
|
6
|
+
* * If the value of the attribute key matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
|
|
7
|
+
* If omitted, all attributes are included.
|
|
8
|
+
*/
|
|
9
|
+
included?: string[];
|
|
10
|
+
/**
|
|
11
|
+
* 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).
|
|
12
|
+
* Attribute keys from resource detectors are evaluated to match as follows:
|
|
13
|
+
* * If the value of the attribute key exactly matches.
|
|
14
|
+
* * If the value of the attribute key matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
|
|
15
|
+
* If omitted, .included attributes are included.
|
|
16
|
+
*/
|
|
17
|
+
excluded?: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface NameStringValuePair {
|
|
20
|
+
name: string;
|
|
21
|
+
value: string;
|
|
22
|
+
}
|
|
23
|
+
export interface OtlpHttpExporter {
|
|
24
|
+
/**
|
|
25
|
+
* Configure endpoint, including the trace, metric or log specific path.
|
|
26
|
+
* If omitted or null, http://localhost:4318/v1/traces is used for trace,
|
|
27
|
+
* http://localhost:4318/v1/metrics for metrics
|
|
28
|
+
* and http://localhost:4318/v1/logs is used for logs.
|
|
29
|
+
*/
|
|
30
|
+
endpoint?: string;
|
|
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.
|
|
47
|
+
*/
|
|
48
|
+
client_certificate_file?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Configure compression.
|
|
51
|
+
* Values include: gzip, none. Implementations may support other compression algorithms.
|
|
52
|
+
* If omitted or null, none is used.
|
|
53
|
+
*/
|
|
54
|
+
compression?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Configure max time (in milliseconds) to wait for each export.
|
|
57
|
+
* Value must be non-negative. A value of 0 indicates no limit (infinity).
|
|
58
|
+
* If omitted or null, 10000 is used.
|
|
59
|
+
*/
|
|
60
|
+
timeout?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Configure headers. Entries have higher priority than entries from .headers_list.
|
|
63
|
+
* If an entry's .value is null, the entry is ignored.
|
|
64
|
+
*/
|
|
65
|
+
headers?: NameStringValuePair[];
|
|
66
|
+
/**
|
|
67
|
+
* Configure headers. Entries have lower priority than entries from .headers.
|
|
68
|
+
* The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS.
|
|
69
|
+
* If omitted or null, no headers are added.
|
|
70
|
+
*/
|
|
71
|
+
headers_list?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Configure the encoding used for messages.
|
|
74
|
+
* Values include: protobuf, json. Implementations may not support json.
|
|
75
|
+
* If omitted or null, protobuf is used.
|
|
76
|
+
*/
|
|
77
|
+
encoding?: OtlpHttpEncoding;
|
|
78
|
+
}
|
|
79
|
+
export declare enum OtlpHttpEncoding {
|
|
80
|
+
JSON = "json",
|
|
81
|
+
Protobuf = "protobuf"
|
|
82
|
+
}
|
|
83
|
+
export interface OtlpGrpcExporter {
|
|
84
|
+
/**
|
|
85
|
+
* Configure endpoint.
|
|
86
|
+
* If omitted or null, http://localhost:4317 is used.
|
|
87
|
+
*/
|
|
88
|
+
endpoint?: string;
|
|
89
|
+
/**
|
|
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.
|
|
99
|
+
*/
|
|
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;
|
|
107
|
+
/**
|
|
108
|
+
* Configure headers. Entries have higher priority than entries from .headers_list.
|
|
109
|
+
* If an entry's .value is null, the entry is ignored.
|
|
110
|
+
*/
|
|
111
|
+
headers?: NameStringValuePair[];
|
|
112
|
+
/**
|
|
113
|
+
* Configure headers. Entries have lower priority than entries from .headers.
|
|
114
|
+
* The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS.
|
|
115
|
+
* If omitted or null, no headers are added.
|
|
116
|
+
*/
|
|
117
|
+
headers_list?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Configure compression.
|
|
120
|
+
* Values include: gzip, none. Implementations may support other compression algorithms.
|
|
121
|
+
* If omitted or null, none is used.
|
|
122
|
+
*/
|
|
123
|
+
compression?: string;
|
|
124
|
+
/**
|
|
125
|
+
* Configure max time (in milliseconds) to wait for each export.
|
|
126
|
+
* Value must be non-negative. A value of 0 indicates no limit (infinity).
|
|
127
|
+
* If omitted or null, 10000 is used.
|
|
128
|
+
*/
|
|
129
|
+
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
|
+
}
|
|
137
|
+
export interface OtlpFileExporter {
|
|
138
|
+
/**
|
|
139
|
+
* Configure output stream.
|
|
140
|
+
* Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
|
|
141
|
+
* If omitted or null, stdout is used.
|
|
142
|
+
*/
|
|
143
|
+
output_stream?: string;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=commonModel.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
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.
|
|
15
|
+
*/
|
|
16
|
+
'use strict';
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.OtlpHttpEncoding = void 0;
|
|
19
|
+
var OtlpHttpEncoding;
|
|
20
|
+
(function (OtlpHttpEncoding) {
|
|
21
|
+
OtlpHttpEncoding["JSON"] = "json";
|
|
22
|
+
OtlpHttpEncoding["Protobuf"] = "protobuf";
|
|
23
|
+
})(OtlpHttpEncoding = exports.OtlpHttpEncoding || (exports.OtlpHttpEncoding = {}));
|
|
24
|
+
//# sourceMappingURL=commonModel.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { TracerProvider } from './tracerProviderModel';
|
|
2
|
+
import { LoggerProvider } from './loggerProviderModel';
|
|
3
|
+
import { Resource } from './resourceModel';
|
|
4
|
+
import { MeterProvider } from './meterProviderModel';
|
|
5
|
+
export interface ConfigurationModel {
|
|
6
|
+
/**
|
|
7
|
+
* Configure if the SDK is disabled or not.
|
|
8
|
+
* If omitted or null, false is used.
|
|
9
|
+
*/
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Configure the log level of the internal logger used by the SDK.
|
|
13
|
+
* If omitted, info is used.
|
|
14
|
+
*/
|
|
15
|
+
log_level?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Node resource detectors
|
|
18
|
+
* If omitted, all is used.
|
|
19
|
+
*/
|
|
20
|
+
node_resource_detectors?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Configure resource for all signals.
|
|
23
|
+
* If omitted, the default resource is used.
|
|
24
|
+
*/
|
|
25
|
+
resource?: Resource;
|
|
26
|
+
/**
|
|
27
|
+
* Configure general attribute limits.
|
|
28
|
+
* See also tracer_provider.limits, logger_provider.limits.
|
|
29
|
+
*/
|
|
30
|
+
attribute_limits?: AttributeLimits;
|
|
31
|
+
/**
|
|
32
|
+
* Configure text map context propagators.
|
|
33
|
+
*/
|
|
34
|
+
propagator?: Propagator;
|
|
35
|
+
/**
|
|
36
|
+
* Configure tracer provider.
|
|
37
|
+
*/
|
|
38
|
+
tracer_provider?: TracerProvider;
|
|
39
|
+
/**
|
|
40
|
+
* Configure meter provider.
|
|
41
|
+
*/
|
|
42
|
+
meter_provider?: MeterProvider;
|
|
43
|
+
/**
|
|
44
|
+
* Configure logger provider.
|
|
45
|
+
*/
|
|
46
|
+
logger_provider?: LoggerProvider;
|
|
47
|
+
}
|
|
48
|
+
export declare function initializeDefaultConfiguration(): ConfigurationModel;
|
|
49
|
+
export interface AttributeLimits {
|
|
50
|
+
/**
|
|
51
|
+
* Configure max attribute value size.
|
|
52
|
+
* Value must be non-negative.
|
|
53
|
+
* If omitted or null, there is no limit.
|
|
54
|
+
*/
|
|
55
|
+
attribute_value_length_limit?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Configure max attribute count.
|
|
58
|
+
* Value must be non-negative.
|
|
59
|
+
* If omitted or null, 128 is used.
|
|
60
|
+
*/
|
|
61
|
+
attribute_count_limit: number;
|
|
62
|
+
}
|
|
63
|
+
export interface Propagator {
|
|
64
|
+
/**
|
|
65
|
+
* Configure the propagators in the composite text map propagator.
|
|
66
|
+
* Entries from .composite_list are appended to the list here with duplicates filtered out.
|
|
67
|
+
* Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace.
|
|
68
|
+
* Known third party keys include: xray.
|
|
69
|
+
* If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
|
|
70
|
+
*/
|
|
71
|
+
composite?: object[];
|
|
72
|
+
/**
|
|
73
|
+
* Configure the propagators in the composite text map propagator.
|
|
74
|
+
* Entries are appended to .composite with duplicates filtered out.
|
|
75
|
+
* The value is a comma separated list of propagator identifiers matching the format of OTEL_PROPAGATORS.
|
|
76
|
+
* Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace.
|
|
77
|
+
* Known third party identifiers include: xray.
|
|
78
|
+
* If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
|
|
79
|
+
*/
|
|
80
|
+
composite_list?: string;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=configModel.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
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.
|
|
15
|
+
*/
|
|
16
|
+
'use strict';
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.initializeDefaultConfiguration = void 0;
|
|
19
|
+
const api_1 = require("@opentelemetry/api");
|
|
20
|
+
function initializeDefaultConfiguration() {
|
|
21
|
+
const config = {
|
|
22
|
+
disabled: false,
|
|
23
|
+
log_level: api_1.DiagLogLevel.INFO,
|
|
24
|
+
resource: {},
|
|
25
|
+
attribute_limits: {
|
|
26
|
+
attribute_count_limit: 128,
|
|
27
|
+
},
|
|
28
|
+
propagator: {
|
|
29
|
+
composite: [{ tracecontext: null }, { baggage: null }],
|
|
30
|
+
composite_list: 'tracecontext,baggage',
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
return config;
|
|
34
|
+
}
|
|
35
|
+
exports.initializeDefaultConfiguration = initializeDefaultConfiguration;
|
|
36
|
+
//# sourceMappingURL=configModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configModel.js","sourceRoot":"","sources":["../../../src/models/configModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,YAAY,CAAC;;;AAEb,4CAAkD;AA0DlD,SAAgB,8BAA8B;IAC5C,MAAM,MAAM,GAAuB;QACjC,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,kBAAY,CAAC,IAAI;QAC5B,QAAQ,EAAE,EAAE;QACZ,gBAAgB,EAAE;YAChB,qBAAqB,EAAE,GAAG;SAC3B;QACD,UAAU,EAAE;YACV,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACtD,cAAc,EAAE,sBAAsB;SACvC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAfD,wEAeC","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\nimport { DiagLogLevel } from '@opentelemetry/api';\nimport { TracerProvider } from './tracerProviderModel';\nimport { LoggerProvider } from './loggerProviderModel';\nimport { Resource } from './resourceModel';\nimport { MeterProvider } from './meterProviderModel';\n\nexport interface ConfigurationModel {\n /**\n * Configure if the SDK is disabled or not.\n * If omitted or null, false is used.\n */\n disabled?: boolean;\n\n /**\n * Configure the log level of the internal logger used by the SDK.\n * If omitted, info is used.\n */\n log_level?: number;\n\n /**\n * Node resource detectors\n * If omitted, all is used.\n */\n node_resource_detectors?: string[];\n\n /**\n * Configure resource for all signals.\n * If omitted, the default resource is used.\n */\n resource?: Resource;\n\n /**\n * Configure general attribute limits.\n * See also tracer_provider.limits, logger_provider.limits.\n */\n attribute_limits?: AttributeLimits;\n\n /**\n * Configure text map context propagators.\n */\n propagator?: Propagator;\n\n /**\n * Configure tracer provider.\n */\n tracer_provider?: TracerProvider;\n\n /**\n * Configure meter provider.\n */\n meter_provider?: MeterProvider;\n\n /**\n * Configure logger provider.\n */\n logger_provider?: LoggerProvider;\n}\n\nexport function initializeDefaultConfiguration(): ConfigurationModel {\n const config: ConfigurationModel = {\n disabled: false,\n log_level: DiagLogLevel.INFO,\n resource: {},\n attribute_limits: {\n attribute_count_limit: 128,\n },\n propagator: {\n composite: [{ tracecontext: null }, { baggage: null }],\n composite_list: 'tracecontext,baggage',\n },\n };\n\n return config;\n}\nexport interface AttributeLimits {\n /**\n * Configure max attribute value size.\n * Value must be non-negative.\n * If omitted or null, there is no limit.\n */\n attribute_value_length_limit?: number;\n\n /**\n * Configure max attribute count.\n * Value must be non-negative.\n * If omitted or null, 128 is used.\n */\n attribute_count_limit: number;\n}\n\nexport interface Propagator {\n /**\n * Configure the propagators in the composite text map propagator.\n * Entries from .composite_list are appended to the list here with duplicates filtered out.\n * Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace.\n * Known third party keys include: xray.\n * If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.\n */\n composite?: object[];\n\n /**\n * Configure the propagators in the composite text map propagator.\n * Entries are appended to .composite with duplicates filtered out.\n * The value is a comma separated list of propagator identifiers matching the format of OTEL_PROPAGATORS.\n * Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace.\n * Known third party identifiers include: xray.\n * If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.\n */\n composite_list?: string;\n}\n"]}
|