Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions packages/collector/src/util/normalizeConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ function normalizeAgentHost(userConfig, defaultConfig) {
{
envValue: 'INSTANA_AGENT_HOST',
inCodeValue: userConfig.agentHost,
defaultValue: defaultConfig.agentHost
defaultValue: defaultConfig.agentHost,
configPath: 'config.agentHost'
},
[validate.stringValidator]
);
Expand All @@ -64,7 +65,8 @@ function normalizeAgentPort(userConfig, defaultConfig) {
{
envValue: 'INSTANA_AGENT_PORT',
inCodeValue: userConfig.agentPort,
defaultValue: defaultConfig.agentPort
defaultValue: defaultConfig.agentPort,
configPath: 'config.agentPort'
},
[validate.numberValidator]
);
Expand All @@ -81,7 +83,8 @@ function normalizeAgentRequestTimeout(userConfig, defaultConfig) {
{
envValue: 'INSTANA_AGENT_REQUEST_TIMEOUT',
inCodeValue: userConfig.agentRequestTimeout,
defaultValue: defaultConfig.agentRequestTimeout
defaultValue: defaultConfig.agentRequestTimeout,
configPath: 'config.agentRequestTimeout'
},
[validate.numberValidator]
);
Expand All @@ -98,7 +101,8 @@ function normalizeAutoProfile(userConfig, defaultConfig) {
{
envValue: 'INSTANA_AUTO_PROFILE',
inCodeValue: userConfig.autoProfile,
defaultValue: defaultConfig.autoProfile
defaultValue: defaultConfig.autoProfile,
configPath: 'config.autoProfile'
},
[validate.booleanValidator]
);
Expand All @@ -113,7 +117,8 @@ function normalizeUnhandledRejections(userConfig) {
const { value } = util.resolve(
{
inCodeValue: userConfig.reportUnhandledPromiseRejections,
defaultValue: false
defaultValue: false,
configPath: 'config.reportUnhandledPromiseRejections'
},
[validate.booleanValidator]
);
Expand Down
59 changes: 39 additions & 20 deletions packages/core/src/config/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,8 @@ function normalizeServiceName({ userConfig = {}, defaultConfig = {}, finalConfig
{
envValue: 'INSTANA_SERVICE_NAME',
inCodeValue: userConfig.serviceName,
defaultValue: defaultConfig.serviceName
defaultValue: defaultConfig.serviceName,
configPath: 'config.serviceName'
},
[validate.stringValidator]
);
Expand All @@ -245,7 +246,8 @@ function normalizePackageJsonPath({ userConfig = {}, defaultConfig = {}, finalCo
{
envValue: 'INSTANA_PACKAGE_JSON_PATH',
inCodeValue: userConfig.packageJsonPath,
defaultValue: defaultConfig.packageJsonPath
defaultValue: defaultConfig.packageJsonPath,
configPath: 'config.packageJsonPath'
},
[validate.stringValidator]
);
Expand All @@ -266,7 +268,8 @@ function normalizeMetricsConfig({ userConfig = {}, defaultConfig = {}, finalConf
{
envValue: 'INSTANA_METRICS_TRANSMISSION_DELAY',
inCodeValue: userMetrics?.transmissionDelay,
defaultValue: defaultConfig.metrics.transmissionDelay
defaultValue: defaultConfig.metrics.transmissionDelay,
configPath: 'config.metrics.transmissionDelay'
},
[validate.numberValidator]
);
Expand All @@ -277,7 +280,8 @@ function normalizeMetricsConfig({ userConfig = {}, defaultConfig = {}, finalConf
const { value: healthcheckInterval, source: healthcheckSource } = util.resolve(
{
inCodeValue: userMetrics?.timeBetweenHealthcheckCalls,
defaultValue: defaultConfig.metrics.timeBetweenHealthcheckCalls
defaultValue: defaultConfig.metrics.timeBetweenHealthcheckCalls,
configPath: 'config.metrics.timeBetweenHealthcheckCalls'
},
[validate.numberValidator]
);
Expand Down Expand Up @@ -328,7 +332,8 @@ function normalizeTracingEnabled({ userConfig = {}, defaultConfig = {}, finalCon
{
envValue: isBooleanValue ? 'INSTANA_TRACING_DISABLE' : undefined,
inCodeValue: userConfig.tracing.enabled,
defaultValue: defaultConfig.tracing.enabled
defaultValue: defaultConfig.tracing.enabled,
configPath: 'config.tracing.enabled'
},
[validate.booleanValidator]
);
Expand All @@ -349,7 +354,8 @@ function normalizeAllowRootExitSpan({ userConfig = {}, defaultConfig = {}, final
{
envValue: 'INSTANA_ALLOW_ROOT_EXIT_SPAN',
inCodeValue: userConfig.tracing.allowRootExitSpan,
defaultValue: defaultConfig.tracing.allowRootExitSpan
defaultValue: defaultConfig.tracing.allowRootExitSpan,
configPath: 'config.tracing.allowRootExitSpan'
},
[validate.booleanValidator]
);
Expand All @@ -366,7 +372,8 @@ function normalizeUseOpentelemetry({ userConfig = {}, defaultConfig = {}, finalC
{
envValue: 'INSTANA_DISABLE_USE_OPENTELEMETRY',
inCodeValue: userConfig.tracing.useOpentelemetry,
defaultValue: defaultConfig.tracing.useOpentelemetry
defaultValue: defaultConfig.tracing.useOpentelemetry,
configPath: 'config.tracing.useOpentelemetry'
},
[validate.booleanValidator]
);
Expand All @@ -392,7 +399,8 @@ function normalizeAutomaticTracingEnabled({ userConfig = {}, defaultConfig = {},
{
envValue: 'INSTANA_DISABLE_AUTO_INSTR',
inCodeValue: userConfig.tracing.automaticTracingEnabled,
defaultValue: defaultConfig.tracing.automaticTracingEnabled
defaultValue: defaultConfig.tracing.automaticTracingEnabled,
configPath: 'config.tracing.automaticTracingEnabled'
},
[validate.booleanValidator]
);
Expand All @@ -418,7 +426,8 @@ function normalizeActivateImmediately({ userConfig = {}, defaultConfig = {}, fin
{
envValue: 'INSTANA_TRACE_IMMEDIATELY',
inCodeValue: userConfig.tracing.activateImmediately,
defaultValue: defaultConfig.tracing.activateImmediately
defaultValue: defaultConfig.tracing.activateImmediately,
configPath: 'config.tracing.activateImmediately'
},
[validate.booleanValidator]
);
Expand All @@ -441,7 +450,8 @@ function normalizeTracingTransmission({ userConfig = {}, defaultConfig = {}, fin
{
envValue: 'INSTANA_TRACING_TRANSMISSION_DELAY',
inCodeValue: userConfig.tracing.transmissionDelay,
defaultValue: defaultConfig.tracing.transmissionDelay
defaultValue: defaultConfig.tracing.transmissionDelay,
configPath: 'config.tracing.transmissionDelay'
},
[validate.numberValidator]
);
Expand All @@ -453,7 +463,8 @@ function normalizeTracingTransmission({ userConfig = {}, defaultConfig = {}, fin
{
envValue: 'INSTANA_FORCE_TRANSMISSION_STARTING_AT',
inCodeValue: userConfig.tracing.forceTransmissionStartingAt,
defaultValue: defaultConfig.tracing.forceTransmissionStartingAt
defaultValue: defaultConfig.tracing.forceTransmissionStartingAt,
configPath: 'config.tracing.forceTransmissionStartingAt'
},
[validate.numberValidator]
);
Expand All @@ -465,7 +476,8 @@ function normalizeTracingTransmission({ userConfig = {}, defaultConfig = {}, fin
{
envValue: 'INSTANA_TRACING_INITIAL_TRANSMISSION_DELAY',
inCodeValue: userConfig.tracing.initialTransmissionDelay,
defaultValue: defaultConfig.tracing.initialTransmissionDelay
defaultValue: defaultConfig.tracing.initialTransmissionDelay,
configPath: 'config.tracing.initialTransmissionDelay'
},
[validate.numberValidator]
);
Expand Down Expand Up @@ -680,7 +692,8 @@ function normalizeSpanBatchingEnabled({ userConfig = {}, defaultConfig = {}, fin
{
envValue: 'INSTANA_SPANBATCHING_ENABLED',
inCodeValue: userConfig.tracing.spanBatchingEnabled,
defaultValue: defaultConfig.tracing.spanBatchingEnabled
defaultValue: defaultConfig.tracing.spanBatchingEnabled,
configPath: 'config.tracing.spanBatchingEnabled'
},
[validate.booleanValidator]
);
Expand All @@ -697,7 +710,8 @@ function normalizeDisableW3cTraceCorrelation({ userConfig = {}, defaultConfig =
{
envValue: 'INSTANA_DISABLE_W3C_TRACE_CORRELATION',
inCodeValue: userConfig.tracing.disableW3cTraceCorrelation,
defaultValue: defaultConfig.tracing.disableW3cTraceCorrelation
defaultValue: defaultConfig.tracing.disableW3cTraceCorrelation,
configPath: 'config.tracing.disableW3cTraceCorrelation'
},
[validate.validateTruthyBoolean]
);
Expand All @@ -718,7 +732,8 @@ function normalizeTracingKafka({ userConfig = {}, defaultConfig = {}, finalConfi
{
envValue: 'INSTANA_KAFKA_TRACE_CORRELATION',
inCodeValue: userKafka.traceCorrelation,
defaultValue: defaultConfig.tracing.kafka.traceCorrelation
defaultValue: defaultConfig.tracing.kafka.traceCorrelation,
configPath: 'config.tracing.kafka.traceCorrelation'
},
[validate.booleanValidator]
);
Expand Down Expand Up @@ -895,7 +910,9 @@ function normalizeIgnoreEndpoints({ userConfig = {}, defaultConfig = {}, finalCo
}
if (userIgnoreEndpoints && Object.keys(userIgnoreEndpoints).length) {
finalConfig.tracing.ignoreEndpoints = configNormalizers.ignoreEndpoints.normalizeConfig(userIgnoreEndpoints);
logger.debug('[config] incode:config.tracing.ignoreEndpoints');
logger.debug(
`[config] incode:config.tracing.ignoreEndpoints : ${JSON.stringify(finalConfig.tracing.ignoreEndpoints)}`
);
configStore.set('config.tracing.ignoreEndpoints', { source: CONFIG_SOURCES.INCODE });
return;
}
Expand All @@ -912,7 +929,8 @@ function normalizeIgnoreEndpointsDisableSuppression({ userConfig = {}, defaultCo
{
envValue: 'INSTANA_IGNORE_ENDPOINTS_DISABLE_SUPPRESSION',
inCodeValue: userConfig.tracing.ignoreEndpointsDisableSuppression,
defaultValue: defaultConfig.tracing.ignoreEndpointsDisableSuppression
defaultValue: defaultConfig.tracing.ignoreEndpointsDisableSuppression,
configPath: 'config.tracing.ignoreEndpointsDisableSuppression'
},
[validate.booleanValidator]
);
Expand All @@ -929,7 +947,8 @@ function normalizeDisableEOLEvents({ userConfig = {}, defaultConfig = {}, finalC
{
envValue: 'INSTANA_TRACING_DISABLE_EOL_EVENTS',
inCodeValue: userConfig.tracing.disableEOLEvents,
defaultValue: defaultConfig.tracing.disableEOLEvents
defaultValue: defaultConfig.tracing.disableEOLEvents,
configPath: 'config.tracing.disableEOLEvents'
},
[validate.booleanValidator]
);
Expand All @@ -945,7 +964,8 @@ function normalizePreloadOpentelemetry({ userConfig = {}, defaultConfig = {}, fi
const { value, source } = util.resolve(
{
inCodeValue: userConfig.preloadOpentelemetry,
defaultValue: defaultConfig.preloadOpentelemetry
defaultValue: defaultConfig.preloadOpentelemetry,
configPath: 'config.preloadOpentelemetry'
},
[validate.booleanValidator]
);
Expand Down Expand Up @@ -974,7 +994,6 @@ exports.update = function update({ externalConfig = {}, source, target = current
const currentMeta = configStore.get(path);

if (currentMeta && currentMeta.source < source) {
logger.debug(`[config] Skipping ${path}: current source ${currentMeta.source} > incoming ${source}`);
return;
}

Expand Down
6 changes: 4 additions & 2 deletions packages/core/src/config/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ const CONFIG_PRIORITY = Object.entries(CONFIG_SOURCES)
* @param {any} [params.inCodeValue]
* @param {any} [params.agentValue]
* @param {any} params.defaultValue
* @param {string} [params.configPath]
* @param {Function|Function[]} validators - validator(s) returning value | undefined
* @returns {{ value: any, source: number }}
*/
exports.resolve = function resolve({ envValue, inCodeValue, agentValue, defaultValue }, validators) {
exports.resolve = function resolve({ envValue, inCodeValue, agentValue, defaultValue, configPath }, validators) {
let resolved;

const validatorList = Array.isArray(validators) ? validators : [validators];
Expand Down Expand Up @@ -62,7 +63,8 @@ exports.resolve = function resolve({ envValue, inCodeValue, agentValue, defaultV
source: CONFIG_SOURCES[/** @type {keyof typeof CONFIG_SOURCES} */ (sourceKey.toUpperCase())]
};

logger?.debug(`[config] Resolved from ${sourceKey}: ${JSON.stringify(parsedValue)}`);
logger?.debug(`[config] ${sourceKey}:${configPath}: ${JSON.stringify(parsedValue)}`);

return true;
}

Expand Down