Repository navigation
Capture Testcontainers image pull diagnostics - #12819
Draft
AlexeyKuznetsov-DD wants to merge 6 commits into
Draft
AlexeyKuznetsov-DD wants to merge 6 commits into
AlexeyKuznetsov-DD wants to merge 6 commits into
Conversation
This comment has been minimized.
This comment has been minimized.
Contributor
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
This branch has not been deployed
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.
What Does This Do
Enable Testcontainers'
tc.<image>logger in the instrumentation test harness and preserve image-pull diagnostics in UTC-stamped files, separated by test task and worker. Capture pull starts, layer download/extraction progress, retries, stalls, completion time, and local-cache decisions across test retries and logging resets.Publish
build/reports/docker-images/<test-task>/image-pulls-<worker-pid>.logfiles as individual CI artifacts and through the existing report archive. Dedicated logs exclude container output, Docker command arguments, authentication diagnostics, and exception bodies. The diagnostic output path does not affect portable test cache keys.Motivation
The harness enables
org.testcontainersat DEBUG but keeps the root logger at WARN. Testcontainers writes pull progress through the separatetc.<image>logger, so the useful pull timeline is suppressed. A failed image resolution followed by a passing retry consequently leaves no evidence of layer progress or how long the successful pull took.Additional Notes
Observed for
basic statement on sqlserver with null generates spans:The first test execution failed after 240.507 seconds; the same test passed on retry in 8.905 seconds. Those are whole-test durations, not measured pull durations. A later execution explicitly used the locally cached image. This change preserves the missing pull timeline for future investigations; it does not change pull timeouts or collect Docker daemon activity after a client timeout.
Related precedent: Track Testcontainers images as Gradle test inputs (#12633) and Relax Testcontainers image pull timeouts (#12777).
Validation: two focused tests passed:
./gradlew :utils:test-utils:test --tests datadog.trace.test.logging.TestcontainersImageLoggingTestverifies progress/retry/stall/cache events, UTC timestamps, append behavior after logging resets, duplicate prevention, and exclusion of unrelated output and exception bodies../gradlew -p build-logic :testcontainers:test --tests '*TestcontainersPluginTest.one can write Groovy DSL dependency'verifies task-specific log directories and configuration-cache reuse../gradlew :dd-java-agent:instrumentation-testing:compileGroovypassed, and CI YAML parses. A real Docker pull and CI artifact upload have not yet been exercised.Performance and technical-debt review: checked, no issue; changes are confined to test/build infrastructure.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: N/A — test diagnostics.