Skip to content

chore(ci): base converged Agent image on -full - #1908

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
mainfrom
jszwedko/converged-agent-full-image
Jun 23, 2026
Merged

chore(ci): base converged Agent image on -full#1908
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
mainfrom
jszwedko/converged-agent-full-image

Conversation

@jszwedko

@jszwedko jszwedko commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #1906 (jszwedko/renovate-agent-version-pins). Review/merge that first; this PR will retarget to main automatically once it lands.

Summary

Switch to the -full image which contains both JMX and DDOT for correctness tests and the converged image we publish. This removes the need for the OTLP correctness tests to pin to published Agent -full images. It also enables deployment of the converged ADP image on internal clusters that also run DDOT.

Test plan

  • Verified -full includes JMX: both -jmx and -full carry the same jmxfetch.jar + Java 11 JRE; -full additionally has otel-agent.
  • Rebuilt the converged testing-release image on -full and confirmed otel-agent (DDOT) is present.
  • Ran locally on the -full converged image — all pass: otlp-traces-ottl-filtering, otlp-traces-ottl-transform (baseline now runs DDOT from the converged image), plus otlp-traces, otlp-metrics, and dsd-plain to confirm no regression from the base-image change.

🤖 Generated with Claude Code

jszwedko and others added 3 commits June 22, 2026 19:04
Renovate's built-in managers only bump docker/Dockerfile.datadog-agent.
The macOS test Agent version (Makefile), the otlp-traces correctness
baseline images, and the Windows LTSC base image are pinned in files no
default manager parses, so they were silently left behind on the 7.80.1
and 7.80.2 bumps and had to be fixed up by hand. Add a regex custom
manager that tracks them off the same registry.datadoghq.com/agent dep,
capturing only the numeric version so each image-tag suffix is preserved
and every pin moves in lockstep with the main Agent image.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
config:recommended (via :ignoreModulesAndTests) ignores **/test/**, and
ignored paths are dropped before any manager extracts from them -- so the
custom Agent-pin manager never saw test/correctness/cases/*/config.yaml
and the OTLP baseline image pins would still drift (caught in review).

Override ignorePaths to reproduce the inherited defaults minus **/test/**,
and explicitly re-ignore test/antithesis/** (the only test/ files built-in
managers recognize: a Dockerfile and a docker-compose) so behavior there
is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The two otlp-traces-ottl correctness tests pinned an external
registry.datadoghq.com/agent:X-full image for their DDOT baseline,
because the converged Agent+ADP image was built on -jmx (no OTel
collector). Build the converged image on -full instead -- a superset of
-jmx (same JMXFetch jar + Java 11 JRE, plus the DDOT otel-agent) -- and
switch the two ottl baselines to the saluki-images/datadog-agent:testing-release
placeholder like every other correctness test, so CI injects the bundled
converged image for those baselines automatically.

That removes the only external Agent image pins left in the test configs,
so the renovate custom manager no longer needs to scan test/correctness:
revert the ignorePaths override and the test fileMatch added alongside it
(the manager now covers just the Makefile and Windows LTSC pins).

Trade-off: this enlarges the publicly published converged image, since
-full also bundles DDOT/system-probe. Opening for team feedback on
whether that's acceptable versus keeping the test-config custom manager.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 23, 2026 03:07
@jszwedko
jszwedko requested a review from a team as a code owner June 23, 2026 03:07
@dd-octo-sts dd-octo-sts Bot added area/ci CI/CD, automated testing, etc. area/test All things testing: unit/integration, correctness, SMP regression, etc. labels Jun 23, 2026

Copilot AI 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.

Pull request overview

This PR switches the “converged” Agent+ADP image to build from the Datadog Agent -full variant so that DDOT/otel-agent is available in the standard saluki-images/datadog-agent:testing-release image used by correctness tests. With that in place, the two OTLP OTTL correctness baselines no longer need to pin an external registry.datadoghq.com/agent:<version>-full image, and the Renovate config can be simplified back to not scanning test/correctness.

Changes:

  • Update the OTLP OTTL correctness baseline images to use saluki-images/datadog-agent:testing-release.
  • Build the bundled/converged Agent image from registry.datadoghq.com/agent:<version>-full (via Dockerfile default and CI variable).
  • Simplify renovate.json5 by removing the test/correctness scanning support and reverting the ignorePaths override.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
test/correctness/cases/otlp-traces-ottl-transform/config.yaml Switches baseline image from an externally pinned -full Agent to the standard testing-release placeholder.
test/correctness/cases/otlp-traces-ottl-filtering/config.yaml Same baseline image switch as above, enabling CI injection of the bundled converged image.
renovate.json5 Removes ignorePaths override and drops correctness config scanning from the Agent-pin custom manager.
docker/Dockerfile.datadog-agent Changes default DD_AGENT_VERSION to 7.80.1-full so the bundled image includes DDOT/otel-agent.
.gitlab-ci.yml Updates PUBLIC_DD_AGENT_VERSION to 7.80.1-full, affecting the publicly published converged image build.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jszwedko jszwedko changed the title chore(ci): base converged Agent image on -full; OTLP baselines use it chore(ci): base converged Agent image on -full Jun 23, 2026
@pr-commenter

pr-commenter Bot commented Jun 23, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: f939603 · Comparison: 56ee863 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 40.28 MiB (baseline) vs 40.28 MiB (comparison)
Size Change: +0 B (+0.00%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.1991650048066735225 -129 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.973700214686069743 +128 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.1991650048066735225 -114 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.973700214686069743 +113 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.1991650048066735225 -108 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.973700214686069743 +107 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.1991650048066735225 -96 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.973700214686069743 +95 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.1991650048066735225 -94 B 1
anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.973700214686069743 +93 B 1
[Unmapped] +5 B 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW]    +128  [NEW]     +40    anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.973700214686069743
  [NEW]    +113  [NEW]     +25    anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.973700214686069743
  [NEW]    +107  [NEW]     +19    anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.973700214686069743
  [NEW]     +95  [NEW]      +7    anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.973700214686069743
  [NEW]     +93  [NEW]      +5    anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.973700214686069743
  +0.1%      +5  [ = ]       0    [Unmapped]
  [DEL]     -94  [DEL]      -5    anon.c332a4a573d0a9a1bf7c71b0a1f57672.2.llvm.1991650048066735225
  [DEL]     -96  [DEL]      -7    anon.c332a4a573d0a9a1bf7c71b0a1f57672.0.llvm.1991650048066735225
  [DEL]    -108  [DEL]     -19    anon.c332a4a573d0a9a1bf7c71b0a1f57672.3.llvm.1991650048066735225
  [DEL]    -114  [DEL]     -25    anon.c332a4a573d0a9a1bf7c71b0a1f57672.4.llvm.1991650048066735225
  [DEL]    -129  [DEL]     -40    anon.c332a4a573d0a9a1bf7c71b0a1f57672.1.llvm.1991650048066735225
  [ = ]       0  [ = ]       0    TOTAL

@datadog-prod-us1-5

This comment has been minimized.

@pr-commenter

pr-commenter Bot commented Jun 23, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: a67c3ec3-4334-400c-8b51-1c802db9c0f2
Baseline: f939603d · Comparison: 56ee8636 · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (35)

Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.

experiment goal Δ mean % links
dsd_uds_512kb_3k_contexts_cpu (erratic) cpu ⚪ +17.68 metrics profiles logs
otlp_ingest_metrics_5mb_memory memory ⚪ +3.57 metrics profiles logs
otlp_ingest_logs_5mb_cpu (ignored) cpu ⚪ +2.49 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_cpu (erratic) cpu ⚪ +1.83 metrics profiles logs
dsd_uds_500mb_3k_contexts_cpu (erratic) cpu ⚪ +0.41 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_throughput throughput ⚪ -0.32 metrics profiles logs
otlp_ingest_traces_5mb_memory memory ⚪ +0.29 metrics profiles logs
dsd_uds_512kb_3k_contexts_memory memory ⚪ +0.27 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_memory memory ⚪ +0.10 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_throughput throughput ⚪ -0.08 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ +0.06 metrics profiles logs
otlp_ingest_metrics_5mb_throughput throughput ⚪ -0.02 metrics profiles logs
dsd_uds_1mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_512kb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
otlp_ingest_logs_5mb_throughput (ignored) throughput ⚪ +0.00 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.00 metrics profiles logs
dsd_uds_100mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_10mb_3k_contexts_throughput throughput ⚪ +0.01 metrics profiles logs
otlp_ingest_traces_5mb_throughput throughput ⚪ +0.03 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ -0.13 metrics profiles logs
dsd_uds_10mb_3k_contexts_memory memory ⚪ -0.21 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.25 metrics profiles logs
dsd_uds_500mb_3k_contexts_memory memory ⚪ -0.25 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_memory memory ⚪ -0.26 metrics profiles logs
quality_gates_rss_idle memory ⚪ -0.32 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_cpu (erratic) cpu ⚪ -0.36 metrics profiles logs
dsd_uds_1mb_3k_contexts_memory memory ⚪ -0.38 metrics profiles logs
dsd_uds_100mb_3k_contexts_memory memory ⚪ -0.41 metrics profiles logs
dsd_uds_500mb_3k_contexts_throughput throughput ⚪ +0.53 metrics profiles logs
otlp_ingest_metrics_5mb_cpu (erratic) cpu ⚪ -0.91 metrics profiles logs
dsd_uds_10mb_3k_contexts_cpu (erratic) cpu ⚪ -0.91 metrics profiles logs
otlp_ingest_traces_5mb_cpu (erratic) cpu ⚪ -1.52 metrics profiles logs
dsd_uds_100mb_3k_contexts_cpu (erratic) cpu ⚪ -1.77 metrics profiles logs
otlp_ingest_logs_5mb_memory (ignored) memory ⚪ -2.37 metrics profiles logs
dsd_uds_1mb_3k_contexts_cpu (erratic) cpu 🟢 -6.68 metrics profiles logs
Bounds Checks: ❌ Failed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 9/10 ❌ 142 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 42.7 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 64.8 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 191 MiB ≤ 200 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 28.2 MiB ≤ 40 MiB metrics profiles logs
Explanation

A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.

@webern webern 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.

Makes sense to me, but wasn't sure about the renovate diff.

Comment thread renovate.json5
// weekly non-major group)
"osvVulnerabilityAlerts": true,

// Paths Renovate skips entirely, before any manager (built-in or custom) extracts from them.

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.

Is the renovate diff a mistake in this PR?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Ah, this is actually expected. Given we no longer have a separate image tag specified in the correctness tests, we no longer need to override the default ignore paths (which include **/test/** by default).

Base automatically changed from jszwedko/renovate-agent-version-pins to main June 23, 2026 12:21
…ent-full-image

# Conflicts:
#	.gitlab-ci.yml
#	docker/Dockerfile.datadog-agent
#	renovate.json5
#	test/correctness/cases/otlp-traces-ottl-filtering/config.yaml
#	test/correctness/cases/otlp-traces-ottl-transform/config.yaml
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot merged commit f77dc3f into main Jun 23, 2026
84 checks passed
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the jszwedko/converged-agent-full-image branch June 23, 2026 14:22
dd-octo-sts Bot pushed a commit that referenced this pull request Jun 23, 2026
> Stacked on #1906 (`jszwedko/renovate-agent-version-pins`). Review/merge that first; this PR will retarget to `main` automatically once it lands.

## Summary

Switch to the `-full` image which contains both JMX and DDOT for correctness tests and the converged image we publish. This removes the need for the OTLP correctness tests to pin to published Agent `-full` images. It also enables deployment of the converged ADP image on internal clusters that also run DDOT.

## Test plan

- [x] Verified `-full` includes JMX: both `-jmx` and `-full` carry the same `jmxfetch.jar` + Java 11 JRE; `-full` additionally has `otel-agent`.
- [x] Rebuilt the converged `testing-release` image on `-full` and confirmed `otel-agent` (DDOT) is present.
- [x] Ran locally on the `-full` converged image — all pass: `otlp-traces-ottl-filtering`, `otlp-traces-ottl-transform` (baseline now runs DDOT from the converged image), plus `otlp-traces`, `otlp-metrics`, and `dsd-plain` to confirm no regression from the base-image change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: jesse.szwedko <jesse.szwedko@datadoghq.com> f77dc3f
tobz pushed a commit that referenced this pull request Jun 30, 2026
> Stacked on #1906 (`jszwedko/renovate-agent-version-pins`). Review/merge that first; this PR will retarget to `main` automatically once it lands.

Switch to the `-full` image which contains both JMX and DDOT for correctness tests and the converged image we publish. This removes the need for the OTLP correctness tests to pin to published Agent `-full` images. It also enables deployment of the converged ADP image on internal clusters that also run DDOT.

- [x] Verified `-full` includes JMX: both `-jmx` and `-full` carry the same `jmxfetch.jar` + Java 11 JRE; `-full` additionally has `otel-agent`.
- [x] Rebuilt the converged `testing-release` image on `-full` and confirmed `otel-agent` (DDOT) is present.
- [x] Ran locally on the `-full` converged image — all pass: `otlp-traces-ottl-filtering`, `otlp-traces-ottl-transform` (baseline now runs DDOT from the converged image), plus `otlp-traces`, `otlp-metrics`, and `dsd-plain` to confirm no regression from the base-image change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: jesse.szwedko <jesse.szwedko@datadoghq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci CI/CD, automated testing, etc. area/test All things testing: unit/integration, correctness, SMP regression, etc. mergequeue-status: done

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants