test(parametric): decouple nodejs stable-config assertions from renamable tracer internals#7196
Draft
BridgeAR wants to merge 5 commits into
Draft
test(parametric): decouple nodejs stable-config assertions from renamable tracer internals#7196BridgeAR wants to merge 5 commits into
BridgeAR wants to merge 5 commits into
Conversation
Contributor
|
|
|
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.
985fc34 to
162697c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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/configfrom those internal paths, soTest_Stable_Config_Defaultreporteddd_profiling_enabled=falseand failed — and every future rename would break another field.Test_Stable_Config_Default::test_default_confignow asserts nodejs stable-config values against the telemetryconfiguration(canonical names, which stay stable across the refactors); other languages keep using/trace/config.config.profiling.DD_PROFILING_ENABLEDleaf, falling back to the oldprofiling.enabledso released tracer versions still report correctly via/trace/config.