Skip to content

refactor: Move OtlpPayload and OTLP request bodies to communication/otlp-exporter - #12880

Draft
jbachorik wants to merge 1 commit into
masterfrom
jb/otlp-profile-move
Draft

jbachorik wants to merge 1 commit into
masterfrom
jb/otlp-profile-move

Conversation

@jbachorik

@jbachorik jbachorik commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

What Does This Do

Moves OtlpPayload, OtlpHttpRequestBody, and OtlpGrpcRequestBody and their two tests from dd-trace-core to the new module communication/otlp-exporter. The moved files change only their package line. The rest of the change is import updates in dd-trace-core and the module setup: settings, build files, muzzle filter, agent shadow jar, and CODEOWNERS.

Motivation

The profiler sends profiles through the same OTLP transport as the tracer. The profiler modules depend on communication and internal-api, but not on dd-trace-core. The transport code must therefore live outside dd-trace-core.

This PR moves the payload and the request body classes. The sender classes follow in the next PR, together with the response type change they need.

Additional Notes

Part of a 5-PR stack. Each PR bases on the previous one.

  1. this PR: the payload and request body move
  2. OTLP sender extraction and canonical resource attributes (refactor: Extract OTLP sender infrastructure to communication/otlp-exporter #12868)
  3. RecordingData reference counting (feat(profiling): Reference-count RecordingData lifecycle #12869)
  4. JFR to OTLP/P converter, profiling-otel, plus jafar 0.26.2 (feat(profiling): Add JFR to OTLP/P converter with CLI, benchmarks and validation #12870)
  5. OTLP profiles export wiring (feat(profiling): Integrate OTLP profiles export into the agent #12871)

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@datadog-datadog-us1-prod

This comment has been minimized.

@jbachorik
jbachorik force-pushed the jb/otlp-profile-move branch from cb8173a to 377b8cd Compare October 14, 2026 22:31
…tlp-exporter

Content-identical file moves (package statement only): OtlpPayload,
OtlpHttpRequestBody, OtlpGrpcRequestBody and their tests move into a
new standalone communication/otlp-exporter module so the profiler can
reuse the OTLP transport code without depending on dd-trace-core.

No logic changes. Mechanical import updates in dd-trace-core.
@dd-octo-sts

dd-octo-sts Bot commented Oct 14, 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.76 s 14.60 s [+0.3%; +1.9%] (maybe worse)
startup:insecure-bank:tracing:Agent 13.59 s 13.58 s [-0.8%; +0.9%] (no difference)
startup:petclinic:appsec:Agent 17.60 s 17.42 s [+0.1%; +2.0%] (maybe worse)
startup:petclinic:iast:Agent 17.30 s 17.43 s [-1.7%; +0.1%] (no difference)
startup:petclinic:profiling:Agent 17.30 s 16.66 s [-0.6%; +8.3%] (no difference)
startup:petclinic:sca:Agent 17.66 s 16.96 s [-0.5%; +8.7%] (no difference)
startup:petclinic:tracing:Agent 16.52 s 16.20 s [-2.2%; +6.2%] (no difference)

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

@jbachorik
jbachorik force-pushed the jb/otlp-profile-move branch from 377b8cd to 73a8695 Compare October 14, 2026 22:38

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: profiling Profiling tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes type: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant