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_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT = exports.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 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_BOOLEAN_KEYS = ['OTEL_SDK_DISABLED'];
|
27 | function isEnvVarABoolean(key) {
|
28 | return (ENVIRONMENT_BOOLEAN_KEYS.indexOf(key) > -1);
|
29 | }
|
30 | const ENVIRONMENT_NUMBERS_KEYS = [
|
31 | 'OTEL_BSP_EXPORT_TIMEOUT',
|
32 | 'OTEL_BSP_MAX_EXPORT_BATCH_SIZE',
|
33 | 'OTEL_BSP_MAX_QUEUE_SIZE',
|
34 | 'OTEL_BSP_SCHEDULE_DELAY',
|
35 | 'OTEL_BLRP_EXPORT_TIMEOUT',
|
36 | 'OTEL_BLRP_MAX_EXPORT_BATCH_SIZE',
|
37 | 'OTEL_BLRP_MAX_QUEUE_SIZE',
|
38 | 'OTEL_BLRP_SCHEDULE_DELAY',
|
39 | 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT',
|
40 | 'OTEL_ATTRIBUTE_COUNT_LIMIT',
|
41 | 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT',
|
42 | 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT',
|
43 | 'OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT',
|
44 | 'OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT',
|
45 | 'OTEL_SPAN_EVENT_COUNT_LIMIT',
|
46 | 'OTEL_SPAN_LINK_COUNT_LIMIT',
|
47 | 'OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT',
|
48 | 'OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT',
|
49 | 'OTEL_EXPORTER_OTLP_TIMEOUT',
|
50 | 'OTEL_EXPORTER_OTLP_TRACES_TIMEOUT',
|
51 | 'OTEL_EXPORTER_OTLP_METRICS_TIMEOUT',
|
52 | 'OTEL_EXPORTER_OTLP_LOGS_TIMEOUT',
|
53 | 'OTEL_EXPORTER_JAEGER_AGENT_PORT',
|
54 | ];
|
55 | function isEnvVarANumber(key) {
|
56 | return (ENVIRONMENT_NUMBERS_KEYS.indexOf(key) > -1);
|
57 | }
|
58 | const ENVIRONMENT_LISTS_KEYS = [
|
59 | 'OTEL_NO_PATCH_MODULES',
|
60 | 'OTEL_PROPAGATORS',
|
61 | ];
|
62 | function isEnvVarAList(key) {
|
63 | return ENVIRONMENT_LISTS_KEYS.indexOf(key) > -1;
|
64 | }
|
65 | exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;
|
66 | exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128;
|
67 | exports.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 128;
|
68 | exports.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT = 128;
|
69 |
|
70 |
|
71 |
|
72 | exports.DEFAULT_ENVIRONMENT = {
|
73 | OTEL_SDK_DISABLED: false,
|
74 | CONTAINER_NAME: '',
|
75 | ECS_CONTAINER_METADATA_URI_V4: '',
|
76 | ECS_CONTAINER_METADATA_URI: '',
|
77 | HOSTNAME: '',
|
78 | KUBERNETES_SERVICE_HOST: '',
|
79 | NAMESPACE: '',
|
80 | OTEL_BSP_EXPORT_TIMEOUT: 30000,
|
81 | OTEL_BSP_MAX_EXPORT_BATCH_SIZE: 512,
|
82 | OTEL_BSP_MAX_QUEUE_SIZE: 2048,
|
83 | OTEL_BSP_SCHEDULE_DELAY: 5000,
|
84 | OTEL_BLRP_EXPORT_TIMEOUT: 30000,
|
85 | OTEL_BLRP_MAX_EXPORT_BATCH_SIZE: 512,
|
86 | OTEL_BLRP_MAX_QUEUE_SIZE: 2048,
|
87 | OTEL_BLRP_SCHEDULE_DELAY: 5000,
|
88 | OTEL_EXPORTER_JAEGER_AGENT_HOST: '',
|
89 | OTEL_EXPORTER_JAEGER_AGENT_PORT: 6832,
|
90 | OTEL_EXPORTER_JAEGER_ENDPOINT: '',
|
91 | OTEL_EXPORTER_JAEGER_PASSWORD: '',
|
92 | OTEL_EXPORTER_JAEGER_USER: '',
|
93 | OTEL_EXPORTER_OTLP_ENDPOINT: '',
|
94 | OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: '',
|
95 | OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: '',
|
96 | OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: '',
|
97 | OTEL_EXPORTER_OTLP_HEADERS: '',
|
98 | OTEL_EXPORTER_OTLP_TRACES_HEADERS: '',
|
99 | OTEL_EXPORTER_OTLP_METRICS_HEADERS: '',
|
100 | OTEL_EXPORTER_OTLP_LOGS_HEADERS: '',
|
101 | OTEL_EXPORTER_OTLP_TIMEOUT: 10000,
|
102 | OTEL_EXPORTER_OTLP_TRACES_TIMEOUT: 10000,
|
103 | OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: 10000,
|
104 | OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: 10000,
|
105 | OTEL_EXPORTER_ZIPKIN_ENDPOINT: 'http://localhost:9411/api/v2/spans',
|
106 | OTEL_LOG_LEVEL: api_1.DiagLogLevel.INFO,
|
107 | OTEL_NO_PATCH_MODULES: [],
|
108 | OTEL_PROPAGATORS: ['tracecontext', 'baggage'],
|
109 | OTEL_RESOURCE_ATTRIBUTES: '',
|
110 | OTEL_SERVICE_NAME: '',
|
111 | OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT: exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
112 | OTEL_ATTRIBUTE_COUNT_LIMIT: exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,
|
113 | OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT: exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
114 | OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,
|
115 | OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT: exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
116 | OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT: exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,
|
117 | OTEL_SPAN_EVENT_COUNT_LIMIT: 128,
|
118 | OTEL_SPAN_LINK_COUNT_LIMIT: 128,
|
119 | OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT: exports.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,
|
120 | OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT: exports.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,
|
121 | OTEL_TRACES_EXPORTER: '',
|
122 | OTEL_TRACES_SAMPLER: sampling_1.TracesSamplerValues.ParentBasedAlwaysOn,
|
123 | OTEL_TRACES_SAMPLER_ARG: '',
|
124 | OTEL_LOGS_EXPORTER: '',
|
125 | OTEL_EXPORTER_OTLP_INSECURE: '',
|
126 | OTEL_EXPORTER_OTLP_TRACES_INSECURE: '',
|
127 | OTEL_EXPORTER_OTLP_METRICS_INSECURE: '',
|
128 | OTEL_EXPORTER_OTLP_LOGS_INSECURE: '',
|
129 | OTEL_EXPORTER_OTLP_CERTIFICATE: '',
|
130 | OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE: '',
|
131 | OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE: '',
|
132 | OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE: '',
|
133 | OTEL_EXPORTER_OTLP_COMPRESSION: '',
|
134 | OTEL_EXPORTER_OTLP_TRACES_COMPRESSION: '',
|
135 | OTEL_EXPORTER_OTLP_METRICS_COMPRESSION: '',
|
136 | OTEL_EXPORTER_OTLP_LOGS_COMPRESSION: '',
|
137 | OTEL_EXPORTER_OTLP_CLIENT_KEY: '',
|
138 | OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY: '',
|
139 | OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY: '',
|
140 | OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY: '',
|
141 | OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE: '',
|
142 | OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE: '',
|
143 | OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE: '',
|
144 | OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE: '',
|
145 | OTEL_EXPORTER_OTLP_PROTOCOL: 'http/protobuf',
|
146 | OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: 'http/protobuf',
|
147 | OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: 'http/protobuf',
|
148 | OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: 'http/protobuf',
|
149 | OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'cumulative',
|
150 | };
|
151 |
|
152 |
|
153 |
|
154 |
|
155 |
|
156 | function parseBoolean(key, environment, values) {
|
157 | if (typeof values[key] === 'undefined') {
|
158 | return;
|
159 | }
|
160 | const value = String(values[key]);
|
161 |
|
162 | environment[key] = value.toLowerCase() === 'true';
|
163 | }
|
164 |
|
165 |
|
166 |
|
167 |
|
168 |
|
169 |
|
170 |
|
171 |
|
172 | function parseNumber(name, environment, values, min = -Infinity, max = Infinity) {
|
173 | if (typeof values[name] !== 'undefined') {
|
174 | const value = Number(values[name]);
|
175 | if (!isNaN(value)) {
|
176 | if (value < min) {
|
177 | environment[name] = min;
|
178 | }
|
179 | else if (value > max) {
|
180 | environment[name] = max;
|
181 | }
|
182 | else {
|
183 | environment[name] = value;
|
184 | }
|
185 | }
|
186 | }
|
187 | }
|
188 |
|
189 |
|
190 |
|
191 |
|
192 |
|
193 |
|
194 |
|
195 | function parseStringList(name, output, input, separator = DEFAULT_LIST_SEPARATOR) {
|
196 | const givenValue = input[name];
|
197 | if (typeof givenValue === 'string') {
|
198 | output[name] = givenValue.split(separator).map(v => v.trim());
|
199 | }
|
200 | }
|
201 |
|
202 | const logLevelMap = {
|
203 | ALL: api_1.DiagLogLevel.ALL,
|
204 | VERBOSE: api_1.DiagLogLevel.VERBOSE,
|
205 | DEBUG: api_1.DiagLogLevel.DEBUG,
|
206 | INFO: api_1.DiagLogLevel.INFO,
|
207 | WARN: api_1.DiagLogLevel.WARN,
|
208 | ERROR: api_1.DiagLogLevel.ERROR,
|
209 | NONE: api_1.DiagLogLevel.NONE,
|
210 | };
|
211 |
|
212 |
|
213 |
|
214 |
|
215 |
|
216 |
|
217 | function setLogLevelFromEnv(key, environment, values) {
|
218 | const value = values[key];
|
219 | if (typeof value === 'string') {
|
220 | const theLevel = logLevelMap[value.toUpperCase()];
|
221 | if (theLevel != null) {
|
222 | environment[key] = theLevel;
|
223 | }
|
224 | }
|
225 | }
|
226 |
|
227 |
|
228 |
|
229 |
|
230 | function parseEnvironment(values) {
|
231 | const environment = {};
|
232 | for (const env in exports.DEFAULT_ENVIRONMENT) {
|
233 | const key = env;
|
234 | switch (key) {
|
235 | case 'OTEL_LOG_LEVEL':
|
236 | setLogLevelFromEnv(key, environment, values);
|
237 | break;
|
238 | default:
|
239 | if (isEnvVarABoolean(key)) {
|
240 | parseBoolean(key, environment, values);
|
241 | }
|
242 | else if (isEnvVarANumber(key)) {
|
243 | parseNumber(key, environment, values);
|
244 | }
|
245 | else if (isEnvVarAList(key)) {
|
246 | parseStringList(key, environment, values);
|
247 | }
|
248 | else {
|
249 | const value = values[key];
|
250 | if (typeof value !== 'undefined' && value !== null) {
|
251 | environment[key] = String(value);
|
252 | }
|
253 | }
|
254 | }
|
255 | }
|
256 | return environment;
|
257 | }
|
258 | exports.parseEnvironment = parseEnvironment;
|
259 |
|
260 |
|
261 |
|
262 |
|
263 | function getEnvWithoutDefaults() {
|
264 | return typeof process !== 'undefined' && process && process.env
|
265 | ? parseEnvironment(process.env)
|
266 | : parseEnvironment(globalThis_1._globalThis);
|
267 | }
|
268 | exports.getEnvWithoutDefaults = getEnvWithoutDefaults;
|
269 |
|
\ | No newline at end of file |