@opentelemetry/configuration 0.214.0 → 0.216.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.
@@ -0,0 +1,15 @@
1
+ import type { BooleanEnvVar, StringEnvVar } from './EnvReader';
2
+ export declare enum SamplerType {
3
+ AlwaysOn = "always_on",
4
+ AlwaysOff = "always_off",
5
+ TraceIdRatio = "traceidratio",
6
+ ParentBasedAlwaysOn = "parentbased_always_on",
7
+ ParentBasedAlwaysOff = "parentbased_always_off",
8
+ ParentBasedTraceIdRatio = "parentbased_traceidratio"
9
+ }
10
+ export declare const ENV_DEFS: {
11
+ readonly OTEL_SDK_DISABLED: BooleanEnvVar;
12
+ readonly OTEL_TRACES_SAMPLER: StringEnvVar;
13
+ readonly OTEL_TRACES_SAMPLER_ARG: StringEnvVar;
14
+ };
15
+ //# sourceMappingURL=EnvDefinition.d.ts.map
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ENV_DEFS = exports.SamplerType = void 0;
8
+ var SamplerType;
9
+ (function (SamplerType) {
10
+ SamplerType["AlwaysOn"] = "always_on";
11
+ SamplerType["AlwaysOff"] = "always_off";
12
+ SamplerType["TraceIdRatio"] = "traceidratio";
13
+ SamplerType["ParentBasedAlwaysOn"] = "parentbased_always_on";
14
+ SamplerType["ParentBasedAlwaysOff"] = "parentbased_always_off";
15
+ SamplerType["ParentBasedTraceIdRatio"] = "parentbased_traceidratio";
16
+ })(SamplerType = exports.SamplerType || (exports.SamplerType = {}));
17
+ exports.ENV_DEFS = {
18
+ OTEL_SDK_DISABLED: {
19
+ key: 'OTEL_SDK_DISABLED',
20
+ type: 'boolean',
21
+ description: 'Disable the SDK',
22
+ defaultValue: false,
23
+ },
24
+ OTEL_TRACES_SAMPLER: {
25
+ key: 'OTEL_TRACES_SAMPLER',
26
+ type: 'string',
27
+ description: 'Traces sampler',
28
+ allowedValues: Object.values(SamplerType),
29
+ },
30
+ OTEL_TRACES_SAMPLER_ARG: {
31
+ key: 'OTEL_TRACES_SAMPLER_ARG',
32
+ type: 'string',
33
+ description: 'Traces sampler argument',
34
+ },
35
+ };
36
+ //# sourceMappingURL=EnvDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvDefinition.js","sourceRoot":"","sources":["../../src/EnvDefinition.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,qCAAsB,CAAA;IACtB,uCAAwB,CAAA;IACxB,4CAA6B,CAAA;IAC7B,4DAA6C,CAAA;IAC7C,8DAA+C,CAAA;IAC/C,mEAAoD,CAAA;AACtD,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAEY,QAAA,QAAQ,GAAG;IACtB,iBAAiB,EAAE;QACjB,GAAG,EAAE,mBAAmB;QACxB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iBAAiB;QAC9B,YAAY,EAAE,KAAK;KACH;IAElB,mBAAmB,EAAE;QACnB,GAAG,EAAE,qBAAqB;QAC1B,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gBAAgB;QAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;KAC1B;IAEjB,uBAAuB,EAAE;QACvB,GAAG,EAAE,yBAAyB;QAC9B,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,yBAAyB;KACvB;CACT,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { BooleanEnvVar, StringEnvVar } from './EnvReader';\n\nexport enum SamplerType {\n AlwaysOn = 'always_on',\n AlwaysOff = 'always_off',\n TraceIdRatio = 'traceidratio',\n ParentBasedAlwaysOn = 'parentbased_always_on',\n ParentBasedAlwaysOff = 'parentbased_always_off',\n ParentBasedTraceIdRatio = 'parentbased_traceidratio',\n}\n\nexport const ENV_DEFS = {\n OTEL_SDK_DISABLED: {\n key: 'OTEL_SDK_DISABLED',\n type: 'boolean',\n description: 'Disable the SDK',\n defaultValue: false,\n } as BooleanEnvVar,\n\n OTEL_TRACES_SAMPLER: {\n key: 'OTEL_TRACES_SAMPLER',\n type: 'string',\n description: 'Traces sampler',\n allowedValues: Object.values(SamplerType),\n } as StringEnvVar,\n\n OTEL_TRACES_SAMPLER_ARG: {\n key: 'OTEL_TRACES_SAMPLER_ARG',\n type: 'string',\n description: 'Traces sampler argument',\n } as StringEnvVar,\n} as const;\n"]}
@@ -0,0 +1,24 @@
1
+ import { ENV_DEFS } from './EnvDefinition';
2
+ /** Base definition shared by all env var types. */
3
+ interface EnvVarBase<T> {
4
+ key: string;
5
+ description: string;
6
+ defaultValue?: T;
7
+ }
8
+ export interface StringEnvVar extends EnvVarBase<string> {
9
+ type: 'string';
10
+ allowedValues?: readonly string[];
11
+ }
12
+ export interface BooleanEnvVar extends EnvVarBase<boolean> {
13
+ type: 'boolean';
14
+ defaultValue: boolean;
15
+ }
16
+ export type EnvVarDefinition = StringEnvVar | BooleanEnvVar;
17
+ type ResolvedType<D extends EnvVarDefinition> = D extends StringEnvVar ? string | undefined : D extends BooleanEnvVar ? boolean : never;
18
+ export declare function readEnvVar<D extends EnvVarDefinition>(def: D): ResolvedType<D>;
19
+ export type EnvValues = {
20
+ [K in keyof typeof ENV_DEFS]: ResolvedType<(typeof ENV_DEFS)[K]>;
21
+ };
22
+ export declare function readAllEnvVars(): EnvValues;
23
+ export {};
24
+ //# sourceMappingURL=EnvReader.d.ts.map
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright The OpenTelemetry Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.readAllEnvVars = exports.readEnvVar = void 0;
8
+ const api_1 = require("@opentelemetry/api");
9
+ const core_1 = require("@opentelemetry/core");
10
+ const EnvDefinition_1 = require("./EnvDefinition");
11
+ function readStringEnv(def) {
12
+ const value = (0, core_1.getStringFromEnv)(def.key);
13
+ if (value == null) {
14
+ return def.defaultValue;
15
+ }
16
+ if (def.allowedValues && !def.allowedValues.includes(value)) {
17
+ api_1.diag.warn(`Invalid value "${value}" for ${def.description} (env: ${def.key}). ` +
18
+ `Expected one of: ${def.allowedValues.join(', ')}. ` +
19
+ (def.defaultValue != null
20
+ ? `Falling back to "${def.defaultValue}".`
21
+ : 'Value will be ignored.'));
22
+ return def.defaultValue;
23
+ }
24
+ return value;
25
+ }
26
+ function readBooleanEnv(def) {
27
+ const raw = (0, core_1.getStringFromEnv)(def.key)?.trim().toLowerCase();
28
+ // Handle the case where the env var is not set (no warning).
29
+ if (raw == null || raw === '') {
30
+ return def.defaultValue;
31
+ }
32
+ if (raw === 'true') {
33
+ return true;
34
+ }
35
+ if (raw === 'false') {
36
+ return false;
37
+ }
38
+ // If set to an unrecognized value, warn and fall back to the default.
39
+ api_1.diag.warn(`Invalid value "${raw}" for ${def.description} (env: ${def.key}). ` +
40
+ `Expected 'true' or 'false'. Falling back to "${def.defaultValue}".`);
41
+ return def.defaultValue;
42
+ }
43
+ function readEnvVar(def) {
44
+ switch (def.type) {
45
+ case 'string':
46
+ return readStringEnv(def);
47
+ case 'boolean':
48
+ return readBooleanEnv(def);
49
+ }
50
+ }
51
+ exports.readEnvVar = readEnvVar;
52
+ function readAllEnvVars() {
53
+ const result = {};
54
+ for (const [name, def] of Object.entries(EnvDefinition_1.ENV_DEFS)) {
55
+ result[name] = readEnvVar(def);
56
+ }
57
+ return result;
58
+ }
59
+ exports.readAllEnvVars = readAllEnvVars;
60
+ //# sourceMappingURL=EnvReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvReader.js","sourceRoot":"","sources":["../../src/EnvReader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,4CAA0C;AAC1C,8CAAuD;AACvD,mDAA2C;AA2B3C,SAAS,aAAa,CAAC,GAAiB;IACtC,MAAM,KAAK,GAAG,IAAA,uBAAgB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,GAAG,CAAC,YAAY,CAAC;KACzB;IACD,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC3D,UAAI,CAAC,IAAI,CACP,kBAAkB,KAAK,SAAS,GAAG,CAAC,WAAW,UAAU,GAAG,CAAC,GAAG,KAAK;YACnE,oBAAoB,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACpD,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI;gBACvB,CAAC,CAAC,oBAAoB,GAAG,CAAC,YAAY,IAAI;gBAC1C,CAAC,CAAC,wBAAwB,CAAC,CAChC,CAAC;QACF,OAAO,GAAG,CAAC,YAAY,CAAC;KACzB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,GAAkB;IACxC,MAAM,GAAG,GAAG,IAAA,uBAAgB,EAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,6DAA6D;IAC7D,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;QAC7B,OAAO,GAAG,CAAC,YAAY,CAAC;KACzB;IACD,IAAI,GAAG,KAAK,MAAM,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,GAAG,KAAK,OAAO,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IACD,sEAAsE;IACtE,UAAI,CAAC,IAAI,CACP,kBAAkB,GAAG,SAAS,GAAG,CAAC,WAAW,UAAU,GAAG,CAAC,GAAG,KAAK;QACjE,gDAAgD,GAAG,CAAC,YAAY,IAAI,CACvE,CAAC;IACF,OAAO,GAAG,CAAC,YAAY,CAAC;AAC1B,CAAC;AAED,SAAgB,UAAU,CACxB,GAAM;IAEN,QAAQ,GAAG,CAAC,IAAI,EAAE;QAChB,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC,GAAG,CAAoB,CAAC;QAC/C,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC,GAAG,CAAoB,CAAC;KACjD;AACH,CAAC;AATD,gCASC;AAMD,SAAgB,cAAc;IAC5B,MAAM,MAAM,GAAG,EAA6B,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,wBAAQ,CAAC,EAAE;QAClD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;KAChC;IACD,OAAO,MAAmB,CAAC;AAC7B,CAAC;AAND,wCAMC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { diag } from '@opentelemetry/api';\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport { ENV_DEFS } from './EnvDefinition';\n\n/** Base definition shared by all env var types. */\ninterface EnvVarBase<T> {\n key: string;\n description: string;\n defaultValue?: T;\n}\n\nexport interface StringEnvVar extends EnvVarBase<string> {\n type: 'string';\n allowedValues?: readonly string[];\n}\n\nexport interface BooleanEnvVar extends EnvVarBase<boolean> {\n type: 'boolean';\n defaultValue: boolean;\n}\n\nexport type EnvVarDefinition = StringEnvVar | BooleanEnvVar;\n\ntype ResolvedType<D extends EnvVarDefinition> = D extends StringEnvVar\n ? string | undefined\n : D extends BooleanEnvVar\n ? boolean\n : never;\n\nfunction readStringEnv(def: StringEnvVar): string | undefined {\n const value = getStringFromEnv(def.key);\n if (value == null) {\n return def.defaultValue;\n }\n if (def.allowedValues && !def.allowedValues.includes(value)) {\n diag.warn(\n `Invalid value \"${value}\" for ${def.description} (env: ${def.key}). ` +\n `Expected one of: ${def.allowedValues.join(', ')}. ` +\n (def.defaultValue != null\n ? `Falling back to \"${def.defaultValue}\".`\n : 'Value will be ignored.')\n );\n return def.defaultValue;\n }\n return value;\n}\n\nfunction readBooleanEnv(def: BooleanEnvVar): boolean {\n const raw = getStringFromEnv(def.key)?.trim().toLowerCase();\n // Handle the case where the env var is not set (no warning).\n if (raw == null || raw === '') {\n return def.defaultValue;\n }\n if (raw === 'true') {\n return true;\n }\n if (raw === 'false') {\n return false;\n }\n // If set to an unrecognized value, warn and fall back to the default.\n diag.warn(\n `Invalid value \"${raw}\" for ${def.description} (env: ${def.key}). ` +\n `Expected 'true' or 'false'. Falling back to \"${def.defaultValue}\".`\n );\n return def.defaultValue;\n}\n\nexport function readEnvVar<D extends EnvVarDefinition>(\n def: D\n): ResolvedType<D> {\n switch (def.type) {\n case 'string':\n return readStringEnv(def) as ResolvedType<D>;\n case 'boolean':\n return readBooleanEnv(def) as ResolvedType<D>;\n }\n}\n\nexport type EnvValues = {\n [K in keyof typeof ENV_DEFS]: ResolvedType<(typeof ENV_DEFS)[K]>;\n};\n\nexport function readAllEnvVars(): EnvValues {\n const result = {} as Record<string, unknown>;\n for (const [name, def] of Object.entries(ENV_DEFS)) {\n result[name] = readEnvVar(def);\n }\n return result as EnvValues;\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { ConfigurationModel } from './models/configModel';
2
2
  import type { ConfigFactory } from './IConfigFactory';
3
+ import type { EnvValues } from './EnvReader';
3
4
  /**
4
5
  * EnvironmentConfigProvider provides a configuration based on environment variables.
5
6
  */
@@ -11,8 +12,8 @@ export declare class EnvironmentConfigFactory implements ConfigFactory {
11
12
  export declare function setResources(config: ConfigurationModel): void;
12
13
  export declare function setAttributeLimits(config: ConfigurationModel): void;
13
14
  export declare function setPropagators(config: ConfigurationModel): void;
14
- export declare function setSampler(config: ConfigurationModel): void;
15
- export declare function setTracerProvider(config: ConfigurationModel): void;
15
+ export declare function setSampler(config: ConfigurationModel, env: EnvValues): void;
16
+ export declare function setTracerProvider(config: ConfigurationModel, env: EnvValues): void;
16
17
  export declare function setMeterProvider(config: ConfigurationModel): void;
17
18
  export declare function setLoggerProvider(config: ConfigurationModel): void;
18
19
  //# sourceMappingURL=EnvironmentConfigFactory.d.ts.map
@@ -13,6 +13,8 @@ const api_1 = require("@opentelemetry/api");
13
13
  const tracerProviderModel_1 = require("./models/tracerProviderModel");
14
14
  const loggerProviderModel_1 = require("./models/loggerProviderModel");
15
15
  const utils_1 = require("./utils");
16
+ const EnvReader_1 = require("./EnvReader");
17
+ const EnvDefinition_1 = require("./EnvDefinition");
16
18
  /**
17
19
  * EnvironmentConfigProvider provides a configuration based on environment variables.
18
20
  */
@@ -20,7 +22,8 @@ class EnvironmentConfigFactory {
20
22
  _config;
21
23
  constructor() {
22
24
  this._config = (0, configModel_1.initializeDefaultConfiguration)();
23
- this._config.disabled = (0, core_1.getBooleanFromEnv)('OTEL_SDK_DISABLED');
25
+ const envValues = (0, EnvReader_1.readAllEnvVars)();
26
+ this._config.disabled = envValues.OTEL_SDK_DISABLED;
24
27
  const logLevel = (0, core_1.diagLogLevelFromString)((0, core_1.getStringFromEnv)('OTEL_LOG_LEVEL'));
25
28
  if (logLevel) {
26
29
  this._config.log_level = logLevel;
@@ -28,7 +31,7 @@ class EnvironmentConfigFactory {
28
31
  setResources(this._config);
29
32
  setAttributeLimits(this._config);
30
33
  setPropagators(this._config);
31
- setTracerProvider(this._config);
34
+ setTracerProvider(this._config, envValues);
32
35
  setMeterProvider(this._config);
33
36
  setLoggerProvider(this._config);
34
37
  }
@@ -134,47 +137,47 @@ function setPropagators(config) {
134
137
  }
135
138
  }
136
139
  exports.setPropagators = setPropagators;
137
- function setSampler(config) {
138
- const sampler = (0, core_1.getStringFromEnv)('OTEL_TRACES_SAMPLER');
139
- const arg = (0, core_1.getStringFromEnv)('OTEL_TRACES_SAMPLER_ARG');
140
+ function setSampler(config, env) {
141
+ const sampler = env.OTEL_TRACES_SAMPLER;
142
+ const arg = env.OTEL_TRACES_SAMPLER_ARG;
140
143
  if (!sampler || !config.tracer_provider) {
141
144
  return;
142
145
  }
143
146
  const ratio = arg ? parseFloat(arg) : 1.0;
144
147
  switch (sampler) {
145
- case 'always_on':
148
+ case EnvDefinition_1.SamplerType.AlwaysOn:
146
149
  config.tracer_provider.sampler = { always_on: {} };
147
150
  break;
148
- case 'always_off':
151
+ case EnvDefinition_1.SamplerType.AlwaysOff:
149
152
  config.tracer_provider.sampler = { always_off: {} };
150
153
  break;
151
- case 'traceidratio':
154
+ case EnvDefinition_1.SamplerType.TraceIdRatio:
152
155
  config.tracer_provider.sampler = {
153
156
  trace_id_ratio_based: { ratio },
154
157
  };
155
158
  break;
156
- case 'parentbased_always_on':
159
+ case EnvDefinition_1.SamplerType.ParentBasedAlwaysOn:
157
160
  config.tracer_provider.sampler = {
158
161
  parent_based: { root: { always_on: {} } },
159
162
  };
160
163
  break;
161
- case 'parentbased_always_off':
164
+ case EnvDefinition_1.SamplerType.ParentBasedAlwaysOff:
162
165
  config.tracer_provider.sampler = {
163
166
  parent_based: { root: { always_off: {} } },
164
167
  };
165
168
  break;
166
- case 'parentbased_traceidratio':
169
+ case EnvDefinition_1.SamplerType.ParentBasedTraceIdRatio:
167
170
  config.tracer_provider.sampler = {
168
171
  parent_based: { root: { trace_id_ratio_based: { ratio } } },
169
172
  };
170
173
  break;
171
174
  default:
172
- api_1.diag.warn(`Unknown sampler type: ${sampler}`);
175
+ // readEnvVar already warns for invalid values via allowedValues
173
176
  break;
174
177
  }
175
178
  }
176
179
  exports.setSampler = setSampler;
177
- function setTracerProvider(config) {
180
+ function setTracerProvider(config, env) {
178
181
  const exportersType = Array.from(new Set((0, core_1.getStringListFromEnv)('OTEL_TRACES_EXPORTER')));
179
182
  if (exportersType.length === 0) {
180
183
  return;
@@ -184,7 +187,7 @@ function setTracerProvider(config) {
184
187
  return;
185
188
  }
186
189
  config.tracer_provider = (0, tracerProviderModel_1.initializeDefaultTracerProviderConfiguration)();
187
- setSampler(config);
190
+ setSampler(config, env);
188
191
  const attributeValueLengthLimit = (0, core_1.getNumberFromEnv)('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT');
189
192
  if (attributeValueLengthLimit) {
190
193
  config.tracer_provider.limits.attribute_value_length_limit =
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentConfigFactory.js","sourceRoot":"","sources":["../../src/EnvironmentConfigFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ConfigurationModel } from './models/configModel';\nimport { initializeDefaultConfiguration } from './models/configModel';\nimport {\n getBooleanFromEnv,\n getStringFromEnv,\n getStringListFromEnv,\n diagLogLevelFromString,\n getNumberFromEnv,\n} from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport type {\n PeriodicMetricReader,\n PullMetricReader,\n} from './models/meterProviderModel';\nimport {\n ExemplarFilter,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n initializeDefaultMeterProviderConfiguration,\n} from './models/meterProviderModel';\nimport { OtlpHttpEncoding } from './models/commonModel';\nimport { diag } from '@opentelemetry/api';\nimport type { BatchSpanProcessor } from './models/tracerProviderModel';\nimport { initializeDefaultTracerProviderConfiguration } from './models/tracerProviderModel';\nimport type { BatchLogRecordProcessor } from './models/loggerProviderModel';\nimport { initializeDefaultLoggerProviderConfiguration } from './models/loggerProviderModel';\nimport { getGrpcTlsConfig, getHttpTlsConfig } from './utils';\nimport type { ExperimentalResourceDetector } from './models/resourceModel';\n\n/**\n * EnvironmentConfigProvider provides a configuration based on environment variables.\n */\nexport class EnvironmentConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n this._config.disabled = getBooleanFromEnv('OTEL_SDK_DISABLED');\n\n const logLevel = diagLogLevelFromString(getStringFromEnv('OTEL_LOG_LEVEL'));\n if (logLevel) {\n this._config.log_level = logLevel;\n }\n\n setResources(this._config);\n setAttributeLimits(this._config);\n setPropagators(this._config);\n setTracerProvider(this._config);\n setMeterProvider(this._config);\n setLoggerProvider(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nexport function setResources(config: ConfigurationModel): void {\n if (config.resource == null) {\n config.resource = {};\n }\n\n const resourceAttrList = getStringFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const list = getStringListFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const serviceName = getStringFromEnv('OTEL_SERVICE_NAME');\n\n if (serviceName) {\n config.resource.attributes = [\n {\n name: 'service.name',\n value: serviceName,\n type: 'string',\n },\n ];\n }\n if (list && list.length > 0) {\n config.resource.attributes_list = resourceAttrList;\n if (config.resource.attributes == null) {\n config.resource.attributes = [];\n }\n\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (\n element[0] !== 'service.name' ||\n (element[0] === 'service.name' && serviceName === undefined)\n ) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n\n const nodeDetectors = getStringListFromEnv('OTEL_NODE_RESOURCE_DETECTORS');\n if (\n nodeDetectors &&\n nodeDetectors.length > 0 &&\n !nodeDetectors.includes('none')\n ) {\n const all = nodeDetectors.includes('all');\n const detectors: ExperimentalResourceDetector[] = [];\n if (all || nodeDetectors.includes('container'))\n detectors.push({ container: {} });\n if (all || nodeDetectors.includes('host')) detectors.push({ host: {} });\n if (all || nodeDetectors.includes('os')) detectors.push({ os: {} });\n if (all || nodeDetectors.includes('process'))\n detectors.push({ process: {} });\n if (all || nodeDetectors.includes('serviceinstance'))\n detectors.push({ service: {} });\n if (all || nodeDetectors.includes('env')) detectors.push({ env: {} });\n if (detectors.length > 0) {\n if (config.resource['detection/development'] == null) {\n config.resource['detection/development'] = {};\n }\n config.resource['detection/development'].detectors = detectors;\n }\n }\n}\n\nexport function setAttributeLimits(config: ConfigurationModel): void {\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit && attributeValueLengthLimit > 0) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: 128 };\n }\n config.attribute_limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT');\n if (attributeCountLimit) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: attributeCountLimit };\n } else {\n config.attribute_limits.attribute_count_limit = attributeCountLimit;\n }\n }\n}\n\nexport function setPropagators(config: ConfigurationModel): void {\n if (config.propagator == null) {\n config.propagator = {};\n }\n const composite = getStringListFromEnv('OTEL_PROPAGATORS');\n if (composite && composite.length > 0) {\n config.propagator.composite = [];\n for (let i = 0; i < composite.length; i++) {\n config.propagator.composite.push({ [composite[i]]: null });\n }\n }\n const compositeList = getStringFromEnv('OTEL_PROPAGATORS');\n if (compositeList) {\n config.propagator.composite_list = compositeList;\n }\n}\n\nexport function setSampler(config: ConfigurationModel): void {\n const sampler = getStringFromEnv('OTEL_TRACES_SAMPLER');\n const arg = getStringFromEnv('OTEL_TRACES_SAMPLER_ARG');\n\n if (!sampler || !config.tracer_provider) {\n return;\n }\n\n const ratio = arg ? parseFloat(arg) : 1.0;\n\n switch (sampler) {\n case 'always_on':\n config.tracer_provider.sampler = { always_on: {} };\n break;\n\n case 'always_off':\n config.tracer_provider.sampler = { always_off: {} };\n break;\n\n case 'traceidratio':\n config.tracer_provider.sampler = {\n trace_id_ratio_based: { ratio },\n };\n break;\n\n case 'parentbased_always_on':\n config.tracer_provider.sampler = {\n parent_based: { root: { always_on: {} } },\n };\n break;\n\n case 'parentbased_always_off':\n config.tracer_provider.sampler = {\n parent_based: { root: { always_off: {} } },\n };\n break;\n\n case 'parentbased_traceidratio':\n config.tracer_provider.sampler = {\n parent_based: { root: { trace_id_ratio_based: { ratio } } },\n };\n break;\n\n default:\n diag.warn(`Unknown sampler type: ${sampler}`);\n break;\n }\n}\n\nexport function setTracerProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n `OTEL_TRACES_EXPORTER contains \"none\". Tracer provider will not be initialized.`\n );\n return;\n }\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n setSampler(config);\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit) {\n config.tracer_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeCountLimit) {\n config.tracer_provider.limits!.attribute_count_limit = attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT');\n if (eventCountLimit) {\n config.tracer_provider.limits!.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT');\n if (linkCountLimit) {\n config.tracer_provider.limits!.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromEnv(\n 'OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT'\n );\n if (eventAttributeCountLimit) {\n config.tracer_provider.limits!.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromEnv(\n 'OTEL_LINK_ATTRIBUTE_COUNT_LIMIT'\n );\n if (linkAttributeCountLimit) {\n config.tracer_provider.limits!.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n\n const batch: BatchSpanProcessor = { exporter: {} };\n const scheduleDelay = getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000;\n if (scheduleDelay) {\n batch.schedule_delay = scheduleDelay;\n }\n\n const exportTimeout = getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000;\n if (exportTimeout) {\n batch.export_timeout = exportTimeout;\n }\n\n const maxQueueSize = getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048;\n if (maxQueueSize) {\n batch.max_queue_size = maxQueueSize;\n }\n\n const maxExportBatchSize =\n getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512;\n if (maxExportBatchSize) {\n batch.max_export_batch_size = maxExportBatchSize;\n }\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo = { ...batch };\n if (exporterType === 'console') {\n config.tracer_provider.processors.push({\n simple: { exporter: { console: {} } },\n });\n } else {\n // 'otlp' and default\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n delete batchInfo.exporter.otlp_http;\n batchInfo.exporter.otlp_grpc = {};\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317';\n if (endpoint) {\n batchInfo.exporter.otlp_grpc.endpoint = endpoint;\n }\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_grpc.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_grpc.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_grpc.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_grpc.headers_list = headersList;\n }\n } else {\n if (batchInfo.exporter.otlp_http == null) {\n batchInfo.exporter.otlp_http = {};\n }\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/traces`\n : 'http://localhost:4318/v1/traces');\n if (endpoint) {\n batchInfo.exporter.otlp_http.endpoint = endpoint;\n }\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_http.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_http.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_http.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_http.headers_list = headersList;\n }\n if (protocol === 'http/json') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.JSON;\n } else if (protocol === 'http/protobuf') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.Protobuf;\n }\n }\n\n config.tracer_provider.processors.push({ batch: batchInfo });\n }\n }\n}\n\nexport function setMeterProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_METRICS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n `OTEL_METRICS_EXPORTER contains \"none\". Meter provider will not be initialized.`\n );\n return;\n }\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n\n const readerPeriodic: PeriodicMetricReader = { exporter: {} };\n const interval = getNumberFromEnv('OTEL_METRIC_EXPORT_INTERVAL') ?? 60000;\n if (interval) {\n readerPeriodic.interval = interval;\n }\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n if (exporterType === 'prometheus') {\n // Prometheus uses a pull reader\n const pullReader: PullMetricReader = {\n exporter: {\n 'prometheus/development': {\n host:\n getStringFromEnv('OTEL_EXPORTER_PROMETHEUS_HOST') ?? 'localhost',\n port: getNumberFromEnv('OTEL_EXPORTER_PROMETHEUS_PORT') ?? 9464,\n without_scope_info: false,\n without_target_info: false,\n },\n },\n };\n config.meter_provider.readers.push({ pull: pullReader });\n continue;\n }\n\n const readerPeriodicInfo = { ...readerPeriodic };\n const timeout = getNumberFromEnv('OTEL_METRIC_EXPORT_TIMEOUT') ?? 30000;\n if (timeout) {\n readerPeriodicInfo.timeout = timeout;\n }\n\n if (exporterType === 'console') {\n readerPeriodicInfo.exporter = { console: {} };\n } else {\n // 'otlp' and default\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeoutExporter =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_METRICS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n const temporalityPreference =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE') ??\n 'cumulative';\n const defaultHistogramAggregation =\n getStringFromEnv(\n 'OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION'\n ) ?? 'explicit_bucket_histogram';\n\n if (protocol === 'grpc') {\n delete readerPeriodicInfo.exporter.otlp_http;\n readerPeriodicInfo.exporter.otlp_grpc = {};\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317';\n if (endpoint) {\n readerPeriodicInfo.exporter.otlp_grpc.endpoint = endpoint;\n }\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n readerPeriodicInfo.exporter.otlp_grpc.tls = tls;\n }\n if (compression) {\n readerPeriodicInfo.exporter.otlp_grpc.compression = compression;\n }\n if (timeoutExporter) {\n readerPeriodicInfo.exporter.otlp_grpc.timeout = timeoutExporter;\n }\n if (headersList) {\n readerPeriodicInfo.exporter.otlp_grpc.headers_list = headersList;\n }\n if (temporalityPreference) {\n switch (temporalityPreference) {\n case 'cumulative':\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n case 'delta':\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.Delta;\n break;\n case 'low_memory':\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.LowMemory;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n }\n }\n if (defaultHistogramAggregation) {\n switch (defaultHistogramAggregation) {\n case 'explicit_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_grpc.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n case 'base2_exponential_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_grpc.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.Base2ExponentialBucketHistogram;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_grpc.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n }\n }\n } else {\n if (readerPeriodicInfo.exporter.otlp_http == null) {\n readerPeriodicInfo.exporter.otlp_http = {};\n }\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/metrics`\n : 'http://localhost:4318/v1/metrics');\n if (endpoint) {\n readerPeriodicInfo.exporter.otlp_http.endpoint = endpoint;\n }\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n readerPeriodicInfo.exporter.otlp_http.tls = tls;\n }\n if (compression) {\n readerPeriodicInfo.exporter.otlp_http.compression = compression;\n }\n if (timeoutExporter) {\n readerPeriodicInfo.exporter.otlp_http.timeout = timeoutExporter;\n }\n if (headersList) {\n readerPeriodicInfo.exporter.otlp_http.headers_list = headersList;\n }\n if (temporalityPreference) {\n switch (temporalityPreference) {\n case 'cumulative':\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n case 'delta':\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.Delta;\n break;\n case 'low_memory':\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.LowMemory;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n }\n }\n if (defaultHistogramAggregation) {\n switch (defaultHistogramAggregation) {\n case 'explicit_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_http.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n case 'base2_exponential_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_http.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.Base2ExponentialBucketHistogram;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_http.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n }\n }\n if (protocol === 'http/json') {\n readerPeriodicInfo.exporter.otlp_http.encoding =\n OtlpHttpEncoding.JSON;\n } else if (protocol === 'http/protobuf') {\n readerPeriodicInfo.exporter.otlp_http.encoding =\n OtlpHttpEncoding.Protobuf;\n }\n }\n }\n config.meter_provider.readers.push({ periodic: readerPeriodicInfo });\n }\n\n const exemplarFilter =\n getStringFromEnv('OTEL_METRICS_EXEMPLAR_FILTER') ?? 'trace_based';\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\nexport function setLoggerProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_LOGS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n `OTEL_LOGS_EXPORTER contains \"none\". Logger provider will not be initialized.`\n );\n return;\n }\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeValueLengthLimit || attributeCountLimit) {\n if (attributeValueLengthLimit) {\n config.logger_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n if (attributeCountLimit) {\n config.logger_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n }\n\n const batch: BatchLogRecordProcessor = { exporter: {} };\n const scheduleDelay = getNumberFromEnv('OTEL_BLRP_SCHEDULE_DELAY') ?? 1000;\n if (scheduleDelay) {\n batch.schedule_delay = scheduleDelay;\n }\n\n const exportTimeout = getNumberFromEnv('OTEL_BLRP_EXPORT_TIMEOUT') ?? 30000;\n if (exportTimeout) {\n batch.export_timeout = exportTimeout;\n }\n\n const maxQueueSize = getNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE') ?? 2048;\n if (maxQueueSize) {\n batch.max_queue_size = maxQueueSize;\n }\n\n const maxExportBatchSize =\n getNumberFromEnv('OTEL_BLRP_MAX_EXPORT_BATCH_SIZE') ?? 512;\n if (maxExportBatchSize) {\n batch.max_export_batch_size = maxExportBatchSize;\n }\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo = { ...batch };\n if (exporterType === 'console') {\n config.logger_provider.processors.push({\n simple: { exporter: { console: {} } },\n });\n } else {\n // 'otlp' and default\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_LOGS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n delete batchInfo.exporter.otlp_http;\n batchInfo.exporter.otlp_grpc = {};\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317';\n if (endpoint) {\n batchInfo.exporter.otlp_grpc.endpoint = endpoint;\n }\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_grpc.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_grpc.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_grpc.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_grpc.headers_list = headersList;\n }\n } else {\n if (batchInfo.exporter.otlp_http == null) {\n batchInfo.exporter.otlp_http = {};\n }\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/logs`\n : 'http://localhost:4318/v1/logs');\n if (endpoint) {\n batchInfo.exporter.otlp_http.endpoint = endpoint;\n }\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_http.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_http.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_http.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_http.headers_list = headersList;\n }\n\n if (protocol === 'http/json') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.JSON;\n } else if (protocol === 'http/protobuf') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.Protobuf;\n }\n }\n config.logger_provider.processors.push({ batch: batchInfo });\n }\n }\n}\n"]}
1
+ {"version":3,"file":"EnvironmentConfigFactory.js","sourceRoot":"","sources":["../../src/EnvironmentConfigFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ConfigurationModel } from './models/configModel';\nimport { initializeDefaultConfiguration } from './models/configModel';\nimport {\n getStringFromEnv,\n getStringListFromEnv,\n diagLogLevelFromString,\n getNumberFromEnv,\n} from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport type {\n PeriodicMetricReader,\n PullMetricReader,\n} from './models/meterProviderModel';\nimport {\n ExemplarFilter,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n initializeDefaultMeterProviderConfiguration,\n} from './models/meterProviderModel';\nimport { OtlpHttpEncoding } from './models/commonModel';\nimport { diag } from '@opentelemetry/api';\nimport type { BatchSpanProcessor } from './models/tracerProviderModel';\nimport { initializeDefaultTracerProviderConfiguration } from './models/tracerProviderModel';\nimport type { BatchLogRecordProcessor } from './models/loggerProviderModel';\nimport { initializeDefaultLoggerProviderConfiguration } from './models/loggerProviderModel';\nimport { getGrpcTlsConfig, getHttpTlsConfig } from './utils';\nimport type { ExperimentalResourceDetector } from './models/resourceModel';\nimport type { EnvValues } from './EnvReader';\nimport { readAllEnvVars } from './EnvReader';\nimport { SamplerType } from './EnvDefinition';\n\n/**\n * EnvironmentConfigProvider provides a configuration based on environment variables.\n */\nexport class EnvironmentConfigFactory implements ConfigFactory {\n private _config: ConfigurationModel;\n\n constructor() {\n this._config = initializeDefaultConfiguration();\n const envValues = readAllEnvVars();\n this._config.disabled = envValues.OTEL_SDK_DISABLED;\n\n const logLevel = diagLogLevelFromString(getStringFromEnv('OTEL_LOG_LEVEL'));\n if (logLevel) {\n this._config.log_level = logLevel;\n }\n\n setResources(this._config);\n setAttributeLimits(this._config);\n setPropagators(this._config);\n setTracerProvider(this._config, envValues);\n setMeterProvider(this._config);\n setLoggerProvider(this._config);\n }\n\n getConfigModel(): ConfigurationModel {\n return this._config;\n }\n}\n\nexport function setResources(config: ConfigurationModel): void {\n if (config.resource == null) {\n config.resource = {};\n }\n\n const resourceAttrList = getStringFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const list = getStringListFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n const serviceName = getStringFromEnv('OTEL_SERVICE_NAME');\n\n if (serviceName) {\n config.resource.attributes = [\n {\n name: 'service.name',\n value: serviceName,\n type: 'string',\n },\n ];\n }\n if (list && list.length > 0) {\n config.resource.attributes_list = resourceAttrList;\n if (config.resource.attributes == null) {\n config.resource.attributes = [];\n }\n\n for (let i = 0; i < list.length; i++) {\n const element = list[i].split('=');\n if (\n element[0] !== 'service.name' ||\n (element[0] === 'service.name' && serviceName === undefined)\n ) {\n config.resource.attributes.push({\n name: element[0],\n value: element[1],\n type: 'string',\n });\n }\n }\n }\n\n const nodeDetectors = getStringListFromEnv('OTEL_NODE_RESOURCE_DETECTORS');\n if (\n nodeDetectors &&\n nodeDetectors.length > 0 &&\n !nodeDetectors.includes('none')\n ) {\n const all = nodeDetectors.includes('all');\n const detectors: ExperimentalResourceDetector[] = [];\n if (all || nodeDetectors.includes('container'))\n detectors.push({ container: {} });\n if (all || nodeDetectors.includes('host')) detectors.push({ host: {} });\n if (all || nodeDetectors.includes('os')) detectors.push({ os: {} });\n if (all || nodeDetectors.includes('process'))\n detectors.push({ process: {} });\n if (all || nodeDetectors.includes('serviceinstance'))\n detectors.push({ service: {} });\n if (all || nodeDetectors.includes('env')) detectors.push({ env: {} });\n if (detectors.length > 0) {\n if (config.resource['detection/development'] == null) {\n config.resource['detection/development'] = {};\n }\n config.resource['detection/development'].detectors = detectors;\n }\n }\n}\n\nexport function setAttributeLimits(config: ConfigurationModel): void {\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit && attributeValueLengthLimit > 0) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: 128 };\n }\n config.attribute_limits.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT');\n if (attributeCountLimit) {\n if (config.attribute_limits == null) {\n config.attribute_limits = { attribute_count_limit: attributeCountLimit };\n } else {\n config.attribute_limits.attribute_count_limit = attributeCountLimit;\n }\n }\n}\n\nexport function setPropagators(config: ConfigurationModel): void {\n if (config.propagator == null) {\n config.propagator = {};\n }\n const composite = getStringListFromEnv('OTEL_PROPAGATORS');\n if (composite && composite.length > 0) {\n config.propagator.composite = [];\n for (let i = 0; i < composite.length; i++) {\n config.propagator.composite.push({ [composite[i]]: null });\n }\n }\n const compositeList = getStringFromEnv('OTEL_PROPAGATORS');\n if (compositeList) {\n config.propagator.composite_list = compositeList;\n }\n}\n\nexport function setSampler(config: ConfigurationModel, env: EnvValues): void {\n const sampler = env.OTEL_TRACES_SAMPLER;\n const arg = env.OTEL_TRACES_SAMPLER_ARG;\n\n if (!sampler || !config.tracer_provider) {\n return;\n }\n\n const ratio = arg ? parseFloat(arg) : 1.0;\n\n switch (sampler) {\n case SamplerType.AlwaysOn:\n config.tracer_provider.sampler = { always_on: {} };\n break;\n\n case SamplerType.AlwaysOff:\n config.tracer_provider.sampler = { always_off: {} };\n break;\n\n case SamplerType.TraceIdRatio:\n config.tracer_provider.sampler = {\n trace_id_ratio_based: { ratio },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOn:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_on: {} } },\n };\n break;\n\n case SamplerType.ParentBasedAlwaysOff:\n config.tracer_provider.sampler = {\n parent_based: { root: { always_off: {} } },\n };\n break;\n\n case SamplerType.ParentBasedTraceIdRatio:\n config.tracer_provider.sampler = {\n parent_based: { root: { trace_id_ratio_based: { ratio } } },\n };\n break;\n\n default:\n // readEnvVar already warns for invalid values via allowedValues\n break;\n }\n}\n\nexport function setTracerProvider(\n config: ConfigurationModel,\n env: EnvValues\n): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_TRACES_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n `OTEL_TRACES_EXPORTER contains \"none\". Tracer provider will not be initialized.`\n );\n return;\n }\n config.tracer_provider = initializeDefaultTracerProviderConfiguration();\n setSampler(config, env);\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n if (attributeValueLengthLimit) {\n config.tracer_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeCountLimit) {\n config.tracer_provider.limits!.attribute_count_limit = attributeCountLimit;\n }\n\n const eventCountLimit = getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT');\n if (eventCountLimit) {\n config.tracer_provider.limits!.event_count_limit = eventCountLimit;\n }\n\n const linkCountLimit = getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT');\n if (linkCountLimit) {\n config.tracer_provider.limits!.link_count_limit = linkCountLimit;\n }\n\n const eventAttributeCountLimit = getNumberFromEnv(\n 'OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT'\n );\n if (eventAttributeCountLimit) {\n config.tracer_provider.limits!.event_attribute_count_limit =\n eventAttributeCountLimit;\n }\n\n const linkAttributeCountLimit = getNumberFromEnv(\n 'OTEL_LINK_ATTRIBUTE_COUNT_LIMIT'\n );\n if (linkAttributeCountLimit) {\n config.tracer_provider.limits!.link_attribute_count_limit =\n linkAttributeCountLimit;\n }\n\n const batch: BatchSpanProcessor = { exporter: {} };\n const scheduleDelay = getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000;\n if (scheduleDelay) {\n batch.schedule_delay = scheduleDelay;\n }\n\n const exportTimeout = getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000;\n if (exportTimeout) {\n batch.export_timeout = exportTimeout;\n }\n\n const maxQueueSize = getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048;\n if (maxQueueSize) {\n batch.max_queue_size = maxQueueSize;\n }\n\n const maxExportBatchSize =\n getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512;\n if (maxExportBatchSize) {\n batch.max_export_batch_size = maxExportBatchSize;\n }\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo = { ...batch };\n if (exporterType === 'console') {\n config.tracer_provider.processors.push({\n simple: { exporter: { console: {} } },\n });\n } else {\n // 'otlp' and default\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n delete batchInfo.exporter.otlp_http;\n batchInfo.exporter.otlp_grpc = {};\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317';\n if (endpoint) {\n batchInfo.exporter.otlp_grpc.endpoint = endpoint;\n }\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_grpc.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_grpc.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_grpc.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_grpc.headers_list = headersList;\n }\n } else {\n if (batchInfo.exporter.otlp_http == null) {\n batchInfo.exporter.otlp_http = {};\n }\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/traces`\n : 'http://localhost:4318/v1/traces');\n if (endpoint) {\n batchInfo.exporter.otlp_http.endpoint = endpoint;\n }\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_http.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_http.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_http.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_http.headers_list = headersList;\n }\n if (protocol === 'http/json') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.JSON;\n } else if (protocol === 'http/protobuf') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.Protobuf;\n }\n }\n\n config.tracer_provider.processors.push({ batch: batchInfo });\n }\n }\n}\n\nexport function setMeterProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_METRICS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n `OTEL_METRICS_EXPORTER contains \"none\". Meter provider will not be initialized.`\n );\n return;\n }\n config.meter_provider = initializeDefaultMeterProviderConfiguration();\n\n const readerPeriodic: PeriodicMetricReader = { exporter: {} };\n const interval = getNumberFromEnv('OTEL_METRIC_EXPORT_INTERVAL') ?? 60000;\n if (interval) {\n readerPeriodic.interval = interval;\n }\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n if (exporterType === 'prometheus') {\n // Prometheus uses a pull reader\n const pullReader: PullMetricReader = {\n exporter: {\n 'prometheus/development': {\n host:\n getStringFromEnv('OTEL_EXPORTER_PROMETHEUS_HOST') ?? 'localhost',\n port: getNumberFromEnv('OTEL_EXPORTER_PROMETHEUS_PORT') ?? 9464,\n without_scope_info: false,\n without_target_info: false,\n },\n },\n };\n config.meter_provider.readers.push({ pull: pullReader });\n continue;\n }\n\n const readerPeriodicInfo = { ...readerPeriodic };\n const timeout = getNumberFromEnv('OTEL_METRIC_EXPORT_TIMEOUT') ?? 30000;\n if (timeout) {\n readerPeriodicInfo.timeout = timeout;\n }\n\n if (exporterType === 'console') {\n readerPeriodicInfo.exporter = { console: {} };\n } else {\n // 'otlp' and default\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeoutExporter =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_METRICS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n const temporalityPreference =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE') ??\n 'cumulative';\n const defaultHistogramAggregation =\n getStringFromEnv(\n 'OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION'\n ) ?? 'explicit_bucket_histogram';\n\n if (protocol === 'grpc') {\n delete readerPeriodicInfo.exporter.otlp_http;\n readerPeriodicInfo.exporter.otlp_grpc = {};\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317';\n if (endpoint) {\n readerPeriodicInfo.exporter.otlp_grpc.endpoint = endpoint;\n }\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n readerPeriodicInfo.exporter.otlp_grpc.tls = tls;\n }\n if (compression) {\n readerPeriodicInfo.exporter.otlp_grpc.compression = compression;\n }\n if (timeoutExporter) {\n readerPeriodicInfo.exporter.otlp_grpc.timeout = timeoutExporter;\n }\n if (headersList) {\n readerPeriodicInfo.exporter.otlp_grpc.headers_list = headersList;\n }\n if (temporalityPreference) {\n switch (temporalityPreference) {\n case 'cumulative':\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n case 'delta':\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.Delta;\n break;\n case 'low_memory':\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.LowMemory;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_grpc.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n }\n }\n if (defaultHistogramAggregation) {\n switch (defaultHistogramAggregation) {\n case 'explicit_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_grpc.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n case 'base2_exponential_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_grpc.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.Base2ExponentialBucketHistogram;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_grpc.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n }\n }\n } else {\n if (readerPeriodicInfo.exporter.otlp_http == null) {\n readerPeriodicInfo.exporter.otlp_http = {};\n }\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/metrics`\n : 'http://localhost:4318/v1/metrics');\n if (endpoint) {\n readerPeriodicInfo.exporter.otlp_http.endpoint = endpoint;\n }\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n readerPeriodicInfo.exporter.otlp_http.tls = tls;\n }\n if (compression) {\n readerPeriodicInfo.exporter.otlp_http.compression = compression;\n }\n if (timeoutExporter) {\n readerPeriodicInfo.exporter.otlp_http.timeout = timeoutExporter;\n }\n if (headersList) {\n readerPeriodicInfo.exporter.otlp_http.headers_list = headersList;\n }\n if (temporalityPreference) {\n switch (temporalityPreference) {\n case 'cumulative':\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n case 'delta':\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.Delta;\n break;\n case 'low_memory':\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.LowMemory;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_http.temporality_preference =\n ExporterTemporalityPreference.Cumulative;\n break;\n }\n }\n if (defaultHistogramAggregation) {\n switch (defaultHistogramAggregation) {\n case 'explicit_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_http.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n case 'base2_exponential_bucket_histogram':\n readerPeriodicInfo.exporter.otlp_http.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.Base2ExponentialBucketHistogram;\n break;\n default:\n readerPeriodicInfo.exporter.otlp_http.default_histogram_aggregation =\n ExporterDefaultHistogramAggregation.ExplicitBucketHistogram;\n break;\n }\n }\n if (protocol === 'http/json') {\n readerPeriodicInfo.exporter.otlp_http.encoding =\n OtlpHttpEncoding.JSON;\n } else if (protocol === 'http/protobuf') {\n readerPeriodicInfo.exporter.otlp_http.encoding =\n OtlpHttpEncoding.Protobuf;\n }\n }\n }\n config.meter_provider.readers.push({ periodic: readerPeriodicInfo });\n }\n\n const exemplarFilter =\n getStringFromEnv('OTEL_METRICS_EXEMPLAR_FILTER') ?? 'trace_based';\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\nexport function setLoggerProvider(config: ConfigurationModel): void {\n const exportersType = Array.from(\n new Set(getStringListFromEnv('OTEL_LOGS_EXPORTER'))\n );\n if (exportersType.length === 0) {\n return;\n }\n if (exportersType.includes('none')) {\n diag.info(\n `OTEL_LOGS_EXPORTER contains \"none\". Logger provider will not be initialized.`\n );\n return;\n }\n config.logger_provider = initializeDefaultLoggerProviderConfiguration();\n\n const attributeValueLengthLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT'\n );\n const attributeCountLimit = getNumberFromEnv(\n 'OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT'\n );\n if (attributeValueLengthLimit || attributeCountLimit) {\n if (attributeValueLengthLimit) {\n config.logger_provider.limits!.attribute_value_length_limit =\n attributeValueLengthLimit;\n }\n\n if (attributeCountLimit) {\n config.logger_provider.limits!.attribute_count_limit =\n attributeCountLimit;\n }\n }\n\n const batch: BatchLogRecordProcessor = { exporter: {} };\n const scheduleDelay = getNumberFromEnv('OTEL_BLRP_SCHEDULE_DELAY') ?? 1000;\n if (scheduleDelay) {\n batch.schedule_delay = scheduleDelay;\n }\n\n const exportTimeout = getNumberFromEnv('OTEL_BLRP_EXPORT_TIMEOUT') ?? 30000;\n if (exportTimeout) {\n batch.export_timeout = exportTimeout;\n }\n\n const maxQueueSize = getNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE') ?? 2048;\n if (maxQueueSize) {\n batch.max_queue_size = maxQueueSize;\n }\n\n const maxExportBatchSize =\n getNumberFromEnv('OTEL_BLRP_MAX_EXPORT_BATCH_SIZE') ?? 512;\n if (maxExportBatchSize) {\n batch.max_export_batch_size = maxExportBatchSize;\n }\n\n for (let i = 0; i < exportersType.length; i++) {\n const exporterType = exportersType[i];\n const batchInfo = { ...batch };\n if (exporterType === 'console') {\n config.logger_provider.processors.push({\n simple: { exporter: { console: {} } },\n });\n } else {\n // 'otlp' and default\n const protocol =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_PROTOCOL') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_PROTOCOL') ??\n 'http/protobuf';\n const certificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CERTIFICATE');\n const clientKeyFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_KEY');\n const clientCertificateFile =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE');\n const compression =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_COMPRESSION') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_COMPRESSION');\n const timeout =\n getNumberFromEnv('OTEL_EXPORTER_OTLP_LOGS_TIMEOUT') ??\n getNumberFromEnv('OTEL_EXPORTER_OTLP_TIMEOUT') ??\n 10000;\n const headersList =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_HEADERS') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_HEADERS');\n\n if (protocol === 'grpc') {\n delete batchInfo.exporter.otlp_http;\n batchInfo.exporter.otlp_grpc = {};\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT') ??\n 'http://localhost:4317';\n if (endpoint) {\n batchInfo.exporter.otlp_grpc.endpoint = endpoint;\n }\n const tls = getGrpcTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_grpc.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_grpc.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_grpc.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_grpc.headers_list = headersList;\n }\n } else {\n if (batchInfo.exporter.otlp_http == null) {\n batchInfo.exporter.otlp_http = {};\n }\n const endpoint =\n getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??\n (getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')\n ? `${getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT')}/v1/logs`\n : 'http://localhost:4318/v1/logs');\n if (endpoint) {\n batchInfo.exporter.otlp_http.endpoint = endpoint;\n }\n const tls = getHttpTlsConfig(\n certificateFile,\n clientKeyFile,\n clientCertificateFile\n );\n if (tls) {\n batchInfo.exporter.otlp_http.tls = tls;\n }\n if (compression) {\n batchInfo.exporter.otlp_http.compression = compression;\n }\n if (timeout) {\n batchInfo.exporter.otlp_http.timeout = timeout;\n }\n if (headersList) {\n batchInfo.exporter.otlp_http.headers_list = headersList;\n }\n\n if (protocol === 'http/json') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.JSON;\n } else if (protocol === 'http/protobuf') {\n batchInfo.exporter.otlp_http.encoding = OtlpHttpEncoding.Protobuf;\n }\n }\n config.logger_provider.processors.push({ batch: batchInfo });\n }\n }\n}\n"]}
@@ -2,6 +2,7 @@ export type { ConfigFactory } from './IConfigFactory';
2
2
  export type { ConfigurationModel } from './models/configModel';
3
3
  export type { LogRecordExporter as LogRecordExporterConfigModel } from './models/loggerProviderModel';
4
4
  export type { PushMetricExporter as PushMetricExporterConfigModel, InstrumentType as InstrumentTypeConfigModel, Aggregation as AggregationConfigModel, PeriodicMetricReader as PeriodicMetricReaderConfigModel, } from './models/meterProviderModel';
5
- export type { SpanExporter as SpanExporterConfigModel, SpanProcessor as SpanProcessorConfigModel, } from './models/tracerProviderModel';
5
+ export type { Sampler as SamplerConfigModel, SpanExporter as SpanExporterConfigModel, SpanProcessor as SpanProcessorConfigModel, } from './models/tracerProviderModel';
6
+ export type { NameStringValuePair as NameStringValuePairConfigModel, HttpTls as HttpTlsConfigModel, } from './models/commonModel';
6
7
  export { createConfigFactory } from './ConfigFactory';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAeH,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 LogRecordExporterConfigModel } from './models/loggerProviderModel';\nexport type {\n PushMetricExporter as PushMetricExporterConfigModel,\n InstrumentType as InstrumentTypeConfigModel,\n Aggregation as AggregationConfigModel,\n PeriodicMetricReader as PeriodicMetricReaderConfigModel,\n} from './models/meterProviderModel';\nexport type {\n SpanExporter as SpanExporterConfigModel,\n SpanProcessor as SpanProcessorConfigModel,\n} from './models/tracerProviderModel';\nexport { createConfigFactory } from './ConfigFactory';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAoBH,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 LogRecordExporterConfigModel } from './models/loggerProviderModel';\nexport type {\n PushMetricExporter as PushMetricExporterConfigModel,\n InstrumentType as InstrumentTypeConfigModel,\n Aggregation as AggregationConfigModel,\n PeriodicMetricReader as PeriodicMetricReaderConfigModel,\n} from './models/meterProviderModel';\nexport type {\n Sampler as SamplerConfigModel,\n SpanExporter as SpanExporterConfigModel,\n SpanProcessor as SpanProcessorConfigModel,\n} from './models/tracerProviderModel';\nexport type {\n NameStringValuePair as NameStringValuePairConfigModel,\n HttpTls as HttpTlsConfigModel,\n} from './models/commonModel';\nexport { createConfigFactory } from './ConfigFactory';\n"]}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.214.0";
1
+ export declare const VERSION = "0.216.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -6,5 +6,5 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.VERSION = void 0;
8
8
  // this is autogenerated file, see scripts/version-update.js
9
- exports.VERSION = '0.214.0';
9
+ exports.VERSION = '0.216.0';
10
10
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,4DAA4D;AAC/C,QAAA,OAAO,GAAG,SAAS,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.214.0';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,4DAA4D;AAC/C,QAAA,OAAO,GAAG,SAAS,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.216.0';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentelemetry/configuration",
3
- "version": "0.214.0",
3
+ "version": "0.216.0",
4
4
  "description": "OpenTelemetry Configuration",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",
@@ -38,7 +38,7 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "@opentelemetry/core": "2.6.1",
41
+ "@opentelemetry/core": "2.7.1",
42
42
  "yaml": "^2.0.0"
43
43
  },
44
44
  "peerDependencies": {
@@ -57,5 +57,5 @@
57
57
  },
58
58
  "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/configuration",
59
59
  "sideEffects": false,
60
- "gitHead": "7e74509a4d848e94b2970bb5262dd3e8efeed0a2"
60
+ "gitHead": "2400d8389a4469f7a81ccd3be2f0b2c2dd6faaf7"
61
61
  }