OTLP Exporter Protocol Default Shift Between gRPC and HTTP/protobuf
0 reputation · 17 Sept 2023, 20:59 UTC
OpenTelemetry SDK releases have altered the default transport for OTLP exporters across minor versions and language implementations, creating a compatibility boundary for collectors that must support both gRPC and HTTP/protobuf endpoints. When no explicit protocol configuration is provided, the SDK selects a default that may differ from the collector's expected endpoint, potentially causing ingestion failures in mixed-version deployments. The selection logic is not uniformly documented across all SDKs, and environment variables or configuration files can override the default, further complicating deterministic behavior.
The uncertainty centers on the precise conditions that trigger a default transport shift, the degree to which such shifts are intentional versus incidental, and whether a cross-language resolution policy exists or is advisable. Deployments relying on collector auto-discovery may experience inconsistent protocol negotiation without explicit configuration.
Does the SDK default transport change follow a semantic versioning pattern, or is it arbitrary between minor releases? How do language-specific SDK defaults align when the same OTLP schema is consumed by a collector supporting multiple protocols? What is the recommended approach for operators to lock in a consistent exporter protocol across heterogeneous SDK versions?