Skip to content

Improving smoke test capabilities - #12051

Draft
PerfectSlayer wants to merge 8 commits into
masterfrom
bbujon/smoke-tests-tooling
Draft

Improving smoke test capabilities#12051
PerfectSlayer wants to merge 8 commits into
masterfrom
bbujon/smoke-tests-tooling

Conversation

@PerfectSlayer

@PerfectSlayer PerfectSlayer commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

This PR was created to preview the end goal of the task. It is still early work and will be split into reviewable chunks once ready. Check additional notes for the PRs ready to review.

What Does This Do

This PR introduces smoke tests framework based on JUnit.

It provides the following capabilities:

  • Register smoke applications
    • Either web server application or CLI application
    • Can be extended to new kind of applications too
    • Lifecycle handled as part of the JUnit engine
    • Registered for parameter resolution
  • Provide full trace content and structure verification
    • With assert rules and matchers (similar to instrumentation testing)
  • Receive traces from test agent
    • No longer test against our own instrumentation
    • Open to snapshot testing
    • Introduce test agent session support to tracer headers
  • Rely on the existing CI test agent
    • Will run test agent locally if docker engine is found
    • Can run the old mock server as alternative when no docker env is available

Additionally, this PR ports two smoke tests as example:

  • opentelemetry - a basic CLI app
  • spring-boot-rabbit - a complex multiple apps / queues setup

Motivation

Additional Notes

This will make some tests run with the test agent side car and enable trace invariant gate too (check_test_agent_results.sh).

Related pull-requests ready for review:

Contributor Checklist

Jira ticket: APMLP-1247

@PerfectSlayer PerfectSlayer added type: feature Enhancements and improvements comp: testing Testing tag: do not merge Do not merge changes labels Jul 23, 2026
@PerfectSlayer
PerfectSlayer force-pushed the bbujon/smoke-tests-tooling branch from 29804b8 to 817d668 Compare July 28, 2026 08:49
@datadog-prod-us1-5

This comment has been minimized.

@PerfectSlayer
PerfectSlayer force-pushed the bbujon/smoke-tests-tooling branch from 817d668 to c659547 Compare July 28, 2026 09:11
@dd-octo-sts

dd-octo-sts Bot commented Jul 28, 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 14.03 s 13.92 s [+0.2%; +1.4%] (maybe worse)
startup:insecure-bank:tracing:Agent 12.94 s 13.01 s [-1.5%; +0.3%] (no difference)
startup:petclinic:appsec:Agent 17.37 s 17.34 s [-0.6%; +0.9%] (no difference)
startup:petclinic:iast:Agent 17.42 s 17.50 s [-1.4%; +0.4%] (no difference)
startup:petclinic:profiling:Agent 17.40 s 17.14 s [+0.3%; +2.7%] (maybe worse)
startup:petclinic:sca:Agent 17.51 s 17.36 s [-0.1%; +1.8%] (no difference)
startup:petclinic:tracing:Agent 16.58 s 16.16 s [-2.0%; +7.2%] (no difference)

Commit: c659547e · 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.

@datadog-prod-us1-5

datadog-prod-us1-5 Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Bits has a CI fix ready

🟢 Investigated · 🟢 Fix prepared · ⚪ Validation skipped · 🟠 Ready

TestAgentTraceDecoder now normalizes absent meta_struct values to an empty map, matching the shared decoded-span contract. OpenTelemetrySmokeTest skips the generic telemetry teardown assertion because its short-lived CLI process can exit before asynchronous telemetry is emitted, while the test verifies traces only.

Commit fix to this PR


View in Datadog | Reviewed commit c659547 · Any feedback? Reach out in #deveng-pr-agent

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

Labels

comp: testing Testing tag: do not merge Do not merge changes type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant