Skip to content

Pure-Python otlp-proto-common encoding (no protobuf) [2/4 RFC] - #5504

Draft
ocelotl wants to merge 2 commits into
open-telemetry:mainfrom
ocelotl:pure-python-otlp-2-common
Draft

Pure-Python otlp-proto-common encoding (no protobuf) [2/4 RFC]#5504
ocelotl wants to merge 2 commits into
open-telemetry:mainfrom
ocelotl:pure-python-otlp-2-common

Conversation

@ocelotl

@ocelotl ocelotl commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

What

Point opentelemetry-exporter-otlp-proto-common (the shared OTLP encoders for traces/metrics/logs) at the pure-Python protobuf backend from #5503. No google.protobuf anywhere in the OTLP encode path.

The public opentelemetry.exporter.otlp.proto.common.* API is preserved via re-export shims over a private opentelemetry.exporter.otlp._proto.common implementation, mirroring the structure used for opentelemetry-proto in #5503.

Stacked series (merge in order)

  1. opentelemetry-proto → pure-Python
  2. opentelemetry-exporter-otlp-proto-common → pure-Python backend (this PR)
  3. opentelemetry-exporter-otlp-proto-http → pure-Python + stdlib urllib
  4. opentelemetry-exporter-otlp-proto-grpc → pure-Python gRPC

This PR depends on #5503 and its diff includes #5503's changes (cumulative, since we can't host intermediate base branches in the upstream repo). To review only the common-package changes, see the fork compare:
https://github.com/ocelotl/opentelemetry-python/compare/pure-python-otlp-1-proto...pure-python-otlp-2-common

Notes


Stack (merge in order): #5503 (proto) → #5504 (common) → #5505 (http) → #5506 (grpc)

ocelotl added 2 commits August 2, 2026 21:33
Swap the google.protobuf-generated message classes for hand-written pure-Python
encoders under opentelemetry._proto, keeping the public opentelemetry.proto.*
import namespace via thin re-export shims. Removes the protobuf (and native upb)
dependency entirely; only the serialize path used by the OTLP exporters is
implemented (plus the empty export-service response decode).
Point the shared OTLP encoders at the pure-Python opentelemetry-proto package.
No google.protobuf dependency; public opentelemetry.exporter.otlp.proto.common.*
API preserved via re-export shims over the private _proto implementation.
@opentelemetry-pr-dashboard

Copy link
Copy Markdown

Pull request dashboard status

Waiting on the author · refreshed 2026-08-14 16:59 UTC

Move out of draft to request review.

Status above doesn't look right?
  • Just replied or pushed? Anything around or after the refresh time above may not be picked up yet — give it a few minutes.
  • Anything look wrong? Report it with what you expected; it helps us improve the dashboard.

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