Skip to content

Commit f455985

Browse files
mtoffl01BridgeAR
authored andcommitted
feat: add class ConfigEnvSources to merge stable config and environment variables (#6982)
This makes sure most environment variables will be reading from stable config. In addition, much code is cleaned up, types are added, and small improvements were added. --------- Co-authored-by: Ruben Bridgewater <ruben.bridgewater@datadoghq.com>
1 parent e344857 commit f455985

77 files changed

Lines changed: 1413 additions & 594 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ci/init.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
const tracer = require('../packages/dd-trace')
55
const { isTrue, isFalse } = require('../packages/dd-trace/src/util')
66
const log = require('../packages/dd-trace/src/log')
7-
const { getEnvironmentVariable } = require('../packages/dd-trace/src/config/helper')
7+
const { getEnvironmentVariable, getValueFromEnvSources } = require('../packages/dd-trace/src/config/helper')
88

99
const PACKAGE_MANAGERS = ['npm', 'yarn', 'pnpm']
1010
const DEFAULT_FLUSH_INTERVAL = 5000
@@ -27,9 +27,9 @@ function detectTestWorkerType () {
2727
if (getEnvironmentVariable('JEST_WORKER_ID')) return 'jest'
2828
if (getEnvironmentVariable('CUCUMBER_WORKER_ID')) return 'cucumber'
2929
if (getEnvironmentVariable('MOCHA_WORKER_ID')) return 'mocha'
30-
if (getEnvironmentVariable('DD_PLAYWRIGHT_WORKER')) return 'playwright'
30+
if (getValueFromEnvSources('DD_PLAYWRIGHT_WORKER')) return 'playwright'
3131
if (getEnvironmentVariable('TINYPOOL_WORKER_ID')) return 'vitest'
32-
if (getEnvironmentVariable('DD_VITEST_WORKER')) return 'vitest'
32+
if (getValueFromEnvSources('DD_VITEST_WORKER')) return 'vitest'
3333
return null
3434
}
3535

@@ -43,8 +43,8 @@ const baseOptions = {
4343
flushInterval: isJestWorker ? JEST_FLUSH_INTERVAL : DEFAULT_FLUSH_INTERVAL
4444
}
4545

46-
let shouldInit = !isFalse(getEnvironmentVariable('DD_CIVISIBILITY_ENABLED'))
47-
const isAgentlessEnabled = isTrue(getEnvironmentVariable('DD_CIVISIBILITY_AGENTLESS_ENABLED'))
46+
let shouldInit = !isFalse(getValueFromEnvSources('DD_CIVISIBILITY_ENABLED'))
47+
const isAgentlessEnabled = isTrue(getValueFromEnvSources('DD_CIVISIBILITY_AGENTLESS_ENABLED'))
4848

4949
if (!isTestWorker && isPackageManager()) {
5050
log.debug('dd-trace is not initialized in a package manager.')
@@ -58,7 +58,7 @@ if (isTestWorker) {
5858
}
5959
} else {
6060
if (isAgentlessEnabled) {
61-
if (getEnvironmentVariable('DD_API_KEY')) {
61+
if (getValueFromEnvSources('DD_API_KEY')) {
6262
baseOptions.experimental = {
6363
exporter: 'datadog'
6464
}

integration-tests/code-origin/typescript.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

integration-tests/code-origin/typescript.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require('dd-trace/init')
22

3-
// @ts-ignore - fastify will be available at runtime
3+
// @ts-expect-error - fastify will be available at runtime
44
import Fastify from 'fastify'
55

66
const app = Fastify({

integration-tests/playwright.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Playwright typescript config file for integration tests
2-
// @ts-ignore
32
import { devices } from '@playwright/test'
43

54
export default {

packages/datadog-instrumentations/src/helpers/register.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,14 @@ const requirePackageJson = require('../../../dd-trace/src/require-package-json')
77
const log = require('../../../dd-trace/src/log')
88
const telemetry = require('../../../dd-trace/src/guardrails/telemetry')
99
const { isInServerlessEnvironment } = require('../../../dd-trace/src/serverless')
10-
const { getEnvironmentVariables } = require('../../../dd-trace/src/config/helper')
10+
const { getValueFromEnvSources } = require('../../../dd-trace/src/config/helper')
1111
const checkRequireCache = require('./check-require-cache')
1212
const Hook = require('./hook')
1313
const { isRelativeRequire } = require('./shared-utils')
1414
const rewriter = require('./rewriter')
1515

16-
const envs = getEnvironmentVariables()
17-
18-
const {
19-
DD_TRACE_DISABLED_INSTRUMENTATIONS = '',
20-
DD_TRACE_DEBUG = ''
21-
} = envs
16+
const DD_TRACE_DISABLED_INSTRUMENTATIONS = getValueFromEnvSources('DD_TRACE_DISABLED_INSTRUMENTATIONS') || ''
17+
const DD_TRACE_DEBUG = getValueFromEnvSources('DD_TRACE_DEBUG') || ''
2218

2319
const hooks = require('./hooks')
2420
const instrumentations = require('./instrumentations')

packages/datadog-instrumentations/src/otel-sdk-trace.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
const shimmer = require('../../datadog-shimmer')
44
const tracer = require('../../dd-trace')
5-
const { getEnvironmentVariable } = require('../../dd-trace/src/config/helper')
5+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
66
const { addHook } = require('./helpers/instrument')
77

8-
const otelSdkEnabled = getEnvironmentVariable('DD_TRACE_OTEL_ENABLED') ||
9-
getEnvironmentVariable('OTEL_SDK_DISABLED')
10-
? !getEnvironmentVariable('OTEL_SDK_DISABLED')
8+
const otelSdkEnabled = getValueFromEnvSources('DD_TRACE_OTEL_ENABLED') ||
9+
getValueFromEnvSources('OTEL_SDK_DISABLED')
10+
? !getValueFromEnvSources('OTEL_SDK_DISABLED')
1111
: undefined
1212

1313
if (otelSdkEnabled) {

packages/datadog-instrumentations/src/playwright.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const {
1111
} = require('../../dd-trace/src/plugins/util/test')
1212
const log = require('../../dd-trace/src/log')
1313
const {
14-
getEnvironmentVariable
14+
getValueFromEnvSources
1515
} = require('../../dd-trace/src/config/helper')
1616
const { DD_MAJOR } = require('../../../version')
1717
const { addHook, channel } = require('./helpers/instrument')
@@ -41,7 +41,7 @@ const testSuiteToTestStatuses = new Map()
4141
const testSuiteToErrors = new Map()
4242
const testsToTestStatuses = new Map()
4343

44-
const RUM_FLUSH_WAIT_TIME = Number(getEnvironmentVariable('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 1000
44+
const RUM_FLUSH_WAIT_TIME = Number(getValueFromEnvSources('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 1000
4545

4646
let applyRepeatEachIndex = null
4747

packages/datadog-instrumentations/src/selenium.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict'
22

33
const shimmer = require('../../datadog-shimmer')
4-
const { getEnvironmentVariable } = require('../../dd-trace/src/config/helper')
4+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
55
const { addHook, channel } = require('./helpers/instrument')
66

77
const ciSeleniumDriverGetStartCh = channel('ci:selenium:driver:get')
@@ -17,7 +17,7 @@ if (window.DD_RUM && window.DD_RUM.stopSession) {
1717
const IS_RUM_ACTIVE_SCRIPT = 'return !!window.DD_RUM'
1818

1919
const DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS =
20-
Number(getEnvironmentVariable('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 500
20+
Number(getValueFromEnvSources('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 500
2121
const DD_CIVISIBILITY_TEST_EXECUTION_ID_COOKIE_NAME = 'datadog-ci-visibility-test-execution-id'
2222

2323
// TODO: can we increase the supported version range?

packages/datadog-plugin-aws-sdk/src/base.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const ClientPlugin = require('../../dd-trace/src/plugins/client')
55
const { storage } = require('../../datadog-core')
66
const { isTrue } = require('../../dd-trace/src/util')
77
const { tagsFromRequest, tagsFromResponse } = require('../../dd-trace/src/payload-tagging')
8-
const { getEnvironmentVariable } = require('../../dd-trace/src/config/helper')
8+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
99

1010
class BaseAwsSdkPlugin extends ClientPlugin {
1111
static id = 'aws'
@@ -190,7 +190,7 @@ class BaseAwsSdkPlugin extends ClientPlugin {
190190

191191
isEnabled (request) {
192192
const serviceId = this.serviceIdentifier.toUpperCase()
193-
const envVarValue = getEnvironmentVariable(`DD_TRACE_AWS_SDK_${serviceId}_ENABLED`)
193+
const envVarValue = getValueFromEnvSources(`DD_TRACE_AWS_SDK_${serviceId}_ENABLED`)
194194
return envVarValue ? isTrue(envVarValue) : true
195195
}
196196

@@ -273,9 +273,9 @@ function normalizeConfig (config, serviceIdentifier) {
273273
const serviceId = serviceIdentifier.toUpperCase()
274274
const batchPropagationEnabled = isTrue(
275275
specificConfig.batchPropagationEnabled ??
276-
getEnvironmentVariable(`DD_TRACE_AWS_SDK_${serviceId}_BATCH_PROPAGATION_ENABLED`) ??
276+
getValueFromEnvSources(`DD_TRACE_AWS_SDK_${serviceId}_BATCH_PROPAGATION_ENABLED`) ??
277277
config.batchPropagationEnabled ??
278-
getEnvironmentVariable('DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED')
278+
getValueFromEnvSources('DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED')
279279
)
280280

281281
// Merge the specific config back into the main config

packages/datadog-plugin-azure-event-hubs/src/producer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const { getEnvironmentVariable } = require('../../dd-trace/src/config/helper')
3+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
44
const ProducerPlugin = require('../../dd-trace/src/plugins/producer')
55

66
const spanContexts = new WeakMap()
@@ -89,7 +89,7 @@ function injectTraceContext (tracer, span, event) {
8989
}
9090

9191
function batchLinksAreEnabled () {
92-
const eh = getEnvironmentVariable('DD_TRACE_AZURE_EVENTHUBS_BATCH_LINKS_ENABLED')
92+
const eh = getValueFromEnvSources('DD_TRACE_AZURE_EVENTHUBS_BATCH_LINKS_ENABLED')
9393
return eh !== 'false'
9494
}
9595

0 commit comments

Comments
 (0)