test: add full nginx injection tests and runnable examples - #430
Open
pawelchcki wants to merge 7 commits into
Open
pawelchcki wants to merge 7 commits into
pawelchcki wants to merge 7 commits into
Conversation
|
✅ All CI checks and tests passed. 🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 6dab7ff | Docs | View more details | Give us feedback! |
pawelchcki
marked this pull request as ready for review
September 10, 2026 13:30
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.
Add installer acceptance tests that verify real Nginx → Flask traces on a simulated Linux host and in ordinary Debian, Alpine, and single-node Docker Swarm workloads. The suite checks HTTP responses, decoded spans, parent relationships, environment settings, agent routing, sampling, disablement, reloads, injection failures, stable configuration, and global RUM opt-out.
The installer configures host or Docker injection. Workload containers and the Swarm service specify no runtime and contain no manual tracing setup. Published packages and checkout-built OCI packages share the same tests, including installed-module checksum verification for checkout artifacts.
Stable-config coverage follows the system-tests YAML schemas for local and managed files. It checks defaults, managed > environment > local precedence, targeting rules, tags, tracing disablement, and global RUM opt-out. The missing C++ tracing support and stable-config RUM opt-out are strict expected failures. An unexpected pass fails CI so the markers must be removed when support lands.
The single-node Swarm smoke test starts an ordinary Nginx service with one replica. It requires a loaded module, an unchanged HTML response with
DD_RUM_ENABLED=false, and exactly one decodednginx.requestspan. Artifacts record the node, service, task, container, process map, logs, and span before cleanup. Multi-node scheduling, overlay networking, routing mesh, rolling updates, rescheduling, and node failure remain outside this test.This reuses the stable-config contract from system-tests. The Nginx-specific execution is separate coverage: installer injection, ordinary host and Docker services, module loading, HTTP responses, decoded spans, trace parenting, and RUM-disabled HTML with tracing still active.
Add architecture-matched GitLab jobs, diagnostic artifacts and JUnit, plus
make test-injectionand host/Docker example commands.Validation:
DD_RUM_ENABLED=falsein the environment and 6 strict xfails for the equivalent local and managed stable-config setting. Every case required an injected module, a realtext/htmlresponse, and a valid Nginx span, so tracing remained active.nginx.requestspan.