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.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 DEFAULT_LIST_SEPARATOR = ',';
|
22 |
|
23 |
|
24 |
|
25 | const ENVIRONMENT_NUMBERS_KEYS = [
|
26 | 'OTEL_BSP_EXPORT_TIMEOUT',
|
27 | 'OTEL_BSP_MAX_EXPORT_BATCH_SIZE',
|
28 | 'OTEL_BSP_MAX_QUEUE_SIZE',
|
29 | 'OTEL_BSP_SCHEDULE_DELAY',
|
30 | 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT',
|
31 | 'OTEL_ATTRIBUTE_COUNT_LIMIT',
|
32 | 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT',
|
33 | 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT',
|
34 | 'OTEL_SPAN_EVENT_COUNT_LIMIT',
|
35 | 'OTEL_SPAN_LINK_COUNT_LIMIT',
|
36 | 'OTEL_EXPORTER_JAEGER_AGENT_PORT',
|
37 | ];
|
38 | function isEnvVarANumber(key) {
|
39 | return (ENVIRONMENT_NUMBERS_KEYS.indexOf(key) > -1);
|
40 | }
|
41 | const ENVIRONMENT_LISTS_KEYS = [
|
42 | 'OTEL_NO_PATCH_MODULES',
|
43 | 'OTEL_PROPAGATORS',
|
44 | ];
|
45 | function isEnvVarAList(key) {
|
46 | return ENVIRONMENT_LISTS_KEYS.indexOf(key) > -1;
|
47 | }
|
48 | exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;
|
49 | exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128;
|
50 |
|
51 |
|
52 |
|
53 | exports.DEFAULT_ENVIRONMENT = {
|
54 | CONTAINER_NAME: '',
|
55 | ECS_CONTAINER_METADATA_URI_V4: '',
|
56 | ECS_CONTAINER_METADATA_URI: '',
|
57 | HOSTNAME: '',
|
58 | KUBERNETES_SERVICE_HOST: '',
|
59 | NAMESPACE: '',
|
60 | OTEL_BSP_EXPORT_TIMEOUT: 30000,
|
61 | OTEL_BSP_MAX_EXPORT_BATCH_SIZE: 512,
|
62 | OTEL_BSP_MAX_QUEUE_SIZE: 2048,
|
63 | OTEL_BSP_SCHEDULE_DELAY: 5000,
|
64 | OTEL_EXPORTER_JAEGER_AGENT_HOST: '',
|
65 | OTEL_EXPORTER_JAEGER_AGENT_PORT: 6832,
|
66 | OTEL_EXPORTER_JAEGER_ENDPOINT: '',
|
67 | OTEL_EXPORTER_JAEGER_PASSWORD: '',
|
68 | OTEL_EXPORTER_JAEGER_USER: '',
|
69 | OTEL_EXPORTER_OTLP_ENDPOINT: '',
|
70 | OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: '',
|
71 | OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: '',
|
72 | OTEL_EXPORTER_OTLP_HEADERS: '',
|
73 | OTEL_EXPORTER_OTLP_TRACES_HEADERS: '',
|
74 | OTEL_EXPORTER_OTLP_METRICS_HEADERS: '',
|
75 | OTEL_EXPORTER_ZIPKIN_ENDPOINT: 'http://localhost:9411/api/v2/spans',
|
76 | OTEL_LOG_LEVEL: api_1.DiagLogLevel.INFO,
|
77 | OTEL_NO_PATCH_MODULES: [],
|
78 | OTEL_PROPAGATORS: ['tracecontext', 'baggage'],
|
79 | OTEL_RESOURCE_ATTRIBUTES: '',
|
80 | OTEL_SERVICE_NAME: '',
|
81 | OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT: exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
82 | OTEL_ATTRIBUTE_COUNT_LIMIT: exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,
|
83 | OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT: exports.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,
|
84 | OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: exports.DEFAULT_ATTRIBUTE_COUNT_LIMIT,
|
85 | OTEL_SPAN_EVENT_COUNT_LIMIT: 128,
|
86 | OTEL_SPAN_LINK_COUNT_LIMIT: 128,
|
87 | OTEL_TRACES_EXPORTER: 'none',
|
88 | OTEL_TRACES_SAMPLER: sampling_1.TracesSamplerValues.ParentBasedAlwaysOn,
|
89 | OTEL_TRACES_SAMPLER_ARG: '',
|
90 | OTEL_EXPORTER_OTLP_COMPRESSION: '',
|
91 | OTEL_EXPORTER_OTLP_TRACES_COMPRESSION: '',
|
92 | OTEL_EXPORTER_OTLP_METRICS_COMPRESSION: ''
|
93 | };
|
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 | function parseNumber(name, environment, values, min = -Infinity, max = Infinity) {
|
103 | if (typeof values[name] !== 'undefined') {
|
104 | const value = Number(values[name]);
|
105 | if (!isNaN(value)) {
|
106 | if (value < min) {
|
107 | environment[name] = min;
|
108 | }
|
109 | else if (value > max) {
|
110 | environment[name] = max;
|
111 | }
|
112 | else {
|
113 | environment[name] = value;
|
114 | }
|
115 | }
|
116 | }
|
117 | }
|
118 |
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 | function parseStringList(name, output, input, separator = DEFAULT_LIST_SEPARATOR) {
|
126 | const givenValue = input[name];
|
127 | if (typeof givenValue === 'string') {
|
128 | output[name] = givenValue.split(separator).map(v => v.trim());
|
129 | }
|
130 | }
|
131 |
|
132 | const logLevelMap = {
|
133 | ALL: api_1.DiagLogLevel.ALL,
|
134 | VERBOSE: api_1.DiagLogLevel.VERBOSE,
|
135 | DEBUG: api_1.DiagLogLevel.DEBUG,
|
136 | INFO: api_1.DiagLogLevel.INFO,
|
137 | WARN: api_1.DiagLogLevel.WARN,
|
138 | ERROR: api_1.DiagLogLevel.ERROR,
|
139 | NONE: api_1.DiagLogLevel.NONE,
|
140 | };
|
141 |
|
142 |
|
143 |
|
144 |
|
145 |
|
146 |
|
147 | function setLogLevelFromEnv(key, environment, values) {
|
148 | const value = values[key];
|
149 | if (typeof value === 'string') {
|
150 | const theLevel = logLevelMap[value.toUpperCase()];
|
151 | if (theLevel != null) {
|
152 | environment[key] = theLevel;
|
153 | }
|
154 | }
|
155 | }
|
156 |
|
157 |
|
158 |
|
159 |
|
160 | function parseEnvironment(values) {
|
161 | const environment = {};
|
162 | for (const env in exports.DEFAULT_ENVIRONMENT) {
|
163 | const key = env;
|
164 | switch (key) {
|
165 | case 'OTEL_LOG_LEVEL':
|
166 | setLogLevelFromEnv(key, environment, values);
|
167 | break;
|
168 | default:
|
169 | if (isEnvVarANumber(key)) {
|
170 | parseNumber(key, environment, values);
|
171 | }
|
172 | else if (isEnvVarAList(key)) {
|
173 | parseStringList(key, environment, values);
|
174 | }
|
175 | else {
|
176 | const value = values[key];
|
177 | if (typeof value !== 'undefined' && value !== null) {
|
178 | environment[key] = String(value);
|
179 | }
|
180 | }
|
181 | }
|
182 | }
|
183 | return environment;
|
184 | }
|
185 | exports.parseEnvironment = parseEnvironment;
|
186 |
|
\ | No newline at end of file |