@opentelemetry/configuration 0.210.0 → 0.212.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.
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.setLoggerProvider = exports.setMeterProvider = exports.getTemporalityPreference = exports.setTracerProvider = exports.setPropagator = exports.setAttributeLimits = exports.setResourceAttributes = exports.parseConfigFile = exports.hasValidConfigFile = exports.FileConfigFactory = void 0;
18
+ exports.setLoggerProvider = exports.getSeverity = exports.setMeterProvider = exports.getTemporalityPreference = exports.setTracerProvider = exports.setPropagator = exports.setAttributeLimits = exports.setResourceAttributes = exports.parseConfigFile = exports.hasValidConfigFile = exports.FileConfigFactory = void 0;
19
19
  const core_1 = require("@opentelemetry/core");
20
20
  const configModel_1 = require("./models/configModel");
21
21
  const fs = require("fs");
@@ -51,7 +51,7 @@ function hasValidConfigFile() {
51
51
  }
52
52
  exports.hasValidConfigFile = hasValidConfigFile;
53
53
  function parseConfigFile(config) {
54
- const supportedFileVersions = ['1.0-rc.1', '1.0-rc.2'];
54
+ const supportedFileVersions = ['1.0-rc.3'];
55
55
  const configFile = (0, core_1.getStringFromEnv)('OTEL_EXPERIMENTAL_CONFIG_FILE') || '';
56
56
  const file = fs.readFileSync(configFile, 'utf8');
57
57
  const parsedContent = yaml.parse(file);
@@ -168,13 +168,15 @@ function setAttributeLimits(config, attrLimits) {
168
168
  }
169
169
  exports.setAttributeLimits = setAttributeLimits;
170
170
  function setPropagator(config, propagator) {
171
- if (propagator && propagator.composite) {
171
+ if (propagator && (propagator.composite || propagator.composite_list)) {
172
172
  const auxList = [];
173
173
  const composite = [];
174
- for (let i = 0; i < propagator.composite.length; i++) {
175
- const key = Object.keys(propagator.composite[i])[0];
176
- auxList.push(key);
177
- composite.push({ [key]: null });
174
+ if (propagator.composite) {
175
+ for (let i = 0; i < propagator.composite.length; i++) {
176
+ const key = Object.keys(propagator.composite[i])[0];
177
+ auxList.push(key);
178
+ composite.push({ [key]: null });
179
+ }
178
180
  }
179
181
  const compositeList = (0, utils_1.getStringListFromConfigFile)(propagator['composite_list']);
180
182
  if (compositeList) {
@@ -192,11 +194,12 @@ function setPropagator(config, propagator) {
192
194
  }
193
195
  const compositeListString = (0, utils_1.getStringFromConfigFile)(propagator['composite_list']);
194
196
  if (compositeListString) {
195
- if (config.propagator == null) {
196
- config.propagator = {};
197
- }
198
197
  config.propagator.composite_list = compositeListString;
199
198
  }
199
+ else if (auxList.length > 0) {
200
+ // Generate composite_list from the composite entries
201
+ config.propagator.composite_list = auxList.join(',');
202
+ }
200
203
  }
201
204
  }
202
205
  exports.setPropagator = setPropagator;
@@ -257,18 +260,6 @@ function parseConfigSpanOrLogRecordExporter(exporter, providerType) {
257
260
  : commonModel_1.OtlpHttpEncoding.Protobuf,
258
261
  },
259
262
  };
260
- certFile = (0, utils_1.getStringFromConfigFile)(e['certificate_file']);
261
- if (certFile && parsedExporter.otlp_http) {
262
- parsedExporter.otlp_http.certificate_file = certFile;
263
- }
264
- clientCertFile = (0, utils_1.getStringFromConfigFile)(e['client_certificate_file']);
265
- if (clientCertFile && parsedExporter.otlp_http) {
266
- parsedExporter.otlp_http.client_certificate_file = clientCertFile;
267
- }
268
- clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['client_key_file']);
269
- if (clientKeyFile && parsedExporter.otlp_http) {
270
- parsedExporter.otlp_http.client_key_file = clientKeyFile;
271
- }
272
263
  compression = (0, utils_1.getStringFromConfigFile)(e['compression']);
273
264
  if (compression && parsedExporter.otlp_http) {
274
265
  parsedExporter.otlp_http.compression = compression;
@@ -281,6 +272,15 @@ function parseConfigSpanOrLogRecordExporter(exporter, providerType) {
281
272
  if (headers && parsedExporter.otlp_http) {
282
273
  parsedExporter.otlp_http.headers = headers;
283
274
  }
275
+ if (e['tls']) {
276
+ certFile = (0, utils_1.getStringFromConfigFile)(e['tls']['ca_file']);
277
+ clientCertFile = (0, utils_1.getStringFromConfigFile)(e['tls']['cert_file']);
278
+ clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['tls']['key_file']);
279
+ const tls = (0, utils_1.getHttpTlsConfig)(certFile, clientKeyFile, clientCertFile);
280
+ if (tls) {
281
+ parsedExporter.otlp_http.tls = tls;
282
+ }
283
+ }
284
284
  }
285
285
  break;
286
286
  case 'otlp_grpc':
@@ -292,18 +292,6 @@ function parseConfigSpanOrLogRecordExporter(exporter, providerType) {
292
292
  timeout: (0, utils_1.getNumberFromConfigFile)(e['timeout']) ?? 10000,
293
293
  },
294
294
  };
295
- certFile = (0, utils_1.getStringFromConfigFile)(e['certificate_file']);
296
- if (certFile && parsedExporter.otlp_grpc) {
297
- parsedExporter.otlp_grpc.certificate_file = certFile;
298
- }
299
- clientCertFile = (0, utils_1.getStringFromConfigFile)(e['client_certificate_file']);
300
- if (clientCertFile && parsedExporter.otlp_grpc) {
301
- parsedExporter.otlp_grpc.client_certificate_file = clientCertFile;
302
- }
303
- clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['client_key_file']);
304
- if (clientKeyFile && parsedExporter.otlp_grpc) {
305
- parsedExporter.otlp_grpc.client_key_file = clientKeyFile;
306
- }
307
295
  compression = (0, utils_1.getStringFromConfigFile)(e['compression']);
308
296
  if (compression && parsedExporter.otlp_grpc) {
309
297
  parsedExporter.otlp_grpc.compression = compression;
@@ -316,9 +304,15 @@ function parseConfigSpanOrLogRecordExporter(exporter, providerType) {
316
304
  if (headers && parsedExporter.otlp_grpc) {
317
305
  parsedExporter.otlp_grpc.headers = headers;
318
306
  }
319
- insecure = (0, utils_1.getBooleanFromConfigFile)(e['insecure']);
320
- if ((insecure || insecure === false) && parsedExporter.otlp_grpc) {
321
- parsedExporter.otlp_grpc.insecure = insecure;
307
+ if (e['tls']) {
308
+ certFile = (0, utils_1.getStringFromConfigFile)(e['tls']['ca_file']);
309
+ clientCertFile = (0, utils_1.getStringFromConfigFile)(e['tls']['cert_file']);
310
+ clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['tls']['key_file']);
311
+ insecure = (0, utils_1.getBooleanFromConfigFile)(e['tls']['insecure']);
312
+ const tls = (0, utils_1.getGrpcTlsConfig)(certFile, clientKeyFile, clientCertFile, insecure);
313
+ if (tls) {
314
+ parsedExporter.otlp_grpc.tls = tls;
315
+ }
322
316
  }
323
317
  }
324
318
  break;
@@ -337,18 +331,6 @@ function parseConfigSpanOrLogRecordExporter(exporter, providerType) {
337
331
  console: {},
338
332
  };
339
333
  break;
340
- case 'zipkin':
341
- e = exporter['zipkin'];
342
- if (e) {
343
- parsedExporter = {
344
- zipkin: {
345
- endpoint: (0, utils_1.getStringFromConfigFile)(e['endpoint']) ??
346
- 'http://localhost:9411/api/v2/spans',
347
- timeout: (0, utils_1.getNumberFromConfigFile)(e['timeout']) ?? 10000,
348
- },
349
- };
350
- }
351
- break;
352
334
  }
353
335
  return parsedExporter;
354
336
  }
@@ -357,9 +339,6 @@ function setTracerProvider(config, tracerProvider) {
357
339
  config.tracer_provider = (0, tracerProviderModel_1.initializeDefaultTracerProviderConfiguration)();
358
340
  // Limits
359
341
  if (tracerProvider['limits']) {
360
- if (config.tracer_provider.limits == null) {
361
- config.tracer_provider.limits = {};
362
- }
363
342
  const attributeValueLengthLimit = (0, utils_1.getNumberFromConfigFile)(tracerProvider['limits']['attribute_value_length_limit']);
364
343
  if (attributeValueLengthLimit) {
365
344
  config.tracer_provider.limits.attribute_value_length_limit =
@@ -453,10 +432,7 @@ function getProducers(producers) {
453
432
  for (let j = 0; j < producers.length; j++) {
454
433
  const producer = producers[j];
455
434
  if (Object.keys(producer)[0] === 'opencensus') {
456
- parsedProducers.push({ opencensus: undefined });
457
- }
458
- if (Object.keys(producer)[0] === 'prometheus') {
459
- parsedProducers.push({ prometheus: undefined });
435
+ parsedProducers.push({ opencensus: {} });
460
436
  }
461
437
  }
462
438
  }
@@ -514,18 +490,6 @@ function parseMetricExporter(exporter) {
514
490
  default_histogram_aggregation: getDefaultHistogramAggregation(e['default_histogram_aggregation']),
515
491
  },
516
492
  };
517
- certFile = (0, utils_1.getStringFromConfigFile)(e['certificate_file']);
518
- if (certFile && parsedExporter.otlp_http) {
519
- parsedExporter.otlp_http.certificate_file = certFile;
520
- }
521
- clientCertFile = (0, utils_1.getStringFromConfigFile)(e['client_certificate_file']);
522
- if (clientCertFile && parsedExporter.otlp_http) {
523
- parsedExporter.otlp_http.client_certificate_file = clientCertFile;
524
- }
525
- clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['client_key_file']);
526
- if (clientKeyFile && parsedExporter.otlp_http) {
527
- parsedExporter.otlp_http.client_key_file = clientKeyFile;
528
- }
529
493
  compression = (0, utils_1.getStringFromConfigFile)(e['compression']);
530
494
  if (compression && parsedExporter.otlp_http) {
531
495
  parsedExporter.otlp_http.compression = compression;
@@ -538,6 +502,15 @@ function parseMetricExporter(exporter) {
538
502
  if (headers && parsedExporter.otlp_http) {
539
503
  parsedExporter.otlp_http.headers = headers;
540
504
  }
505
+ if (e['tls']) {
506
+ certFile = (0, utils_1.getStringFromConfigFile)(e['tls']['ca_file']);
507
+ clientCertFile = (0, utils_1.getStringFromConfigFile)(e['tls']['cert_file']);
508
+ clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['tls']['key_file']);
509
+ const tls = (0, utils_1.getHttpTlsConfig)(certFile, clientKeyFile, clientCertFile);
510
+ if (tls) {
511
+ parsedExporter.otlp_http.tls = tls;
512
+ }
513
+ }
541
514
  }
542
515
  break;
543
516
  case 'otlp_grpc':
@@ -551,18 +524,6 @@ function parseMetricExporter(exporter) {
551
524
  default_histogram_aggregation: getDefaultHistogramAggregation(e['default_histogram_aggregation']),
552
525
  },
553
526
  };
554
- certFile = (0, utils_1.getStringFromConfigFile)(e['certificate_file']);
555
- if (certFile && parsedExporter.otlp_grpc) {
556
- parsedExporter.otlp_grpc.certificate_file = certFile;
557
- }
558
- clientCertFile = (0, utils_1.getStringFromConfigFile)(e['client_certificate_file']);
559
- if (clientCertFile && parsedExporter.otlp_grpc) {
560
- parsedExporter.otlp_grpc.client_certificate_file = clientCertFile;
561
- }
562
- clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['client_key_file']);
563
- if (clientKeyFile && parsedExporter.otlp_grpc) {
564
- parsedExporter.otlp_grpc.client_key_file = clientKeyFile;
565
- }
566
527
  compression = (0, utils_1.getStringFromConfigFile)(e['compression']);
567
528
  if (compression && parsedExporter.otlp_grpc) {
568
529
  parsedExporter.otlp_grpc.compression = compression;
@@ -575,9 +536,15 @@ function parseMetricExporter(exporter) {
575
536
  if (headers && parsedExporter.otlp_grpc) {
576
537
  parsedExporter.otlp_grpc.headers = headers;
577
538
  }
578
- insecure = (0, utils_1.getBooleanFromConfigFile)(e['insecure']);
579
- if ((insecure || insecure === false) && parsedExporter.otlp_grpc) {
580
- parsedExporter.otlp_grpc.insecure = insecure;
539
+ if (e['tls']) {
540
+ certFile = (0, utils_1.getStringFromConfigFile)(e['tls']['ca_file']);
541
+ clientCertFile = (0, utils_1.getStringFromConfigFile)(e['tls']['cert_file']);
542
+ clientKeyFile = (0, utils_1.getStringFromConfigFile)(e['tls']['key_file']);
543
+ insecure = (0, utils_1.getBooleanFromConfigFile)(e['tls']['insecure']);
544
+ const tls = (0, utils_1.getGrpcTlsConfig)(certFile, clientKeyFile, clientCertFile, insecure);
545
+ if (tls) {
546
+ parsedExporter.otlp_grpc.tls = tls;
547
+ }
581
548
  }
582
549
  }
583
550
  break;
@@ -594,9 +561,15 @@ function parseMetricExporter(exporter) {
594
561
  }
595
562
  break;
596
563
  case 'console':
597
- parsedExporter = {
598
- console: {},
599
- };
564
+ e = exporter['console'];
565
+ if (e) {
566
+ parsedExporter = {
567
+ console: {
568
+ temporality_preference: getTemporalityPreference(e['temporality_preference']),
569
+ default_histogram_aggregation: getDefaultHistogramAggregation(e['default_histogram_aggregation']),
570
+ },
571
+ };
572
+ }
600
573
  break;
601
574
  }
602
575
  return parsedExporter;
@@ -631,12 +604,37 @@ function setMeterProvider(config, meterProvider) {
631
604
  host: (0, utils_1.getStringFromConfigFile)(element['exporter']['prometheus/development']['host']) ?? 'localhost',
632
605
  port: (0, utils_1.getNumberFromConfigFile)(element['exporter']['prometheus/development']['port']) ?? 9464,
633
606
  without_scope_info: (0, utils_1.getBooleanFromConfigFile)(element['exporter']['prometheus/development']['without_scope_info']) ?? false,
634
- with_resource_constant_labels: {
635
- included: (0, utils_1.getStringListFromConfigFile)(element['exporter']['prometheus/development']['with_resource_constant_labels']['included']) ?? [],
636
- excluded: (0, utils_1.getStringListFromConfigFile)(element['exporter']['prometheus/development']['with_resource_constant_labels']['excluded']) ?? [],
637
- },
607
+ without_target_info: (0, utils_1.getBooleanFromConfigFile)(element['exporter']['prometheus/development']['without_target_info']) ?? false,
638
608
  },
639
609
  };
610
+ if (element['exporter']['prometheus/development']['with_resource_constant_labels']) {
611
+ exporter['prometheus/development'].with_resource_constant_labels =
612
+ {
613
+ included: (0, utils_1.getStringListFromConfigFile)(element['exporter']['prometheus/development']['with_resource_constant_labels']?.['included']) ?? [],
614
+ excluded: (0, utils_1.getStringListFromConfigFile)(element['exporter']['prometheus/development']['with_resource_constant_labels']?.['excluded']) ?? [],
615
+ };
616
+ }
617
+ if (element['exporter']['prometheus/development']['translation_strategy']) {
618
+ const ts = (0, utils_1.getStringFromConfigFile)(element['exporter']['prometheus/development']['translation_strategy']);
619
+ switch (ts) {
620
+ case 'underscore_escaping_with_suffixes':
621
+ exporter['prometheus/development'].translation_strategy =
622
+ meterProviderModel_1.ExperimentalPrometheusTranslationStrategy.UnderscoreEscapingWithSuffixes;
623
+ break;
624
+ case 'underscore_escaping_without_suffixes':
625
+ exporter['prometheus/development'].translation_strategy =
626
+ meterProviderModel_1.ExperimentalPrometheusTranslationStrategy.UnderscoreEscapingWithoutSuffixes;
627
+ break;
628
+ case 'no_utf8_escaping_with_suffixes':
629
+ exporter['prometheus/development'].translation_strategy =
630
+ meterProviderModel_1.ExperimentalPrometheusTranslationStrategy.NoUtf8EscapingWithSuffixes;
631
+ break;
632
+ case 'no_translation':
633
+ exporter['prometheus/development'].translation_strategy =
634
+ meterProviderModel_1.ExperimentalPrometheusTranslationStrategy.NoTranslation;
635
+ break;
636
+ }
637
+ }
640
638
  const pullReader = {
641
639
  pull: {
642
640
  exporter: exporter,
@@ -807,6 +805,62 @@ function setMeterProvider(config, meterProvider) {
807
805
  }
808
806
  }
809
807
  exports.setMeterProvider = setMeterProvider;
808
+ function getSeverity(severity) {
809
+ const severityType = (0, utils_1.getStringFromConfigFile)(severity);
810
+ switch (severityType) {
811
+ case 'debug':
812
+ return commonModel_1.SeverityNumber.DEBUG;
813
+ case 'debug2':
814
+ return commonModel_1.SeverityNumber.DEBUG2;
815
+ case 'debug3':
816
+ return commonModel_1.SeverityNumber.DEBUG3;
817
+ case 'debug4':
818
+ return commonModel_1.SeverityNumber.DEBUG4;
819
+ case 'info':
820
+ return commonModel_1.SeverityNumber.INFO;
821
+ case 'info2':
822
+ return commonModel_1.SeverityNumber.INFO2;
823
+ case 'info3':
824
+ return commonModel_1.SeverityNumber.INFO3;
825
+ case 'info4':
826
+ return commonModel_1.SeverityNumber.INFO4;
827
+ case 'warn':
828
+ return commonModel_1.SeverityNumber.WARN;
829
+ case 'warn2':
830
+ return commonModel_1.SeverityNumber.WARN2;
831
+ case 'warn3':
832
+ return commonModel_1.SeverityNumber.WARN3;
833
+ case 'warn4':
834
+ return commonModel_1.SeverityNumber.WARN4;
835
+ case 'error':
836
+ return commonModel_1.SeverityNumber.ERROR;
837
+ case 'error2':
838
+ return commonModel_1.SeverityNumber.ERROR2;
839
+ case 'error3':
840
+ return commonModel_1.SeverityNumber.ERROR3;
841
+ case 'error4':
842
+ return commonModel_1.SeverityNumber.ERROR4;
843
+ case 'fatal':
844
+ return commonModel_1.SeverityNumber.FATAL;
845
+ case 'fatal2':
846
+ return commonModel_1.SeverityNumber.FATAL2;
847
+ case 'fatal3':
848
+ return commonModel_1.SeverityNumber.FATAL3;
849
+ case 'fatal4':
850
+ return commonModel_1.SeverityNumber.FATAL4;
851
+ case 'trace':
852
+ return commonModel_1.SeverityNumber.TRACE;
853
+ case 'trace2':
854
+ return commonModel_1.SeverityNumber.TRACE2;
855
+ case 'trace3':
856
+ return commonModel_1.SeverityNumber.TRACE3;
857
+ case 'trace4':
858
+ return commonModel_1.SeverityNumber.TRACE4;
859
+ default:
860
+ return undefined;
861
+ }
862
+ }
863
+ exports.getSeverity = getSeverity;
810
864
  function setLoggerProvider(config, loggerProvider) {
811
865
  if (loggerProvider && loggerProvider.processors?.length > 0) {
812
866
  config.logger_provider = (0, loggerProviderModel_1.initializeDefaultLoggerProviderConfiguration)();
@@ -815,9 +869,6 @@ function setLoggerProvider(config, loggerProvider) {
815
869
  const attributeValueLengthLimit = (0, utils_1.getNumberFromConfigFile)(loggerProvider['limits']['attribute_value_length_limit']);
816
870
  const attributeCountLimit = (0, utils_1.getNumberFromConfigFile)(loggerProvider['limits']['attribute_count_limit']);
817
871
  if (attributeValueLengthLimit || attributeCountLimit) {
818
- if (config.logger_provider.limits == null) {
819
- config.logger_provider.limits = { attribute_count_limit: 128 };
820
- }
821
872
  if (attributeValueLengthLimit) {
822
873
  config.logger_provider.limits.attribute_value_length_limit =
823
874
  attributeValueLengthLimit;
@@ -863,11 +914,11 @@ function setLoggerProvider(config, loggerProvider) {
863
914
  }
864
915
  // logger_configurator/development
865
916
  if (loggerProvider['logger_configurator/development']) {
866
- const defaultConfigDisabled = (0, utils_1.getBooleanFromConfigFile)(loggerProvider['logger_configurator/development']['default_config']?.['disabled']);
917
+ const defaultConfigDisabled = (0, utils_1.getBooleanFromConfigFile)(loggerProvider['logger_configurator/development']['default_config']?.['enabled']);
867
918
  if (defaultConfigDisabled || defaultConfigDisabled === false) {
868
919
  config.logger_provider['logger_configurator/development'] = {
869
920
  default_config: {
870
- disabled: defaultConfigDisabled,
921
+ enabled: defaultConfigDisabled,
871
922
  },
872
923
  };
873
924
  }
@@ -876,19 +927,32 @@ function setLoggerProvider(config, loggerProvider) {
876
927
  const loggers = [];
877
928
  for (let i = 0; i < loggerProvider['logger_configurator/development'].loggers.length; i++) {
878
929
  const logger = loggerProvider['logger_configurator/development'].loggers[i];
879
- let disabled = false;
930
+ let enabled = false;
931
+ let traceBased;
932
+ let minSeverity;
880
933
  if (logger['config']) {
881
- disabled =
882
- (0, utils_1.getBooleanFromConfigFile)(logger['config']['disabled']) ?? false;
934
+ enabled =
935
+ (0, utils_1.getBooleanFromConfigFile)(logger['config']['enabled']) ?? false;
936
+ traceBased = (0, utils_1.getBooleanFromConfigFile)(logger['config']['trace_based']);
937
+ if (logger['config']['minimum_severity']) {
938
+ minSeverity = getSeverity(logger['config']['minimum_severity']);
939
+ }
883
940
  }
884
941
  const name = (0, utils_1.getStringFromConfigFile)(logger['name']);
885
942
  if (name) {
886
- loggers.push({
943
+ const loggerNew = {
887
944
  name: name,
888
945
  config: {
889
- disabled: disabled,
946
+ enabled: enabled,
890
947
  },
891
- });
948
+ };
949
+ if (traceBased !== undefined) {
950
+ loggerNew.config.trace_based = traceBased;
951
+ }
952
+ if (minSeverity !== undefined) {
953
+ loggerNew.config.minimum_severity = minSeverity;
954
+ }
955
+ loggers.push(loggerNew);
892
956
  }
893
957
  }
894
958
  if (config.logger_provider['logger_configurator/development'] == null) {