Skip to content

Enforce continuation diagnostics on smoke tests - #12609

Open
amarziali wants to merge 10 commits into
masterfrom
andrea.marziali/smoke-continuation-diagnostics
Open

amarziali wants to merge 10 commits into
masterfrom
andrea.marziali/smoke-continuation-diagnostics

Conversation

@amarziali

@amarziali amarziali commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

What Does This Do

  • Add a test-only companion agent that installs scope and continuation lifecycle probes in smoke-test applications and collects diagnostic reports.
  • Enforce diagnostics in the shared JUnit and Spock smoke harnesses, recording each server test’s work and teardown, and CLI applications from before main through exit.
  • Fail smoke tests when diagnostics cannot be installed or reports are missing, malformed, or show lifecycle problems.
  • Support reasoned exclusions for specific checks while retaining their findings in reports, and document opt-outs for incompatible test modes and custom launchers.
  • Update smoke-test launchers, fixtures, and documentation to support the diagnostic agent and its reporting protocol.

Issues fixed thanks to this enforcement:

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@datadog-datadog-prod-us1

This comment has been minimized.

@dd-octo-sts

dd-octo-sts Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.90 s 13.88 s [-0.5%; +0.8%] (no difference)
startup:insecure-bank:tracing:Agent 12.91 s 12.96 s [-1.1%; +0.3%] (no difference)
startup:petclinic:appsec:Agent 17.10 s 16.97 s [-0.0%; +1.6%] (no difference)
startup:petclinic:iast:Agent 16.97 s 17.03 s [-1.3%; +0.6%] (no difference)
startup:petclinic:profiling:Agent 16.44 s 16.81 s [-3.1%; -1.2%] (significantly better)
startup:petclinic:sca:Agent 17.11 s 16.21 s [+1.3%; +9.9%] (significantly worse)
startup:petclinic:tracing:Agent 16.06 s 16.07 s [-0.9%; +0.8%] (no difference)

Commit: 0578df0b · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@pr-commenter

pr-commenter Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Kafka / producer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch andrea.marziali/diag2 andrea.marziali/smoke-continuation-diagnostics
git_commit_date 1790164547 1790237122
git_commit_sha 9b23b48 7cc7f3f
See matching parameters
Baseline Candidate
ci_job_date 1790238398 1790238398
ci_job_id 2075168828 2075168828
ci_pipeline_id 139719425 139719425
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.31 11.0.31
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=15002 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=15002 -Dhttp.nonProxyHosts=localhost *.localhost
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-bp2s9q7t 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-bp2s9q7t 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaProduceBenchmark.benchProduce same

@pr-commenter

pr-commenter Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Kafka / consumer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch andrea.marziali/diag2 andrea.marziali/smoke-continuation-diagnostics
git_commit_date 1790164547 1790180406
git_commit_sha 9b23b48 be38218
See matching parameters
Baseline Candidate
ci_job_date 1790181655 1790181655
ci_job_id 2073022568 2073022568
ci_pipeline_id 139553485 139553485
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.31 11.0.31
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=15002 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=15002 -Dhttp.nonProxyHosts=localhost *.localhost
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-d2lfy03r 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-d2lfy03r 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaConsumerBenchmark.benchConsume same

@amarziali
amarziali force-pushed the andrea.marziali/diag2 branch 3 times, most recently from 94df599 to 8411dfd Compare September 25, 2026 15:16
Base automatically changed from andrea.marziali/diag2 to master September 28, 2026 08:10
@amarziali
amarziali force-pushed the andrea.marziali/smoke-continuation-diagnostics branch 2 times, most recently from 46d02c0 to aa48b3b Compare October 8, 2026 08:40
@amarziali amarziali added type: feature Enhancements and improvements comp: testing Testing tag: override groovy enforcement Override the "Enforce Groovy Migration" check labels Oct 14, 2026
@amarziali
amarziali force-pushed the andrea.marziali/smoke-continuation-diagnostics branch from 7ff8df4 to 97d50f8 Compare October 14, 2026 06:44
@amarziali
amarziali force-pushed the andrea.marziali/smoke-continuation-diagnostics branch from 4833b75 to e4a69c5 Compare October 16, 2026 10:22
@amarziali
amarziali marked this pull request as ready for review October 16, 2026 10:24
@amarziali
amarziali requested review from a team as code owners October 16, 2026 10:24
@amarziali
amarziali requested review from a team as code owners October 16, 2026 10:24
@amarziali
amarziali requested review from ValentinZakharov, jandro996, khanayan123, manuel-alvarez-alvarez and sarahchen6 and removed request for a team October 16, 2026 10:24
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T12:28:45.986950Z 0578df0 Manual request
🔒 Security Review ✅ Completed 2026-10-16T12:29:48.132646Z 0578df0 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@amarziali
amarziali requested a review from mcculls October 16, 2026 10:24

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e4a69c5dbd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread dd-smoke-tests/src/main/groovy/datadog/smoketest/ProcessManager.groovy Outdated

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: FAIL

The most critical production constraint is that unescaped diagnostic arguments injected into shell environment variables (CATALINA_OPTS, JAVA_OPTS) in ProcessManager.groovy will split on spaces, preventing child JVMs from starting in affected smoke tests. A separate issue in SmokeDiagnosticsBridge.java hardcodes a relocated class namespace, causing ClassNotFoundException and application abort when built with -PdisableShadowRelocate=true.

Open Bits AI session

🤖 Bits Code Review · Commit e4a69c5

Comment thread dd-smoke-tests/src/main/groovy/datadog/smoketest/ProcessManager.groovy Outdated
@amarziali

Copy link
Copy Markdown
Contributor Author

@DataDog review

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: PASS

More details

Companion-agent installation and end-to-end diagnostic enforcement remain unverified at runtime; the assessment covers source-level handling of smoke-test recording windows, process exits, and custom launchers.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 0578df0

@amarziali

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: 0578df0b16

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 0578df0b16

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: testing Testing tag: override groovy enforcement Override the "Enforce Groovy Migration" check type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant