@@ -13,6 +13,7 @@ const configValidators = require('./configValidators');
1313const deepMerge = require ( '../util/deepMerge' ) ;
1414const { DEFAULT_STACK_TRACE_LENGTH , DEFAULT_STACK_TRACE_MODE } = require ( '../util/constants' ) ;
1515const { validateStackTraceMode, validateStackTraceLength } = require ( './configValidators/stackTraceValidation' ) ;
16+ const util = require ( './util' ) ;
1617
1718/**
1819 * @typedef {Object } InstanaTracingOption
@@ -141,6 +142,7 @@ module.exports.configValidators = configValidators;
141142module . exports . init = _logger => {
142143 logger = _logger ;
143144 configNormalizers . init ( { logger } ) ;
145+ util . init ( logger ) ;
144146} ;
145147
146148/**
@@ -216,12 +218,12 @@ function normalizeMetricsConfig(config) {
216218 config . metrics = { } ;
217219 }
218220
219- config . metrics . transmissionDelay = normalizeSingleValue (
220- config . metrics . transmissionDelay ,
221- defaults . metrics . transmissionDelay ,
222- 'config .metrics.transmissionDelay' ,
223- 'INSTANA_METRICS_TRANSMISSION_DELAY '
224- ) ;
221+ config . metrics . transmissionDelay = util . resolveNumericConfig ( {
222+ envVar : 'INSTANA_METRICS_TRANSMISSION_DELAY' ,
223+ configValue : config . metrics . transmissionDelay ,
224+ defaultValue : defaults . metrics . transmissionDelay ,
225+ configPath : 'config.metrics.transmissionDelay '
226+ } ) ;
225227
226228 config . metrics . timeBetweenHealthcheckCalls =
227229 config . metrics . timeBetweenHealthcheckCalls || defaults . metrics . timeBetweenHealthcheckCalls ;
@@ -372,12 +374,12 @@ function normalizeActivateImmediately(config) {
372374function normalizeTracingTransmission ( config ) {
373375 config . tracing . maxBufferedSpans = config . tracing . maxBufferedSpans || defaults . tracing . maxBufferedSpans ;
374376
375- config . tracing . transmissionDelay = normalizeSingleValue (
376- config . tracing . transmissionDelay ,
377- defaults . tracing . transmissionDelay ,
378- 'config .tracing.transmissionDelay' ,
379- 'INSTANA_TRACING_TRANSMISSION_DELAY '
380- ) ;
377+ config . tracing . transmissionDelay = util . resolveNumericConfig ( {
378+ envVar : 'INSTANA_TRACING_TRANSMISSION_DELAY' ,
379+ configValue : config . tracing . transmissionDelay ,
380+ defaultValue : defaults . tracing . transmissionDelay ,
381+ configPath : 'config.tracing.transmissionDelay '
382+ } ) ;
381383
382384 // DEPRECATED! This was never documented, but we shared it with a customer.
383385 if ( process . env [ 'INSTANA_DEV_MIN_DELAY_BEFORE_SENDING_SPANS' ] ) {
@@ -397,19 +399,19 @@ function normalizeTracingTransmission(config) {
397399 }
398400 }
399401
400- config . tracing . forceTransmissionStartingAt = normalizeSingleValue (
401- config . tracing . forceTransmissionStartingAt ,
402- defaults . tracing . forceTransmissionStartingAt ,
403- 'config .tracing.forceTransmissionStartingAt' ,
404- 'INSTANA_FORCE_TRANSMISSION_STARTING_AT '
405- ) ;
402+ config . tracing . forceTransmissionStartingAt = util . resolveNumericConfig ( {
403+ envVar : 'INSTANA_FORCE_TRANSMISSION_STARTING_AT' ,
404+ configValue : config . tracing . forceTransmissionStartingAt ,
405+ defaultValue : defaults . tracing . forceTransmissionStartingAt ,
406+ configPath : 'config.tracing.forceTransmissionStartingAt '
407+ } ) ;
406408
407- config . tracing . initialTransmissionDelay = normalizeSingleValue (
408- config . tracing . initialTransmissionDelay ,
409- defaults . tracing . initialTransmissionDelay ,
410- 'config .tracing.initialTransmissionDelay' ,
411- 'INSTANA_TRACING_INITIAL_TRANSMISSION_DELAY '
412- ) ;
409+ config . tracing . initialTransmissionDelay = util . resolveNumericConfig ( {
410+ envVar : 'INSTANA_TRACING_INITIAL_TRANSMISSION_DELAY' ,
411+ configValue : config . tracing . initialTransmissionDelay ,
412+ defaultValue : defaults . tracing . initialTransmissionDelay ,
413+ configPath : 'config.tracing.initialTransmissionDelay '
414+ } ) ;
413415}
414416
415417/**
@@ -713,32 +715,6 @@ function parseSecretsEnvVar(envVarValue) {
713715 } ;
714716}
715717
716- /**
717- * @param {* } configValue
718- * @param {* } defaultValue
719- * @param {string } configPath
720- * @param {string } envVarKey
721- * @returns {* }
722- */
723- function normalizeSingleValue ( configValue , defaultValue , configPath , envVarKey ) {
724- const envVarVal = process . env [ envVarKey ] ;
725- let originalValue = configValue ;
726- if ( configValue == null && envVarVal == null ) {
727- return defaultValue ;
728- } else if ( configValue == null && envVarVal != null ) {
729- originalValue = envVarVal ;
730- configValue = parseInt ( originalValue , 10 ) ;
731- }
732-
733- if ( typeof configValue !== 'number' || isNaN ( configValue ) ) {
734- logger . warn (
735- `The value of ${ configPath } (or ${ envVarKey } ) ("${ originalValue } ") is ' +
736- 'not numerical or cannot be parsed to a numerical value. Assuming the default value ${ defaultValue } .`
737- ) ;
738- return defaultValue ;
739- }
740- return configValue ;
741- }
742718/**
743719 * @param {InstanaConfig } config
744720 */
0 commit comments