Replace the unreleased `data_plane.apm.*` settings with configuration for
an experimental APM proxy. With the proxy enabled, ADP takes over the
trace-agent's receiver: it listens where the trace-agent normally does and
forwards requests to the trace-agent, which the Datadog Agent relocates.
- `data_plane.experimental.apm.enabled` gates the proxy (`control.apm`).
- `data_plane.experimental.apm.proxy_destination` is the relocated
trace-agent's URL, `http://` or `unix://`, defaulting to
`http://127.0.0.1:8127`.
- `apm_config.receiver_port`, `apm_config.receiver_socket`, and
`apm_config.apm_non_local_traffic` move from excluded to supported, so ADP
binds exactly what tracers are configured to reach. The receiver socket's
Linux/AIX platform default is applied in translation, since the generated
model cannot express it.
- `bind_host` moves from the DogStatsD domain to the shared configuration,
now that both DogStatsD and APM read it.
Nothing consumes the APM domain yet.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Summary
Reworks the APM config for a new approach. Instead of ADP running a v1.0 trace receiver on its own port next to the trace-agent, ADP now runs as an experimental proxy in front of the trace-agent. It listens exactly where the trace-agent normally listens, handles
/v1.0/tracesitself (eventually feeding the full trace pipeline), and proxies everything else to the trace-agent, which the Datadog Agent moves to a new address.This PR replaces the unreleased
data_plane.apm.*settings from #2593 with:data_plane.experimental.apm.enabledcontrol.apm), defaultfalsedata_plane.experimental.apm.proxy_destinationhttp://host:portorunix:///path, defaulthttp://127.0.0.1:8127apm_config.receiver_port0disablesapm_config.receiver_socket/var/run/datadog/apm.socketon Linux/AIXapm_config.apm_non_local_trafficOther changes:
bind_hostmoves from the DogStatsD domain toshared, since both DogStatsD and APM now read it.apm_config.receiver_socket's default depends on the platform, which the generated model can't express, so the translator applies the Linux/AIX default when the key is unset. An explicit""still disables the socket, as it does for the trace-agent.127.0.0.1rather thanlocalhost, so ADP and the trace-agent can't resolve the name to different address families.Nothing consumes
domains.apmyet. The relay that uses it is the next PR in the stack. The matching Datadog Agent change (relocating the trace-agent when the proxy is enabled) is tracked separately.Change Type
How did you test this PR?
domains.apm, defaults match the trace-agent (including the platform socket default), an empty socket disables it, out-of-range ports record errorscargo nextest run --workspace: 3334/3334 passedmake check-all: cleanReferences
Part of #2438 (Datadog-native intake). Replaces the settings added in #2593, which haven't shipped in any release.
🤖 Generated with Claude Code