TECHNOLOGY

Telemetry never reaches the Collector: OTLP gRPC, HTTP and endpoints

In this article
THE QUICK TAKE

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.

Official reference 1.

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.

Official reference 2.

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.

LayerVerification
TCPAddress and port reachability
TLSMatching mode and trust
OTLP transportgRPC or HTTP on both sides
Signal routingCorrect 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.

← All articles