Skip to content

Add appProtocol to OTLP service ports#2409

Open
Dragemil wants to merge 1 commit intoDataDog:mainfrom
Dragemil:add-appprotocol-otlp-service-ports
Open

Add appProtocol to OTLP service ports#2409
Dragemil wants to merge 1 commit intoDataDog:mainfrom
Dragemil:add-appprotocol-otlp-service-ports

Conversation

@Dragemil
Copy link
Copy Markdown

What this PR does / why we need it:

Adds appProtocol: grpc and appProtocol: http to the OTLP receiver port entries (otlpgrpcport and otlphttpport) in the local-traffic agent service (agent-services.yaml).

Envoy-based service meshes (Istio sidecar/ambient, Gloo, etc.) rely on either port-name prefixes (grpc-, http-) or the appProtocol field to detect application-level protocols. Because otlpgrpcport doesn't match any recognized prefix, the proxy treats the port as plain TCP — breaking gRPC connectivity with:

upstream connect error or disconnect/reset before headers.
reset reason: protocol error

appProtocol is a stable Kubernetes field (GA since v1.20) and is the standard way to declare application-level protocols on service ports.

Which issue this PR fixes

(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

  • fixes #

Special notes for your reviewer:

  • This is a non-breaking, additive-only change — appProtocol is ignored by components that don't inspect it.
  • Verified that versions 3.154.1 through 3.174.0 do not set appProtocol on these ports.
  • No new values.yaml parameters are introduced (the field is unconditionally set when the OTLP receiver is enabled).

Checklist

[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

  • All commits are signed (see: signing commits)
  • Chart Version semver bump label has been added (use <chartName>/minor-version, <chartName>/patch-version, or <chartName>/no-version-bump)
  • For datadog or datadog-operator chart or value changes, update the test baselines (run: make update-test-baselines)

GitHub CI takes care of the below, but are still required:

  • Documentation has been updated with helm-docs (run: .github/helm-docs.sh)
  • CHANGELOG.md has been updated
  • Variables are documented in the README.md

Set appProtocol: grpc on otlpgrpcport and appProtocol: http on
otlphttpport in the local-traffic agent service so that Envoy-based
service meshes (Istio, Gloo, etc.) correctly identify the application
protocol without relying on port-name heuristics
@Dragemil Dragemil requested a review from a team as a code owner February 24, 2026 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant