1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | Object.defineProperty(exports, "__esModule", { value: true });
|
18 | exports.getEnvWithoutDefaults = exports.parseEnvironment = exports.DEFAULT_ENVIRONMENT = exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT = exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = void 0;
|
19 | const api_1 = require("@opentelemetry/api");
|
20 | const sampling_1 = require("./sampling");
|
21 | const globalThis_1 = require("../platform/browser/globalThis");
|
22 | const DEFAULT_LIST_SEPARATOR = ',';
|
23 |
|
24 |
|
25 |
|
26 | const ENVIRONMENT_NUMBERS_KEYS = [
|
27 | 'OTEL_BSP_EXPORT_TIMEOUT',
|
28 | 'OTEL_BSP_MAX_EXPORT_BATCH_SIZE',
|
29 | 'OTEL_BSP_MAX_QUEUE_SIZE',
|
30 | 'OTEL_BSP_SCHEDULE_DELAY',
|
31 | 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT',
|
32 | 'OTEL_ATTRIBUTE_COUNT_LIMIT',
|
33 | 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT',
|
34 | 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT',
|
35 | 'OTEL_SPAN_EVENT_COUNT_LIMIT',
|
36 | 'OTEL_SPAN_LINK_COUNT_LIMIT',
|
37 | 'OTEL_EXPORTER_OTLP_TIMEOUT',
|
38 | 'OTEL_EXPORTER_OTLP_TRACES_TIMEOUT',
|
39 | 'OTEL_EXPORTER_OTLP_METRICS_TIMEOUT',
|
40 | 'OTEL_EXPORTER_JAEGER_AGENT_PORT',
|
41 | ];
|
42 | function isEnvVarANumber(key) {
|
43 | return (ENVIRONMENT_NUMBERS_KEYS.indexOf(key) > -1);
|
44 | }
|
45 | const ENVIRONMENT_LISTS_KEYS = [
|
46 | 'OTEL_NO_PATCH_MODULES',
|
47 | 'OTEL_PROPAGATORS',
|
48 | ];
|
49 | function isEnvVarAList(key) {
|
50 | return ENVIRONMENT_LISTS_KEYS.indexOf(key) > -1;
|
51 | }
|
52 | exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;
|
53 | exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128;
|
54 |
|
55 |
|
56 |
|
57 | exports.DEFAULT_ENVIRONMENT = {
|
58 | CONTAINER_NAME: '',
|
59 | ECS_CONTAINER_METADATA_URI_V4: '',
|
60 | ECS_CONTAINER_METADATA_URI: '',
|
61 | HOSTNAME: '',
|
62 | KUBERNETES_SERVICE_HOST: '',
|
63 | NAMESPACE: '',
|
64 | OTEL_BSP_EXPORT_TIMEOUT: 30000,
|
65 | OTEL_BSP_MAX_EXPORT_BATCH_SIZE: 512,
|
66 | OTEL_BSP_MAX_QUEUE_SIZE: 2048,
|
67 | OTEL_BSP_SCHEDULE_DELAY: 5000,
|
68 | OTEL_EXPORTER_JAEGER_AGENT_HOST: '',
|
69 | OTEL_EXPORTER_JAEGER_AGENT_PORT: 6832,
|
70 | OTEL_EXPORTER_JAEGER_ENDPOINT: '',
|
71 | OTEL_EXPORTER_JAEGER_PASSWORD: '',
|
72 | OTEL_EXPORTER_JAEGER_USER: '',
|
73 | OTEL_EXPORTER_OTLP_ENDPOINT: '',
|
74 | OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: '',
|
75 | OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: '',
|
76 | OTEL_EXPORTER_OTLP_HEADERS: '',
|
77 | OTEL_EXPORTER_OTLP_TRACES_HEADERS: '',
|
78 | OTEL_EXPORTER_OTLP_METRICS_HEADERS: '',
|
79 | OTEL_EXPORTER_OTLP_TIMEOUT: 10000,
|
80 | OTEL_EXPORTER_OTLP_TRACES_TIMEOUT: 10000,
|
81 | OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: 10000,
|
82 | OTEL_EXPORTER_ZIPKIN_ENDPOINT: 'http://localhost:9411/api/v2/spans',
|
83 | OTEL_LOG_LEVEL: api_1.DiagLogLevel.INFO,
|
84 | OTEL_NO_PATCH_MODULES: [],
|
85 | OTEL_PROPAGATORS: ['tracecontext', 'baggage'],
|
86 | OTEL_RESOURCE_ATTRIBUTES: '',
|
87 | OTEL_SERVICE_NAME: '',
|
88 | OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT: exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
89 | OTEL_ATTRIBUTE_COUNT_LIMIT: exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,
|
90 | OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT: exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
91 | OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,
|
92 | OTEL_SPAN_EVENT_COUNT_LIMIT: 128,
|
93 | OTEL_SPAN_LINK_COUNT_LIMIT: 128,
|
94 | OTEL_TRACES_EXPORTER: 'otlp',
|
95 | OTEL_TRACES_SAMPLER: sampling_1.TracesSamplerValues.ParentBasedAlwaysOn,
|
96 | OTEL_TRACES_SAMPLER_ARG: '',
|
97 | OTEL_EXPORTER_OTLP_INSECURE: '',
|
98 | OTEL_EXPORTER_OTLP_TRACES_INSECURE: '',
|
99 | OTEL_EXPORTER_OTLP_METRICS_INSECURE: '',
|
100 | OTEL_EXPORTER_OTLP_CERTIFICATE: '',
|
101 | OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE: '',
|
102 | OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE: '',
|
103 | OTEL_EXPORTER_OTLP_COMPRESSION: '',
|
104 | OTEL_EXPORTER_OTLP_TRACES_COMPRESSION: '',
|
105 | OTEL_EXPORTER_OTLP_METRICS_COMPRESSION: '',
|
106 | OTEL_EXPORTER_OTLP_CLIENT_KEY: '',
|
107 | OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY: '',
|
108 | OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY: '',
|
109 | OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE: '',
|
110 | OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE: '',
|
111 | OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE: '',
|
112 | OTEL_EXPORTER_OTLP_PROTOCOL: 'http/protobuf',
|
113 | OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: 'http/protobuf',
|
114 | OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: 'http/protobuf',
|
115 | OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'cumulative'
|
116 | };
|
117 |
|
118 |
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 | function parseNumber(name, environment, values, min = -Infinity, max = Infinity) {
|
126 | if (typeof values[name] !== 'undefined') {
|
127 | const value = Number(values[name]);
|
128 | if (!isNaN(value)) {
|
129 | if (value < min) {
|
130 | environment[name] = min;
|
131 | }
|
132 | else if (value > max) {
|
133 | environment[name] = max;
|
134 | }
|
135 | else {
|
136 | environment[name] = value;
|
137 | }
|
138 | }
|
139 | }
|
140 | }
|
141 |
|
142 |
|
143 |
|
144 |
|
145 |
|
146 |
|
147 |
|
148 | function parseStringList(name, output, input, separator = DEFAULT_LIST_SEPARATOR) {
|
149 | const givenValue = input[name];
|
150 | if (typeof givenValue === 'string') {
|
151 | output[name] = givenValue.split(separator).map(v => v.trim());
|
152 | }
|
153 | }
|
154 |
|
155 | const logLevelMap = {
|
156 | ALL: api_1.DiagLogLevel.ALL,
|
157 | VERBOSE: api_1.DiagLogLevel.VERBOSE,
|
158 | DEBUG: api_1.DiagLogLevel.DEBUG,
|
159 | INFO: api_1.DiagLogLevel.INFO,
|
160 | WARN: api_1.DiagLogLevel.WARN,
|
161 | ERROR: api_1.DiagLogLevel.ERROR,
|
162 | NONE: api_1.DiagLogLevel.NONE,
|
163 | };
|
164 |
|
165 |
|
166 |
|
167 |
|
168 |
|
169 |
|
170 | function setLogLevelFromEnv(key, environment, values) {
|
171 | const value = values[key];
|
172 | if (typeof value === 'string') {
|
173 | const theLevel = logLevelMap[value.toUpperCase()];
|
174 | if (theLevel != null) {
|
175 | environment[key] = theLevel;
|
176 | }
|
177 | }
|
178 | }
|
179 |
|
180 |
|
181 |
|
182 |
|
183 | function parseEnvironment(values) {
|
184 | const environment = {};
|
185 | for (const env in exports.DEFAULT_ENVIRONMENT) {
|
186 | const key = env;
|
187 | switch (key) {
|
188 | case 'OTEL_LOG_LEVEL':
|
189 | setLogLevelFromEnv(key, environment, values);
|
190 | break;
|
191 | default:
|
192 | if (isEnvVarANumber(key)) {
|
193 | parseNumber(key, environment, values);
|
194 | }
|
195 | else if (isEnvVarAList(key)) {
|
196 | parseStringList(key, environment, values);
|
197 | }
|
198 | else {
|
199 | const value = values[key];
|
200 | if (typeof value !== 'undefined' && value !== null) {
|
201 | environment[key] = String(value);
|
202 | }
|
203 | }
|
204 | }
|
205 | }
|
206 | return environment;
|
207 | }
|
208 | exports.parseEnvironment = parseEnvironment;
|
209 |
|
210 |
|
211 |
|
212 |
|
213 | function getEnvWithoutDefaults() {
|
214 | return typeof process !== 'undefined' ?
|
215 | parseEnvironment(process.env) :
|
216 | parseEnvironment(globalThis_1._globalThis);
|
217 | }
|
218 | exports.getEnvWithoutDefaults = getEnvWithoutDefaults;
|
219 |
|
\ | No newline at end of file |