In this article
OTLP/gRPC and OTLP/HTTP are different telemetry transports. Sharing a Collector address does not make them interchangeable. Check protocol, port, TLS, bind address and HTTP signal path on both sides before changing application instrumentation.
OTLP/gRPC and OTLP/HTTP are different telemetry transports. Sharing a Collector address does not make them interchangeable. Check protocol, port, TLS, bind address and HTTP signal path on both sides before changing application instrumentation.
Preserve exporter and receiver settings
Record SDK/exporter version, effective endpoint and Collector receiver configuration. Confirm that the receiver is enabled in the intended service pipeline rather than only declared in YAML. A Collector bound to localhost may be unreachable remotely. Container localhost belongs to its own network scope, not automatically a neighboring service. Record the connection source and resolved destination so address errors remain distinct from wire-protocol mismatch.
Match the transport literally
Default OTLP/gRPC and OTLP/HTTP ports are 4317 and 4318, but configuration can override them. A port is a clue, not automatic protocol negotiation. HTTP uses signal paths such as /v1/traces. Some exporter options accept a base endpoint while others require a signal-specific URL; inspect the SDK’s documented behavior. Appending a path blindly can duplicate the suffix. TLS must match the listener and client trust configuration.
Separate similar failures
In an example, a gRPC exporter points to an HTTP listener on 4318. TCP may connect without a valid OTLP exchange. In another, an HTTP exporter uses an incorrect signal path and receives an unexpected HTTP status. Both differ from missing network connectivity. Preserve the error category and receiver protocol using synthetic telemetry. This concerns observability transport rather than the external LLM API endpoint.
| Layer | Verification |
|---|---|
| TCP | Address and port reachability |
| TLS | Matching mode and trust |
| OTLP transport | gRPC or HTTP on both sides |
| Signal routing | Correct path and active pipeline |
Correct one endpoint
Align exporter and receiver while preserving service identity and the rest of the pipeline. Inspect Collector startup logs and its actual listener afterward. Do not bind every interface unnecessarily; the address should match the trusted network scope. Test one signal with a minimal exporter before restoring ordinary volume. If connection works but backend data is absent, investigate processors, exporters and downstream queues rather than continuing to change transport settings.
Verify receipt end to end
Confirm receiver intake, processing and appearance in the intended backend. Temporary debug output can reveal payloads but must not expose secrets. Preserve versions, exporter option, receiver protocol, TLS mode and each stage’s result. Keep connectivity separate from delivery: an open 4317 does not establish a correct trace pipeline. Repeat endpoint-semantic checks after SDK updates, since configuration behavior can differ across implementations even when option names look familiar.
Related operational reading: gpu monitoring scorecard; vllm localhost container port.