Linkerd

TCP Metrics Missing Application-Layer Failures

info
reliabilityUpdated Jan 27, 2026

For non-HTTP protocols, Linkerd only reports TCP-level metrics (bytes, connections) without application-layer success/failure information. This makes debugging opaque protocols difficult as you only see connection state, not request outcomes.

How to detect:

Identify services using TCP without HTTP/gRPC by checking linkerd_tcp_open and linkerd_tcp_close metrics without corresponding linkerd_response metrics. Look for TCP connection churn (high open/close rates) that may hide application errors.

Recommended action:

For critical TCP services, instrument application code with custom metrics to expose success/failure states. Consider migrating to HTTP/gRPC for better observability. Use linkerd_tcp_backend_time to detect connection duration anomalies as proxy for health. Enable debug sidecar with tshark for deep packet inspection when needed.