Jaeger Collector gRPC Connection Pool: Unclear Backpressure Policy on Stream Exhaustion
0 reputation · 18 Sept 2025, 06:00 UTC
Goal
The Jaeger Collector exposes a gRPC server whose concurrent stream capacity is controlled by the grpc-server.max-concurrent-streams setting. When bursts of span ingestion exceed this limit, the collector may queue or reject new streams, leading to intermittent connection pool exhaustion that manifests as client reconnection storms.
Uncertainty
However, the codebase does not specify whether the collector applies backpressure by returning a RESOURCE_EXHAUSTED error or silently discards spans when the stream limit is hit. Because the setting is static, administrators must manually tune it without clear guidance on safe upper bounds, leaving uncertainty about the impact on latency and memory usage.
Open Questions
To clarify the collector’s behavior and guide tuning, the following questions remain:
- When the stream limit is exceeded, does the collector return a
RESOURCE_EXHAUSTEDerror or silently drop the incoming spans? - If spans are silently dropped, how is this reflected in the collector metrics, and could it be misinterpreted as sampling?
- What is a recommended safe upper bound for
grpc-server.max-concurrent-streamsthat balances throughput, latency, and resource consumption?