Skip to content

test(parametric): decouple nodejs stable-config assertions from renamable tracer internals#7196

Draft
BridgeAR wants to merge 5 commits into
mainfrom
BridgeAR/2026-06-22-parametric-profiling-config-key
Draft

test(parametric): decouple nodejs stable-config assertions from renamable tracer internals#7196
BridgeAR wants to merge 5 commits into
mainfrom
BridgeAR/2026-06-22-parametric-profiling-config-key

Conversation

@BridgeAR

Copy link
Copy Markdown
Member

Summary

dd-trace-js #8943 (and a planned series of config PRs) renames internal config property paths to canonical names. The node parametric server builds /trace/config from those internal paths, so Test_Stable_Config_Default reported dd_profiling_enabled=false and failed — and every future rename would break another field.

  1. Test_Stable_Config_Default::test_default_config now asserts nodejs stable-config values against the telemetry configuration (canonical names, which stay stable across the refactors); other languages keep using /trace/config.
  2. The node parametric server reads the new config.profiling.DD_PROFILING_ENABLED leaf, falling back to the old profiling.enabled so released tracer versions still report correctly via /trace/config.

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

tests/parametric/conftest.py                                            @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_config_consistency.py                             @DataDog/apm-sdk-capabilities
tests/parametric/test_otel_env_vars.py                                  @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
utils/build/docker/nodejs/parametric/server.js                          @DataDog/dd-trace-js @DataDog/system-tests-core
utils/docker_fixtures/_test_clients/_test_client_parametric.py          @DataDog/system-tests-core

@datadog-system-tests-org

datadog-system-tests-org Bot commented Jun 22, 2026

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 2 Pipeline jobs failed

Testing the test | all-jobs-are-green   View in Datadog   GitHub Actions

Testing the test | lint / lint   View in Datadog   GitHub Actions

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 162697c | Docs | Give us feedback!

@datadog-official

datadog-official Bot commented Jun 22, 2026

Copy link
Copy Markdown

Pipelines

Fix all issues with BitsAI

⚠️ Warnings

🚦 2 Pipeline jobs failed

Testing the test | all-jobs-are-green   View in Datadog   GitHub Actions

Testing the test | lint / lint   View in Datadog   GitHub Actions

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 162697c | Docs | Datadog PR Page | Give us feedback!

BridgeAR added 5 commits June 23, 2026 00:21
dd-trace-js derives /trace/config from internal property paths that are being
renamed to canonical names across a series of config PRs, so each rename breaks
Test_Stable_Config_Default for nodejs. Telemetry reports the stable canonical
names regardless, so assert the stable-config values there for nodejs while
other languages keep using /trace/config.
Route every StableConfigWriter assertion (default, extended, unknown-key, invalid
files, precedence, targeting rules, process args) through a shared telemetry helper
for nodejs, so no node stable-config test reads /trace/config. The helper maps each
dd_* key to its canonical telemetry name (upper-cased) and compares the effective
(highest seq_id) value, which stays stable across the dd-trace-js config-property
renames that /trace/config is sensitive to.
…telemetry

Move the nodejs branch of Test_Config_TraceAgentURL, Test_Config_RateLimit, and
Test_Config_Dogstatsd off /trace/config onto the telemetry configuration, so the
agent URL, trace rate limit, and dogstatsd host/port read canonical names that
survive the dd-trace-js config-property renames /trace/config is sensitive to.
Other languages keep using /trace/config.
…d telemetry

dd-trace-js builds /trace/config from internal property paths that a series of
config PRs is renaming, so every rename risks breaking these nodejs assertions.
Move them to signals that survive refactors:

1. Telemetry configuration (canonical names) for service, sample rate, log level,
   propagation, runtime metrics, env, and version.
2. Span meta for OTEL_RESOURCE_ATTRIBUTES tags, which the DD_TAGS telemetry value
   does not carry.
3. Trace presence for OTEL_TRACES_EXPORTER=none (no trace is produced) rather than
   reading dd_trace_enabled.
4. The tracer's startup-config log line for OTEL_LOG_LEVEL=debug, which reports
   "debug":true in the container output.

The shared telemetry helpers move to conftest so test_config_consistency and
test_otel_env_vars use one implementation; get_logs exposes the parametric
container output for the debug-log assertion. Other languages keep /trace/config.
…onfig

The node /trace/config handler read the tracer's internal _config property paths,
which a series of dd-trace-js config PRs renames, so every rename risked breaking
or silently falsifying this endpoint. Node config consistency is now asserted
through telemetry and observable behaviour in the parametric suite, so the handler
no longer reads any internal config. The test client defaults every documented key
to null, so the cross-language parity shape contract still holds with an empty
config object.
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-06-22-parametric-profiling-config-key branch from 985fc34 to 162697c Compare June 22, 2026 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant