You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add connection pooling support to OTLP exporter for high-throughput scenarios
This enhancement adds a connection_pool_size configuration option to the OTLP
exporter, enabling multiple gRPC connections with round-robin load balancing.
Key changes:
- Add connection_pool_size config parameter (default: 0, uses 1 connection)
- Implement round-robin load balancing across multiple connections
- Support for 1-256 concurrent gRPC connections
- Backward compatible: default behavior unchanged
This resolves performance issues in high-throughput environments (10K+ spans/sec)
and high-latency network scenarios where a single gRPC connection becomes a
bottleneck.
Also fixes unrelated service.go issue per contributor feedback on PR open-telemetry#14342.
Copy file name to clipboardExpand all lines: exporter/otlpexporter/README.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,14 @@ If a scheme of `https` is used then client transport security is enabled and ove
33
33
-`sending_queue`: see [Sending Queue](../exporterhelper/README.md#sending-queue) for the full set of available options.
34
34
-`timeout` (default = 5s): Time to wait per individual attempt to send data to a backend.
35
35
36
+
The following settings are optional:
37
+
38
+
-`connection_pool_size` (default = 0, uses 1 connection): Number of gRPC connections to maintain in the connection pool.
39
+
Useful for high-throughput scenarios (10K+ spans/sec) or high-latency network connections.
40
+
The exporter distributes requests across connections using round-robin load balancing.
41
+
Recommended value for high-throughput deployments: 4-8 connections.
42
+
Maximum allowed value: 256. Setting to 0 or omitting uses the default of 1 connection.
43
+
36
44
Example:
37
45
38
46
```yaml
@@ -46,6 +54,14 @@ exporters:
46
54
endpoint: otelcol2:4317
47
55
tls:
48
56
insecure: true
57
+
# High-throughput configuration with connection pooling
58
+
otlp/high-throughput:
59
+
endpoint: otelcol-gateway:4317
60
+
connection_pool_size: 5
61
+
compression: snappy
62
+
sending_queue:
63
+
num_consumers: 100
64
+
queue_size: 2000
49
65
```
50
66
51
67
By default, `gzip` compression is enabled. See [compression comparison](../../config/configgrpc/README.md#compression-comparison) for details benchmark information. To disable, configure as follows:
0 commit comments