@opentelemetry/configuration 0.213.0 → 0.215.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.
Files changed (34) hide show
  1. package/build/src/ConfigFactory.d.ts +1 -1
  2. package/build/src/ConfigFactory.js.map +1 -1
  3. package/build/src/EnvDefinition.d.ts +15 -0
  4. package/build/src/EnvDefinition.js +36 -0
  5. package/build/src/EnvDefinition.js.map +1 -0
  6. package/build/src/EnvReader.d.ts +24 -0
  7. package/build/src/EnvReader.js +60 -0
  8. package/build/src/EnvReader.js.map +1 -0
  9. package/build/src/EnvironmentConfigFactory.d.ts +5 -3
  10. package/build/src/EnvironmentConfigFactory.js +73 -8
  11. package/build/src/EnvironmentConfigFactory.js.map +1 -1
  12. package/build/src/FileConfigFactory.d.ts +7 -6
  13. package/build/src/FileConfigFactory.js +163 -3
  14. package/build/src/FileConfigFactory.js.map +1 -1
  15. package/build/src/IConfigFactory.d.ts +1 -1
  16. package/build/src/IConfigFactory.js.map +1 -1
  17. package/build/src/index.d.ts +3 -3
  18. package/build/src/index.js.map +1 -1
  19. package/build/src/models/configModel.d.ts +4 -9
  20. package/build/src/models/configModel.js.map +1 -1
  21. package/build/src/models/loggerProviderModel.d.ts +1 -1
  22. package/build/src/models/loggerProviderModel.js.map +1 -1
  23. package/build/src/models/meterProviderModel.d.ts +1 -1
  24. package/build/src/models/meterProviderModel.js.map +1 -1
  25. package/build/src/models/resourceModel.d.ts +14 -5
  26. package/build/src/models/resourceModel.js.map +1 -1
  27. package/build/src/models/tracerProviderModel.d.ts +87 -1
  28. package/build/src/models/tracerProviderModel.js.map +1 -1
  29. package/build/src/utils.d.ts +1 -1
  30. package/build/src/utils.js.map +1 -1
  31. package/build/src/version.d.ts +1 -1
  32. package/build/src/version.js +2 -13
  33. package/build/src/version.js.map +1 -1
  34. package/package.json +3 -3
@@ -1,3 +1,3 @@
1
- import { ConfigFactory } from './IConfigFactory';
1
+ import type { ConfigFactory } from './IConfigFactory';
2
2
  export declare function createConfigFactory(): ConfigFactory;
3
3
  //# sourceMappingURL=ConfigFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigFactory.js","sourceRoot":"","sources":["../../src/ConfigFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,yEAAsE;AACtE,2DAA4E;AAE5E,SAAgB,mBAAmB;IACjC,IAAI,IAAA,sCAAkB,GAAE,EAAE;QACxB,OAAO,IAAI,qCAAiB,EAAE,CAAC;KAChC;IACD,OAAO,IAAI,mDAAwB,EAAE,CAAC;AACxC,CAAC;AALD,kDAKC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ConfigFactory } from './IConfigFactory';\nimport { EnvironmentConfigFactory } from './EnvironmentConfigFactory';\nimport { FileConfigFactory, hasValidConfigFile } from './FileConfigFactory';\n\nexport function createConfigFactory(): ConfigFactory {\n if (hasValidConfigFile()) {\n return new FileConfigFactory();\n }\n return new EnvironmentConfigFactory();\n}\n"]}
1
+ {"version":3,"file":"ConfigFactory.js","sourceRoot":"","sources":["../../src/ConfigFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,yEAAsE;AACtE,2DAA4E;AAE5E,SAAgB,mBAAmB;IACjC,IAAI,IAAA,sCAAkB,GAAE,EAAE;QACxB,OAAO,IAAI,qCAAiB,EAAE,CAAC;KAChC;IACD,OAAO,IAAI,mDAAwB,EAAE,CAAC;AACxC,CAAC;AALD,kDAKC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ConfigFactory } from './IConfigFactory';\nimport { EnvironmentConfigFactory } from './EnvironmentConfigFactory';\nimport { FileConfigFactory, hasValidConfigFile } from './FileConfigFactory';\n\nexport function createConfigFactory(): ConfigFactory {\n if (hasValidConfigFile()) {\n return new FileConfigFactory();\n }\n return new EnvironmentConfigFactory();\n}\n"]}
@@ -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
- import { ConfigurationModel } from './models/configModel';
2
- import { ConfigFactory } from './IConfigFactory';
1
+ import type { ConfigurationModel } from './models/configModel';
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,7 +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 setTracerProvider(config: ConfigurationModel): void;
15
+ export declare function setSampler(config: ConfigurationModel, env: EnvValues): void;
16
+ export declare function setTracerProvider(config: ConfigurationModel, env: EnvValues): void;
15
17
  export declare function setMeterProvider(config: ConfigurationModel): void;
16
18
  export declare function setLoggerProvider(config: ConfigurationModel): void;
17
19
  //# sourceMappingURL=EnvironmentConfigFactory.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.setLoggerProvider = exports.setMeterProvider = exports.setTracerProvider = exports.setPropagators = exports.setAttributeLimits = exports.setResources = exports.EnvironmentConfigFactory = void 0;
7
+ exports.setLoggerProvider = exports.setMeterProvider = exports.setTracerProvider = exports.setSampler = exports.setPropagators = exports.setAttributeLimits = exports.setResources = exports.EnvironmentConfigFactory = void 0;
8
8
  const configModel_1 = require("./models/configModel");
9
9
  const core_1 = require("@opentelemetry/core");
10
10
  const meterProviderModel_1 = require("./models/meterProviderModel");
@@ -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,19 +22,16 @@ 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;
27
30
  }
28
- const nodeResourceDetectors = (0, core_1.getStringListFromEnv)('OTEL_NODE_RESOURCE_DETECTORS');
29
- if (nodeResourceDetectors) {
30
- this._config.node_resource_detectors = nodeResourceDetectors;
31
- }
32
31
  setResources(this._config);
33
32
  setAttributeLimits(this._config);
34
33
  setPropagators(this._config);
35
- setTracerProvider(this._config);
34
+ setTracerProvider(this._config, envValues);
36
35
  setMeterProvider(this._config);
37
36
  setLoggerProvider(this._config);
38
37
  }
@@ -74,6 +73,31 @@ function setResources(config) {
74
73
  }
75
74
  }
76
75
  }
76
+ const nodeDetectors = (0, core_1.getStringListFromEnv)('OTEL_NODE_RESOURCE_DETECTORS');
77
+ if (nodeDetectors &&
78
+ nodeDetectors.length > 0 &&
79
+ !nodeDetectors.includes('none')) {
80
+ const all = nodeDetectors.includes('all');
81
+ const detectors = [];
82
+ if (all || nodeDetectors.includes('container'))
83
+ detectors.push({ container: {} });
84
+ if (all || nodeDetectors.includes('host'))
85
+ detectors.push({ host: {} });
86
+ if (all || nodeDetectors.includes('os'))
87
+ detectors.push({ os: {} });
88
+ if (all || nodeDetectors.includes('process'))
89
+ detectors.push({ process: {} });
90
+ if (all || nodeDetectors.includes('serviceinstance'))
91
+ detectors.push({ service: {} });
92
+ if (all || nodeDetectors.includes('env'))
93
+ detectors.push({ env: {} });
94
+ if (detectors.length > 0) {
95
+ if (config.resource['detection/development'] == null) {
96
+ config.resource['detection/development'] = {};
97
+ }
98
+ config.resource['detection/development'].detectors = detectors;
99
+ }
100
+ }
77
101
  }
78
102
  exports.setResources = setResources;
79
103
  function setAttributeLimits(config) {
@@ -113,7 +137,47 @@ function setPropagators(config) {
113
137
  }
114
138
  }
115
139
  exports.setPropagators = setPropagators;
116
- function setTracerProvider(config) {
140
+ function setSampler(config, env) {
141
+ const sampler = env.OTEL_TRACES_SAMPLER;
142
+ const arg = env.OTEL_TRACES_SAMPLER_ARG;
143
+ if (!sampler || !config.tracer_provider) {
144
+ return;
145
+ }
146
+ const ratio = arg ? parseFloat(arg) : 1.0;
147
+ switch (sampler) {
148
+ case EnvDefinition_1.SamplerType.AlwaysOn:
149
+ config.tracer_provider.sampler = { always_on: {} };
150
+ break;
151
+ case EnvDefinition_1.SamplerType.AlwaysOff:
152
+ config.tracer_provider.sampler = { always_off: {} };
153
+ break;
154
+ case EnvDefinition_1.SamplerType.TraceIdRatio:
155
+ config.tracer_provider.sampler = {
156
+ trace_id_ratio_based: { ratio },
157
+ };
158
+ break;
159
+ case EnvDefinition_1.SamplerType.ParentBasedAlwaysOn:
160
+ config.tracer_provider.sampler = {
161
+ parent_based: { root: { always_on: {} } },
162
+ };
163
+ break;
164
+ case EnvDefinition_1.SamplerType.ParentBasedAlwaysOff:
165
+ config.tracer_provider.sampler = {
166
+ parent_based: { root: { always_off: {} } },
167
+ };
168
+ break;
169
+ case EnvDefinition_1.SamplerType.ParentBasedTraceIdRatio:
170
+ config.tracer_provider.sampler = {
171
+ parent_based: { root: { trace_id_ratio_based: { ratio } } },
172
+ };
173
+ break;
174
+ default:
175
+ // readEnvVar already warns for invalid values via allowedValues
176
+ break;
177
+ }
178
+ }
179
+ exports.setSampler = setSampler;
180
+ function setTracerProvider(config, env) {
117
181
  const exportersType = Array.from(new Set((0, core_1.getStringListFromEnv)('OTEL_TRACES_EXPORTER')));
118
182
  if (exportersType.length === 0) {
119
183
  return;
@@ -123,6 +187,7 @@ function setTracerProvider(config) {
123
187
  return;
124
188
  }
125
189
  config.tracer_provider = (0, tracerProviderModel_1.initializeDefaultTracerProviderConfiguration)();
190
+ setSampler(config, env);
126
191
  const attributeValueLengthLimit = (0, core_1.getNumberFromEnv)('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT');
127
192
  if (attributeValueLengthLimit) {
128
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 {\n ConfigurationModel,\n initializeDefaultConfiguration,\n} from './models/configModel';\nimport {\n getBooleanFromEnv,\n getStringFromEnv,\n getStringListFromEnv,\n diagLogLevelFromString,\n getNumberFromEnv,\n} from '@opentelemetry/core';\nimport { ConfigFactory } from './IConfigFactory';\nimport {\n ExemplarFilter,\n ExporterDefaultHistogramAggregation,\n ExporterTemporalityPreference,\n initializeDefaultMeterProviderConfiguration,\n PeriodicMetricReader,\n PullMetricReader,\n} from './models/meterProviderModel';\nimport { OtlpHttpEncoding } from './models/commonModel';\nimport { diag } from '@opentelemetry/api';\nimport {\n BatchSpanProcessor,\n initializeDefaultTracerProviderConfiguration,\n} from './models/tracerProviderModel';\nimport {\n BatchLogRecordProcessor,\n initializeDefaultLoggerProviderConfiguration,\n} from './models/loggerProviderModel';\nimport { getGrpcTlsConfig, getHttpTlsConfig } from './utils';\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 const nodeResourceDetectors = getStringListFromEnv(\n 'OTEL_NODE_RESOURCE_DETECTORS'\n );\n if (nodeResourceDetectors) {\n this._config.node_resource_detectors = nodeResourceDetectors;\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\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 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\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"]}
@@ -1,10 +1,11 @@
1
- import { AttributeLimits, Propagator, ConfigurationModel } from './models/configModel';
2
- import { ConfigFactory } from './IConfigFactory';
1
+ import type { AttributeLimits, Propagator, ConfigurationModel } from './models/configModel';
2
+ import type { ConfigFactory } from './IConfigFactory';
3
3
  import { SeverityNumber } from './models/commonModel';
4
- import { TracerProvider } from './models/tracerProviderModel';
5
- import { LoggerProvider } from './models/loggerProviderModel';
6
- import { AttributeNameValue } from './models/resourceModel';
7
- import { ExporterTemporalityPreference, MeterProvider } from './models/meterProviderModel';
4
+ import type { TracerProvider } from './models/tracerProviderModel';
5
+ import type { LoggerProvider } from './models/loggerProviderModel';
6
+ import type { AttributeNameValue } from './models/resourceModel';
7
+ import type { MeterProvider } from './models/meterProviderModel';
8
+ import { ExporterTemporalityPreference } from './models/meterProviderModel';
8
9
  export declare class FileConfigFactory implements ConfigFactory {
9
10
  private _config;
10
11
  constructor();