@opentelemetry/configuration 0.222.0-development.0 → 0.300.0-development.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ConfigFactory.cjs +12 -0
- package/dist/ConfigFactory.cjs.map +1 -0
- package/dist/ConfigFactory.d.cts +6 -0
- package/dist/ConfigFactory.d.cts.map +1 -0
- package/dist/ConfigFactory.d.mts +6 -0
- package/dist/ConfigFactory.d.mts.map +1 -0
- package/dist/ConfigFactory.mjs +12 -0
- package/dist/ConfigFactory.mjs.map +1 -0
- package/dist/EnvDefinition.cjs +34 -0
- package/dist/EnvDefinition.cjs.map +1 -0
- package/dist/EnvDefinition.mjs +33 -0
- package/dist/EnvDefinition.mjs.map +1 -0
- package/dist/EnvReader.cjs +37 -0
- package/dist/EnvReader.cjs.map +1 -0
- package/dist/EnvReader.mjs +36 -0
- package/dist/EnvReader.mjs.map +1 -0
- package/dist/EnvironmentConfigFactory.cjs +354 -0
- package/dist/EnvironmentConfigFactory.cjs.map +1 -0
- package/dist/EnvironmentConfigFactory.mjs +347 -0
- package/dist/EnvironmentConfigFactory.mjs.map +1 -0
- package/dist/FileConfigFactory.cjs +141 -0
- package/dist/FileConfigFactory.cjs.map +1 -0
- package/{build/src/FileConfigFactory.d.ts → dist/FileConfigFactory.d.cts} +8 -12
- package/dist/FileConfigFactory.d.cts.map +1 -0
- package/dist/FileConfigFactory.d.mts +28 -0
- package/dist/FileConfigFactory.d.mts.map +1 -0
- package/dist/FileConfigFactory.mjs +134 -0
- package/dist/FileConfigFactory.mjs.map +1 -0
- package/dist/IConfigFactory.d.cts +13 -0
- package/dist/IConfigFactory.d.cts.map +1 -0
- package/dist/IConfigFactory.d.mts +13 -0
- package/dist/IConfigFactory.d.mts.map +1 -0
- package/dist/_virtual/_rolldown/runtime.cjs +25 -0
- package/dist/_virtual/_rolldown/runtime.mjs +4 -0
- package/dist/generated/types.d.cts +1662 -0
- package/dist/generated/types.d.cts.map +1 -0
- package/dist/generated/types.d.mts +1662 -0
- package/dist/generated/types.d.mts.map +1 -0
- package/dist/generated/validator.cjs +14385 -0
- package/dist/generated/validator.cjs.map +1 -0
- package/dist/generated/validator.mjs +14381 -0
- package/dist/generated/validator.mjs.map +1 -0
- package/dist/index.cjs +7 -0
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +3 -0
- package/dist/utils.cjs +137 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.mjs +129 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +25 -16
- package/build/src/ConfigFactory.d.ts +0 -3
- package/build/src/ConfigFactory.js +0 -19
- package/build/src/ConfigFactory.js.map +0 -1
- package/build/src/EnvDefinition.d.ts +0 -15
- package/build/src/EnvDefinition.js +0 -36
- package/build/src/EnvDefinition.js.map +0 -1
- package/build/src/EnvReader.d.ts +0 -24
- package/build/src/EnvReader.js +0 -60
- package/build/src/EnvReader.js.map +0 -1
- package/build/src/EnvironmentConfigFactory.d.ts +0 -19
- package/build/src/EnvironmentConfigFactory.js +0 -540
- package/build/src/EnvironmentConfigFactory.js.map +0 -1
- package/build/src/FileConfigFactory.js +0 -177
- package/build/src/FileConfigFactory.js.map +0 -1
- package/build/src/IConfigFactory.d.ts +0 -10
- package/build/src/IConfigFactory.js +0 -7
- package/build/src/IConfigFactory.js.map +0 -1
- package/build/src/generated/types.d.ts +0 -1659
- package/build/src/generated/types.js +0 -13
- package/build/src/generated/types.js.map +0 -1
- package/build/src/generated/validator.d.ts +0 -17
- package/build/src/generated/validator.js +0 -8533
- package/build/src/generated/validator.js.map +0 -1
- package/build/src/index.d.ts +0 -5
- package/build/src/index.js +0 -14
- package/build/src/index.js.map +0 -1
- package/build/src/utils.d.ts +0 -20
- package/build/src/utils.js +0 -188
- package/build/src/utils.js.map +0 -1
- package/build/src/version.d.ts +0 -2
- package/build/src/version.js +0 -10
- package/build/src/version.js.map +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const require_EnvironmentConfigFactory = require("./EnvironmentConfigFactory.cjs");
|
|
2
|
+
const require_FileConfigFactory = require("./FileConfigFactory.cjs");
|
|
3
|
+
let _opentelemetry_core = require("@opentelemetry/core");
|
|
4
|
+
//#region src/ConfigFactory.ts
|
|
5
|
+
function createConfigFactory() {
|
|
6
|
+
if ((0, _opentelemetry_core.getStringFromEnv)("OTEL_CONFIG_FILE")) return new require_FileConfigFactory.FileConfigFactory();
|
|
7
|
+
return new require_EnvironmentConfigFactory.EnvironmentConfigFactory();
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.createConfigFactory = createConfigFactory;
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=ConfigFactory.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigFactory.cjs","names":["getStringFromEnv","FileConfigFactory","EnvironmentConfigFactory"],"sources":["../src/ConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport { EnvironmentConfigFactory } from './EnvironmentConfigFactory';\nimport { FileConfigFactory } from './FileConfigFactory';\n\nexport function createConfigFactory(): ConfigFactory {\n const configFile = getStringFromEnv('OTEL_CONFIG_FILE');\n if (configFile) {\n return new FileConfigFactory();\n }\n return new EnvironmentConfigFactory();\n}\n"],"mappings":";;;;AAUA,SAAgB,sBAAqC;CAEnD,KAAA,GADmBA,oBAAAA,iBAAAA,CAAiB,kBACvB,GACX,OAAO,IAAIC,0BAAAA,kBAAkB;CAE/B,OAAO,IAAIC,iCAAAA,yBAAyB;AACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigFactory.d.cts","names":[],"sources":["../src/ConfigFactory.d.ts"],"mappings":";;iBACwB,uBAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigFactory.d.mts","names":[],"sources":["../src/ConfigFactory.d.ts"],"mappings":";;iBACwB,uBAAuB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EnvironmentConfigFactory } from "./EnvironmentConfigFactory.mjs";
|
|
2
|
+
import { FileConfigFactory } from "./FileConfigFactory.mjs";
|
|
3
|
+
import { getStringFromEnv } from "@opentelemetry/core";
|
|
4
|
+
//#region src/ConfigFactory.ts
|
|
5
|
+
function createConfigFactory() {
|
|
6
|
+
if (getStringFromEnv("OTEL_CONFIG_FILE")) return new FileConfigFactory();
|
|
7
|
+
return new EnvironmentConfigFactory();
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { createConfigFactory };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=ConfigFactory.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigFactory.mjs","names":[],"sources":["../src/ConfigFactory.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getStringFromEnv } from '@opentelemetry/core';\nimport type { ConfigFactory } from './IConfigFactory';\nimport { EnvironmentConfigFactory } from './EnvironmentConfigFactory';\nimport { FileConfigFactory } from './FileConfigFactory';\n\nexport function createConfigFactory(): ConfigFactory {\n const configFile = getStringFromEnv('OTEL_CONFIG_FILE');\n if (configFile) {\n return new FileConfigFactory();\n }\n return new EnvironmentConfigFactory();\n}\n"],"mappings":";;;;AAUA,SAAgB,sBAAqC;CAEnD,IADmB,iBAAiB,kBACvB,GACX,OAAO,IAAI,kBAAkB;CAE/B,OAAO,IAAI,yBAAyB;AACtC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//#region src/EnvDefinition.ts
|
|
2
|
+
let SamplerType = /* @__PURE__ */ function(SamplerType) {
|
|
3
|
+
SamplerType["AlwaysOn"] = "always_on";
|
|
4
|
+
SamplerType["AlwaysOff"] = "always_off";
|
|
5
|
+
SamplerType["TraceIdRatio"] = "traceidratio";
|
|
6
|
+
SamplerType["ParentBasedAlwaysOn"] = "parentbased_always_on";
|
|
7
|
+
SamplerType["ParentBasedAlwaysOff"] = "parentbased_always_off";
|
|
8
|
+
SamplerType["ParentBasedTraceIdRatio"] = "parentbased_traceidratio";
|
|
9
|
+
return SamplerType;
|
|
10
|
+
}({});
|
|
11
|
+
const ENV_DEFS = {
|
|
12
|
+
OTEL_SDK_DISABLED: {
|
|
13
|
+
key: "OTEL_SDK_DISABLED",
|
|
14
|
+
type: "boolean",
|
|
15
|
+
description: "Disable the SDK",
|
|
16
|
+
defaultValue: false
|
|
17
|
+
},
|
|
18
|
+
OTEL_TRACES_SAMPLER: {
|
|
19
|
+
key: "OTEL_TRACES_SAMPLER",
|
|
20
|
+
type: "string",
|
|
21
|
+
description: "Traces sampler",
|
|
22
|
+
allowedValues: Object.values(SamplerType)
|
|
23
|
+
},
|
|
24
|
+
OTEL_TRACES_SAMPLER_ARG: {
|
|
25
|
+
key: "OTEL_TRACES_SAMPLER_ARG",
|
|
26
|
+
type: "string",
|
|
27
|
+
description: "Traces sampler argument"
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.ENV_DEFS = ENV_DEFS;
|
|
32
|
+
exports.SamplerType = SamplerType;
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=EnvDefinition.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvDefinition.cjs","names":[],"sources":["../src/EnvDefinition.ts"],"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"],"mappings":";AAOA,IAAY,cAAL,yBAAA,aAAA;CACL,YAAA,cAAA;CACA,YAAA,eAAA;CACA,YAAA,kBAAA;CACA,YAAA,yBAAA;CACA,YAAA,0BAAA;CACA,YAAA,6BAAA;;AACF,EAAA,CAAA,CAAA;AAEA,MAAa,WAAW;CACtB,mBAAmB;EACjB,KAAK;EACL,MAAM;EACN,aAAa;EACb,cAAc;CAChB;CAEA,qBAAqB;EACnB,KAAK;EACL,MAAM;EACN,aAAa;EACb,eAAe,OAAO,OAAO,WAAW;CAC1C;CAEA,yBAAyB;EACvB,KAAK;EACL,MAAM;EACN,aAAa;CACf;AACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/EnvDefinition.ts
|
|
2
|
+
let SamplerType = /* @__PURE__ */ function(SamplerType) {
|
|
3
|
+
SamplerType["AlwaysOn"] = "always_on";
|
|
4
|
+
SamplerType["AlwaysOff"] = "always_off";
|
|
5
|
+
SamplerType["TraceIdRatio"] = "traceidratio";
|
|
6
|
+
SamplerType["ParentBasedAlwaysOn"] = "parentbased_always_on";
|
|
7
|
+
SamplerType["ParentBasedAlwaysOff"] = "parentbased_always_off";
|
|
8
|
+
SamplerType["ParentBasedTraceIdRatio"] = "parentbased_traceidratio";
|
|
9
|
+
return SamplerType;
|
|
10
|
+
}({});
|
|
11
|
+
const ENV_DEFS = {
|
|
12
|
+
OTEL_SDK_DISABLED: {
|
|
13
|
+
key: "OTEL_SDK_DISABLED",
|
|
14
|
+
type: "boolean",
|
|
15
|
+
description: "Disable the SDK",
|
|
16
|
+
defaultValue: false
|
|
17
|
+
},
|
|
18
|
+
OTEL_TRACES_SAMPLER: {
|
|
19
|
+
key: "OTEL_TRACES_SAMPLER",
|
|
20
|
+
type: "string",
|
|
21
|
+
description: "Traces sampler",
|
|
22
|
+
allowedValues: Object.values(SamplerType)
|
|
23
|
+
},
|
|
24
|
+
OTEL_TRACES_SAMPLER_ARG: {
|
|
25
|
+
key: "OTEL_TRACES_SAMPLER_ARG",
|
|
26
|
+
type: "string",
|
|
27
|
+
description: "Traces sampler argument"
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { ENV_DEFS, SamplerType };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=EnvDefinition.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvDefinition.mjs","names":[],"sources":["../src/EnvDefinition.ts"],"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"],"mappings":";AAOA,IAAY,cAAL,yBAAA,aAAA;CACL,YAAA,cAAA;CACA,YAAA,eAAA;CACA,YAAA,kBAAA;CACA,YAAA,yBAAA;CACA,YAAA,0BAAA;CACA,YAAA,6BAAA;;AACF,EAAA,CAAA,CAAA;AAEA,MAAa,WAAW;CACtB,mBAAmB;EACjB,KAAK;EACL,MAAM;EACN,aAAa;EACb,cAAc;CAChB;CAEA,qBAAqB;EACnB,KAAK;EACL,MAAM;EACN,aAAa;EACb,eAAe,OAAO,OAAO,WAAW;CAC1C;CAEA,yBAAyB;EACvB,KAAK;EACL,MAAM;EACN,aAAa;CACf;AACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const require_EnvDefinition = require("./EnvDefinition.cjs");
|
|
2
|
+
let _opentelemetry_core = require("@opentelemetry/core");
|
|
3
|
+
let _opentelemetry_api = require("@opentelemetry/api");
|
|
4
|
+
//#region src/EnvReader.ts
|
|
5
|
+
function readStringEnv(def) {
|
|
6
|
+
const value = (0, _opentelemetry_core.getStringFromEnv)(def.key);
|
|
7
|
+
if (value == null) return def.defaultValue;
|
|
8
|
+
if (def.allowedValues && !def.allowedValues.includes(value)) {
|
|
9
|
+
_opentelemetry_api.diag.warn(`Invalid value "${value}" for ${def.description} (env: ${def.key}). Expected one of: ${def.allowedValues.join(", ")}. ` + (def.defaultValue != null ? `Falling back to "${def.defaultValue}".` : "Value will be ignored."));
|
|
10
|
+
return def.defaultValue;
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
function readBooleanEnv(def) {
|
|
15
|
+
const raw = (0, _opentelemetry_core.getStringFromEnv)(def.key)?.trim().toLowerCase();
|
|
16
|
+
if (raw == null || raw === "") return def.defaultValue;
|
|
17
|
+
if (raw === "true") return true;
|
|
18
|
+
if (raw === "false") return false;
|
|
19
|
+
_opentelemetry_api.diag.warn(`Invalid value "${raw}" for ${def.description} (env: ${def.key}). Expected 'true' or 'false'. Falling back to "${def.defaultValue}".`);
|
|
20
|
+
return def.defaultValue;
|
|
21
|
+
}
|
|
22
|
+
function readEnvVar(def) {
|
|
23
|
+
switch (def.type) {
|
|
24
|
+
case "string": return readStringEnv(def);
|
|
25
|
+
case "boolean": return readBooleanEnv(def);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function readAllEnvVars() {
|
|
29
|
+
const result = {};
|
|
30
|
+
for (const [name, def] of Object.entries(require_EnvDefinition.ENV_DEFS)) result[name] = readEnvVar(def);
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.readAllEnvVars = readAllEnvVars;
|
|
35
|
+
exports.readEnvVar = readEnvVar;
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=EnvReader.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvReader.cjs","names":["getStringFromEnv","ENV_DEFS"],"sources":["../src/EnvReader.ts"],"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"],"mappings":";;;;AAkCA,SAAS,cAAc,KAAuC;CAC5D,MAAM,SAAA,GAAQA,oBAAAA,iBAAAA,CAAiB,IAAI,GAAG;CACtC,IAAI,SAAS,MACX,OAAO,IAAI;CAEb,IAAI,IAAI,iBAAiB,CAAC,IAAI,cAAc,SAAS,KAAK,GAAG;EAC3D,mBAAA,KAAK,KACH,kBAAkB,MAAM,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,sBAC3C,IAAI,cAAc,KAAK,IAAI,EAAE,OAChD,IAAI,gBAAgB,OACjB,oBAAoB,IAAI,aAAa,MACrC,yBACR;EACA,OAAO,IAAI;CACb;CACA,OAAO;AACT;AAEA,SAAS,eAAe,KAA6B;CACnD,MAAM,OAAA,GAAMA,oBAAAA,iBAAAA,CAAiB,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY;CAE1D,IAAI,OAAO,QAAQ,QAAQ,IACzB,OAAO,IAAI;CAEb,IAAI,QAAQ,QACV,OAAO;CAET,IAAI,QAAQ,SACV,OAAO;CAGT,mBAAA,KAAK,KACH,kBAAkB,IAAI,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,kDACb,IAAI,aAAa,GACrE;CACA,OAAO,IAAI;AACb;AAEA,SAAgB,WACd,KACiB;CACjB,QAAQ,IAAI,MAAZ;EACE,KAAK,UACH,OAAO,cAAc,GAAG;EAC1B,KAAK,WACH,OAAO,eAAe,GAAG;CAC7B;AACF;AAMA,SAAgB,iBAA4B;CAC1C,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,MAAM,QAAQ,OAAO,QAAQC,sBAAAA,QAAQ,GAC/C,OAAO,QAAQ,WAAW,GAAG;CAE/B,OAAO;AACT"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ENV_DEFS } from "./EnvDefinition.mjs";
|
|
2
|
+
import { getStringFromEnv } from "@opentelemetry/core";
|
|
3
|
+
import { diag } from "@opentelemetry/api";
|
|
4
|
+
//#region src/EnvReader.ts
|
|
5
|
+
function readStringEnv(def) {
|
|
6
|
+
const value = getStringFromEnv(def.key);
|
|
7
|
+
if (value == null) return def.defaultValue;
|
|
8
|
+
if (def.allowedValues && !def.allowedValues.includes(value)) {
|
|
9
|
+
diag.warn(`Invalid value "${value}" for ${def.description} (env: ${def.key}). Expected one of: ${def.allowedValues.join(", ")}. ` + (def.defaultValue != null ? `Falling back to "${def.defaultValue}".` : "Value will be ignored."));
|
|
10
|
+
return def.defaultValue;
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
function readBooleanEnv(def) {
|
|
15
|
+
const raw = getStringFromEnv(def.key)?.trim().toLowerCase();
|
|
16
|
+
if (raw == null || raw === "") return def.defaultValue;
|
|
17
|
+
if (raw === "true") return true;
|
|
18
|
+
if (raw === "false") return false;
|
|
19
|
+
diag.warn(`Invalid value "${raw}" for ${def.description} (env: ${def.key}). Expected 'true' or 'false'. Falling back to "${def.defaultValue}".`);
|
|
20
|
+
return def.defaultValue;
|
|
21
|
+
}
|
|
22
|
+
function readEnvVar(def) {
|
|
23
|
+
switch (def.type) {
|
|
24
|
+
case "string": return readStringEnv(def);
|
|
25
|
+
case "boolean": return readBooleanEnv(def);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function readAllEnvVars() {
|
|
29
|
+
const result = {};
|
|
30
|
+
for (const [name, def] of Object.entries(ENV_DEFS)) result[name] = readEnvVar(def);
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { readAllEnvVars, readEnvVar };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=EnvReader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvReader.mjs","names":[],"sources":["../src/EnvReader.ts"],"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"],"mappings":";;;;AAkCA,SAAS,cAAc,KAAuC;CAC5D,MAAM,QAAQ,iBAAiB,IAAI,GAAG;CACtC,IAAI,SAAS,MACX,OAAO,IAAI;CAEb,IAAI,IAAI,iBAAiB,CAAC,IAAI,cAAc,SAAS,KAAK,GAAG;EAC3D,KAAK,KACH,kBAAkB,MAAM,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,sBAC3C,IAAI,cAAc,KAAK,IAAI,EAAE,OAChD,IAAI,gBAAgB,OACjB,oBAAoB,IAAI,aAAa,MACrC,yBACR;EACA,OAAO,IAAI;CACb;CACA,OAAO;AACT;AAEA,SAAS,eAAe,KAA6B;CACnD,MAAM,MAAM,iBAAiB,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY;CAE1D,IAAI,OAAO,QAAQ,QAAQ,IACzB,OAAO,IAAI;CAEb,IAAI,QAAQ,QACV,OAAO;CAET,IAAI,QAAQ,SACV,OAAO;CAGT,KAAK,KACH,kBAAkB,IAAI,QAAQ,IAAI,YAAY,SAAS,IAAI,IAAI,kDACb,IAAI,aAAa,GACrE;CACA,OAAO,IAAI;AACb;AAEA,SAAgB,WACd,KACiB;CACjB,QAAQ,IAAI,MAAZ;EACE,KAAK,UACH,OAAO,cAAc,GAAG;EAC1B,KAAK,WACH,OAAO,eAAe,GAAG;CAC7B;AACF;AAMA,SAAgB,iBAA4B;CAC1C,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,MAAM,QAAQ,OAAO,QAAQ,QAAQ,GAC/C,OAAO,QAAQ,WAAW,GAAG;CAE/B,OAAO;AACT"}
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
const require_utils = require("./utils.cjs");
|
|
2
|
+
require("./EnvDefinition.cjs");
|
|
3
|
+
const require_EnvReader = require("./EnvReader.cjs");
|
|
4
|
+
let _opentelemetry_core = require("@opentelemetry/core");
|
|
5
|
+
let _opentelemetry_api = require("@opentelemetry/api");
|
|
6
|
+
//#region src/EnvironmentConfigFactory.ts
|
|
7
|
+
/**
|
|
8
|
+
* EnvironmentConfigProvider provides a configuration based on environment variables.
|
|
9
|
+
*/
|
|
10
|
+
var EnvironmentConfigFactory = class {
|
|
11
|
+
_config;
|
|
12
|
+
constructor() {
|
|
13
|
+
this._config = require_utils.initializeDefaultConfiguration();
|
|
14
|
+
const envValues = require_EnvReader.readAllEnvVars();
|
|
15
|
+
this._config.disabled = envValues.OTEL_SDK_DISABLED;
|
|
16
|
+
const logLevelString = (0, _opentelemetry_core.getStringFromEnv)("OTEL_LOG_LEVEL");
|
|
17
|
+
if (logLevelString) this._config.log_level = severityNumberConfigFromLogLevelString(logLevelString);
|
|
18
|
+
setResources(this._config);
|
|
19
|
+
setAttributeLimits(this._config);
|
|
20
|
+
setPropagators(this._config);
|
|
21
|
+
setTracerProvider(this._config, envValues);
|
|
22
|
+
setMeterProvider(this._config);
|
|
23
|
+
setLoggerProvider(this._config);
|
|
24
|
+
}
|
|
25
|
+
getConfigModel() {
|
|
26
|
+
return this._config;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const SEV_NUM_CONFIG_FROM_LOG_LEVEL = {
|
|
30
|
+
NONE: "fatal",
|
|
31
|
+
ERROR: "error",
|
|
32
|
+
WARN: "warn",
|
|
33
|
+
INFO: "info",
|
|
34
|
+
DEBUG: "debug",
|
|
35
|
+
VERBOSE: "trace2",
|
|
36
|
+
ALL: "trace"
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Return a declarative config SeverityNumberConfig value (as used for
|
|
40
|
+
* `log_level`) for the given `OTEL_LOG_LEVEL` string value.
|
|
41
|
+
*
|
|
42
|
+
* See notes at "opentelemetr-sdk-node/src/diag.ts".
|
|
43
|
+
*/
|
|
44
|
+
function severityNumberConfigFromLogLevelString(str) {
|
|
45
|
+
if (!str) return;
|
|
46
|
+
const sevNumConfig = SEV_NUM_CONFIG_FROM_LOG_LEVEL[str.toUpperCase()];
|
|
47
|
+
if (!sevNumConfig) {
|
|
48
|
+
_opentelemetry_api.diag.warn(`Unknown log level "${str}", expected one of ${Object.keys(SEV_NUM_CONFIG_FROM_LOG_LEVEL)}, using default info`);
|
|
49
|
+
return "info";
|
|
50
|
+
}
|
|
51
|
+
return sevNumConfig;
|
|
52
|
+
}
|
|
53
|
+
function setResources(config) {
|
|
54
|
+
if (config.resource == null) config.resource = {};
|
|
55
|
+
const resourceAttrList = (0, _opentelemetry_core.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES");
|
|
56
|
+
const list = resourceAttrList ? resourceAttrList.split(",").map((s) => s.trim()).filter((s) => s) : [];
|
|
57
|
+
const serviceName = (0, _opentelemetry_core.getStringFromEnv)("OTEL_SERVICE_NAME");
|
|
58
|
+
if (serviceName) config.resource.attributes = [{
|
|
59
|
+
name: "service.name",
|
|
60
|
+
value: serviceName,
|
|
61
|
+
type: "string"
|
|
62
|
+
}];
|
|
63
|
+
if (list.length > 0) {
|
|
64
|
+
config.resource.attributes_list = resourceAttrList;
|
|
65
|
+
if (config.resource.attributes == null) config.resource.attributes = [];
|
|
66
|
+
for (let i = 0; i < list.length; i++) {
|
|
67
|
+
const element = list[i].split("=");
|
|
68
|
+
if (element[0] !== "service.name" || element[0] === "service.name" && serviceName === void 0) config.resource.attributes.push({
|
|
69
|
+
name: element[0],
|
|
70
|
+
value: element[1],
|
|
71
|
+
type: "string"
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const nodeDetectors = (0, _opentelemetry_core.getStringListFromEnv)("OTEL_NODE_RESOURCE_DETECTORS");
|
|
76
|
+
if (nodeDetectors && nodeDetectors.length > 0 && !nodeDetectors.includes("none")) {
|
|
77
|
+
const all = nodeDetectors.includes("all");
|
|
78
|
+
const detectors = [];
|
|
79
|
+
if (all || nodeDetectors.includes("container")) detectors.push({ container: {} });
|
|
80
|
+
if (all || nodeDetectors.includes("host")) detectors.push({ host: {} });
|
|
81
|
+
if (all || nodeDetectors.includes("os")) detectors.push({ os: {} });
|
|
82
|
+
if (all || nodeDetectors.includes("process")) detectors.push({ process: {} });
|
|
83
|
+
if (all || nodeDetectors.includes("serviceinstance")) detectors.push({ service: {} });
|
|
84
|
+
if (all || nodeDetectors.includes("env")) detectors.push({ env: {} });
|
|
85
|
+
if (detectors.length > 0) {
|
|
86
|
+
if (config.resource["detection/development"] == null) config.resource["detection/development"] = {};
|
|
87
|
+
config.resource["detection/development"].detectors = detectors;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function setAttributeLimits(config) {
|
|
92
|
+
const attributeValueLengthLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT");
|
|
93
|
+
if (attributeValueLengthLimit && attributeValueLengthLimit > 0) {
|
|
94
|
+
if (config.attribute_limits == null) config.attribute_limits = { attribute_count_limit: 128 };
|
|
95
|
+
config.attribute_limits.attribute_value_length_limit = attributeValueLengthLimit;
|
|
96
|
+
}
|
|
97
|
+
const attributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT");
|
|
98
|
+
if (attributeCountLimit) {
|
|
99
|
+
if (config.attribute_limits == null) config.attribute_limits = { attribute_count_limit: attributeCountLimit };
|
|
100
|
+
else config.attribute_limits.attribute_count_limit = attributeCountLimit;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function setPropagators(config) {
|
|
104
|
+
if (config.propagator == null) config.propagator = {};
|
|
105
|
+
const compositeList = (0, _opentelemetry_core.getStringFromEnv)("OTEL_PROPAGATORS");
|
|
106
|
+
if (compositeList) {
|
|
107
|
+
config.propagator.composite_list = compositeList;
|
|
108
|
+
const names = compositeList.split(",").map((s) => s.trim()).filter((s) => s);
|
|
109
|
+
if (names.length > 0) {
|
|
110
|
+
config.propagator.composite = [];
|
|
111
|
+
for (const name of names) config.propagator.composite.push({ [name]: {} });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function setSampler(config, env) {
|
|
116
|
+
const sampler = env.OTEL_TRACES_SAMPLER;
|
|
117
|
+
const arg = env.OTEL_TRACES_SAMPLER_ARG;
|
|
118
|
+
if (!sampler || !config.tracer_provider) return;
|
|
119
|
+
const ratio = arg ? parseFloat(arg) : 1;
|
|
120
|
+
switch (sampler) {
|
|
121
|
+
case "always_on":
|
|
122
|
+
config.tracer_provider.sampler = { always_on: {} };
|
|
123
|
+
break;
|
|
124
|
+
case "always_off":
|
|
125
|
+
config.tracer_provider.sampler = { always_off: {} };
|
|
126
|
+
break;
|
|
127
|
+
case "traceidratio":
|
|
128
|
+
config.tracer_provider.sampler = { trace_id_ratio_based: { ratio } };
|
|
129
|
+
break;
|
|
130
|
+
case "parentbased_always_on":
|
|
131
|
+
config.tracer_provider.sampler = { parent_based: { root: { always_on: {} } } };
|
|
132
|
+
break;
|
|
133
|
+
case "parentbased_always_off":
|
|
134
|
+
config.tracer_provider.sampler = { parent_based: { root: { always_off: {} } } };
|
|
135
|
+
break;
|
|
136
|
+
case "parentbased_traceidratio": config.tracer_provider.sampler = { parent_based: { root: { trace_id_ratio_based: { ratio } } } };
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function setTracerProvider(config, env) {
|
|
140
|
+
const exportersType = Array.from(new Set((0, _opentelemetry_core.getStringListFromEnv)("OTEL_TRACES_EXPORTER")));
|
|
141
|
+
if (exportersType.length === 0) return;
|
|
142
|
+
if (exportersType.includes("none")) {
|
|
143
|
+
_opentelemetry_api.diag.info("OTEL_TRACES_EXPORTER contains \"none\". Tracer provider will not be initialized.");
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
config.tracer_provider = require_utils.initializeDefaultTracerProviderConfiguration();
|
|
147
|
+
setSampler(config, env);
|
|
148
|
+
const attributeValueLengthLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT");
|
|
149
|
+
if (attributeValueLengthLimit) config.tracer_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
|
|
150
|
+
const attributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT");
|
|
151
|
+
if (attributeCountLimit) config.tracer_provider.limits.attribute_count_limit = attributeCountLimit;
|
|
152
|
+
const eventCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT");
|
|
153
|
+
if (eventCountLimit) config.tracer_provider.limits.event_count_limit = eventCountLimit;
|
|
154
|
+
const linkCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT");
|
|
155
|
+
if (linkCountLimit) config.tracer_provider.limits.link_count_limit = linkCountLimit;
|
|
156
|
+
const eventAttributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT");
|
|
157
|
+
if (eventAttributeCountLimit) config.tracer_provider.limits.event_attribute_count_limit = eventAttributeCountLimit;
|
|
158
|
+
const linkAttributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_LINK_ATTRIBUTE_COUNT_LIMIT");
|
|
159
|
+
if (linkAttributeCountLimit) config.tracer_provider.limits.link_attribute_count_limit = linkAttributeCountLimit;
|
|
160
|
+
const batch = {
|
|
161
|
+
exporter: {},
|
|
162
|
+
schedule_delay: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY") ?? 5e3,
|
|
163
|
+
export_timeout: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT") ?? 3e4,
|
|
164
|
+
max_queue_size: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE") ?? 2048,
|
|
165
|
+
max_export_batch_size: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE") ?? 512
|
|
166
|
+
};
|
|
167
|
+
for (let i = 0; i < exportersType.length; i++) {
|
|
168
|
+
const exporterType = exportersType[i];
|
|
169
|
+
const batchInfo = {
|
|
170
|
+
...batch,
|
|
171
|
+
exporter: {}
|
|
172
|
+
};
|
|
173
|
+
if (exporterType === "console") config.tracer_provider.processors.push({ simple: { exporter: { console: {} } } });
|
|
174
|
+
else {
|
|
175
|
+
const protocol = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_PROTOCOL") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_PROTOCOL") ?? "http/protobuf";
|
|
176
|
+
const certificateFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CERTIFICATE");
|
|
177
|
+
const clientKeyFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CLIENT_KEY");
|
|
178
|
+
const clientCertificateFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE");
|
|
179
|
+
const compression = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_COMPRESSION") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_COMPRESSION");
|
|
180
|
+
const timeout = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EXPORTER_OTLP_TRACES_TIMEOUT") ?? (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EXPORTER_OTLP_TIMEOUT") ?? 1e4;
|
|
181
|
+
const headersList = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_HEADERS") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_HEADERS");
|
|
182
|
+
if (protocol === "grpc") {
|
|
183
|
+
const tls = require_utils.getGrpcTlsConfig(certificateFile, clientKeyFile, clientCertificateFile);
|
|
184
|
+
batchInfo.exporter = { otlp_grpc: {
|
|
185
|
+
endpoint: (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT") ?? "http://localhost:4317",
|
|
186
|
+
timeout,
|
|
187
|
+
...tls !== void 0 && { tls },
|
|
188
|
+
...compression !== void 0 && { compression },
|
|
189
|
+
...headersList !== void 0 && { headers_list: headersList }
|
|
190
|
+
} };
|
|
191
|
+
} else {
|
|
192
|
+
const tls = require_utils.getHttpTlsConfig(certificateFile, clientKeyFile, clientCertificateFile);
|
|
193
|
+
const encoding = protocol === "http/json" ? "json" : protocol === "http/protobuf" ? "protobuf" : void 0;
|
|
194
|
+
batchInfo.exporter = { otlp_http: {
|
|
195
|
+
endpoint: (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT") ?? ((0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT") ? `${(0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT")}/v1/traces` : "http://localhost:4318/v1/traces"),
|
|
196
|
+
timeout,
|
|
197
|
+
...tls !== void 0 && { tls },
|
|
198
|
+
...compression !== void 0 && { compression },
|
|
199
|
+
...headersList !== void 0 && { headers_list: headersList },
|
|
200
|
+
...encoding !== void 0 && { encoding }
|
|
201
|
+
} };
|
|
202
|
+
}
|
|
203
|
+
const processor = { batch: batchInfo };
|
|
204
|
+
config.tracer_provider.processors.push(processor);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function setMeterProvider(config) {
|
|
209
|
+
const exportersType = Array.from(new Set((0, _opentelemetry_core.getStringListFromEnv)("OTEL_METRICS_EXPORTER")));
|
|
210
|
+
if (exportersType.length === 0) return;
|
|
211
|
+
if (exportersType.includes("none")) {
|
|
212
|
+
_opentelemetry_api.diag.info("OTEL_METRICS_EXPORTER contains \"none\". Meter provider will not be initialized.");
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
config.meter_provider = require_utils.initializeDefaultMeterProviderConfiguration();
|
|
216
|
+
const interval = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_METRIC_EXPORT_INTERVAL") ?? 6e4;
|
|
217
|
+
for (let i = 0; i < exportersType.length; i++) {
|
|
218
|
+
const exporterType = exportersType[i];
|
|
219
|
+
if (exporterType === "prometheus") {
|
|
220
|
+
const pullReader = { exporter: { "prometheus/development": {
|
|
221
|
+
host: (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_PROMETHEUS_HOST") ?? "localhost",
|
|
222
|
+
port: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EXPORTER_PROMETHEUS_PORT") ?? 9464,
|
|
223
|
+
scope_info_enabled: true,
|
|
224
|
+
"target_info_enabled/development": true
|
|
225
|
+
} } };
|
|
226
|
+
config.meter_provider.readers.push({ pull: pullReader });
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
const readerPeriodicInfo = {
|
|
230
|
+
interval,
|
|
231
|
+
timeout: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_METRIC_EXPORT_TIMEOUT") ?? 3e4,
|
|
232
|
+
exporter: {}
|
|
233
|
+
};
|
|
234
|
+
if (exporterType === "console") readerPeriodicInfo.exporter = { console: {} };
|
|
235
|
+
else {
|
|
236
|
+
const protocol = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_PROTOCOL") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_PROTOCOL") ?? "http/protobuf";
|
|
237
|
+
const certificateFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CERTIFICATE");
|
|
238
|
+
const clientKeyFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CLIENT_KEY");
|
|
239
|
+
const clientCertificateFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE");
|
|
240
|
+
const compression = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_COMPRESSION") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_COMPRESSION");
|
|
241
|
+
const timeoutExporter = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EXPORTER_OTLP_METRICS_TIMEOUT") ?? (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EXPORTER_OTLP_TIMEOUT") ?? 1e4;
|
|
242
|
+
const headersList = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_HEADERS") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_HEADERS");
|
|
243
|
+
const rawTemporality = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE") ?? "cumulative";
|
|
244
|
+
const temporalityPreference = [
|
|
245
|
+
"cumulative",
|
|
246
|
+
"delta",
|
|
247
|
+
"low_memory"
|
|
248
|
+
].includes(rawTemporality) ? rawTemporality : "cumulative";
|
|
249
|
+
const rawHistogramAgg = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION") ?? "explicit_bucket_histogram";
|
|
250
|
+
const defaultHistogramAggregation = ["explicit_bucket_histogram", "base2_exponential_bucket_histogram"].includes(rawHistogramAgg) ? rawHistogramAgg : "explicit_bucket_histogram";
|
|
251
|
+
if (protocol === "grpc") {
|
|
252
|
+
const tls = require_utils.getGrpcTlsConfig(certificateFile, clientKeyFile, clientCertificateFile);
|
|
253
|
+
readerPeriodicInfo.exporter = { otlp_grpc: {
|
|
254
|
+
endpoint: (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_ENDPOINT") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT") ?? "http://localhost:4317",
|
|
255
|
+
timeout: timeoutExporter,
|
|
256
|
+
temporality_preference: temporalityPreference,
|
|
257
|
+
default_histogram_aggregation: defaultHistogramAggregation,
|
|
258
|
+
...tls !== void 0 && { tls },
|
|
259
|
+
...compression !== void 0 && { compression },
|
|
260
|
+
...headersList !== void 0 && { headers_list: headersList }
|
|
261
|
+
} };
|
|
262
|
+
} else {
|
|
263
|
+
const tls = require_utils.getHttpTlsConfig(certificateFile, clientKeyFile, clientCertificateFile);
|
|
264
|
+
const encoding = protocol === "http/json" ? "json" : protocol === "http/protobuf" ? "protobuf" : void 0;
|
|
265
|
+
readerPeriodicInfo.exporter = { otlp_http: {
|
|
266
|
+
endpoint: (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_METRICS_ENDPOINT") ?? ((0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT") ? `${(0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT")}/v1/metrics` : "http://localhost:4318/v1/metrics"),
|
|
267
|
+
timeout: timeoutExporter,
|
|
268
|
+
temporality_preference: temporalityPreference,
|
|
269
|
+
default_histogram_aggregation: defaultHistogramAggregation,
|
|
270
|
+
...tls !== void 0 && { tls },
|
|
271
|
+
...compression !== void 0 && { compression },
|
|
272
|
+
...headersList !== void 0 && { headers_list: headersList },
|
|
273
|
+
...encoding !== void 0 && { encoding }
|
|
274
|
+
} };
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
config.meter_provider.readers.push({ periodic: readerPeriodicInfo });
|
|
278
|
+
}
|
|
279
|
+
const rawExemplarFilter = (0, _opentelemetry_core.getStringFromEnv)("OTEL_METRICS_EXEMPLAR_FILTER") ?? "trace_based";
|
|
280
|
+
config.meter_provider.exemplar_filter = rawExemplarFilter === "default" ? "trace_based" : rawExemplarFilter;
|
|
281
|
+
}
|
|
282
|
+
function setLoggerProvider(config) {
|
|
283
|
+
const exportersType = Array.from(new Set((0, _opentelemetry_core.getStringListFromEnv)("OTEL_LOGS_EXPORTER")));
|
|
284
|
+
if (exportersType.length === 0) return;
|
|
285
|
+
if (exportersType.includes("none")) {
|
|
286
|
+
_opentelemetry_api.diag.info("OTEL_LOGS_EXPORTER contains \"none\". Logger provider will not be initialized.");
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
config.logger_provider = require_utils.initializeDefaultLoggerProviderConfiguration();
|
|
290
|
+
const attributeValueLengthLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT");
|
|
291
|
+
const attributeCountLimit = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT");
|
|
292
|
+
if (attributeValueLengthLimit || attributeCountLimit) {
|
|
293
|
+
if (attributeValueLengthLimit) config.logger_provider.limits.attribute_value_length_limit = attributeValueLengthLimit;
|
|
294
|
+
if (attributeCountLimit) config.logger_provider.limits.attribute_count_limit = attributeCountLimit;
|
|
295
|
+
}
|
|
296
|
+
const batch = {
|
|
297
|
+
exporter: {},
|
|
298
|
+
schedule_delay: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BLRP_SCHEDULE_DELAY") ?? 1e3,
|
|
299
|
+
export_timeout: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BLRP_EXPORT_TIMEOUT") ?? 3e4,
|
|
300
|
+
max_queue_size: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BLRP_MAX_QUEUE_SIZE") ?? 2048,
|
|
301
|
+
max_export_batch_size: (0, _opentelemetry_core.getNumberFromEnv)("OTEL_BLRP_MAX_EXPORT_BATCH_SIZE") ?? 512
|
|
302
|
+
};
|
|
303
|
+
for (let i = 0; i < exportersType.length; i++) {
|
|
304
|
+
const exporterType = exportersType[i];
|
|
305
|
+
const batchInfo = {
|
|
306
|
+
...batch,
|
|
307
|
+
exporter: {}
|
|
308
|
+
};
|
|
309
|
+
if (exporterType === "console") config.logger_provider.processors.push({ simple: { exporter: { console: {} } } });
|
|
310
|
+
else {
|
|
311
|
+
const protocol = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_PROTOCOL") ?? "http/protobuf";
|
|
312
|
+
const certificateFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CERTIFICATE");
|
|
313
|
+
const clientKeyFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CLIENT_KEY");
|
|
314
|
+
const clientCertificateFile = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE");
|
|
315
|
+
const compression = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_COMPRESSION") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_COMPRESSION");
|
|
316
|
+
const timeout = (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT") ?? (0, _opentelemetry_core.getNumberFromEnv)("OTEL_EXPORTER_OTLP_TIMEOUT") ?? 1e4;
|
|
317
|
+
const headersList = (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_HEADERS") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_HEADERS");
|
|
318
|
+
if (protocol === "grpc") {
|
|
319
|
+
const tls = require_utils.getGrpcTlsConfig(certificateFile, clientKeyFile, clientCertificateFile);
|
|
320
|
+
batchInfo.exporter = { otlp_grpc: {
|
|
321
|
+
endpoint: (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT") ?? (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT") ?? "http://localhost:4317",
|
|
322
|
+
timeout,
|
|
323
|
+
...tls !== void 0 && { tls },
|
|
324
|
+
...compression !== void 0 && { compression },
|
|
325
|
+
...headersList !== void 0 && { headers_list: headersList }
|
|
326
|
+
} };
|
|
327
|
+
} else {
|
|
328
|
+
const tls = require_utils.getHttpTlsConfig(certificateFile, clientKeyFile, clientCertificateFile);
|
|
329
|
+
const encoding = protocol === "http/json" ? "json" : protocol === "http/protobuf" ? "protobuf" : void 0;
|
|
330
|
+
batchInfo.exporter = { otlp_http: {
|
|
331
|
+
endpoint: (0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT") ?? ((0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT") ? `${(0, _opentelemetry_core.getStringFromEnv)("OTEL_EXPORTER_OTLP_ENDPOINT")}/v1/logs` : "http://localhost:4318/v1/logs"),
|
|
332
|
+
timeout,
|
|
333
|
+
...tls !== void 0 && { tls },
|
|
334
|
+
...compression !== void 0 && { compression },
|
|
335
|
+
...headersList !== void 0 && { headers_list: headersList },
|
|
336
|
+
...encoding !== void 0 && { encoding }
|
|
337
|
+
} };
|
|
338
|
+
}
|
|
339
|
+
const processor = { batch: batchInfo };
|
|
340
|
+
config.logger_provider.processors.push(processor);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
//#endregion
|
|
345
|
+
exports.EnvironmentConfigFactory = EnvironmentConfigFactory;
|
|
346
|
+
exports.setAttributeLimits = setAttributeLimits;
|
|
347
|
+
exports.setLoggerProvider = setLoggerProvider;
|
|
348
|
+
exports.setMeterProvider = setMeterProvider;
|
|
349
|
+
exports.setPropagators = setPropagators;
|
|
350
|
+
exports.setResources = setResources;
|
|
351
|
+
exports.setSampler = setSampler;
|
|
352
|
+
exports.setTracerProvider = setTracerProvider;
|
|
353
|
+
|
|
354
|
+
//# sourceMappingURL=EnvironmentConfigFactory.cjs.map
|