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
In our k8s cluster, following gRPC best-practise our OTEL collector exposes its gRPC endpoint as a "headless service" (i.e. with multiple A record IP addresses).
The Go OTEL library allows us to specify the gRPC service config, and in it include the load balancing config, which I think is something like the below:
"loadBalancingConfig": {
"round_robin": {}
}
This works great with our Go-based services.
However, the Java OTEL library does not seem to offer this level of control, and you're forced to construct and manage your own gRPC channel.
It would be fantastic if there were some way to specify the load balancing policy, in the same way as the RetryPolicy.
Describe the solution you'd like
A new setter?
It also sounds like the Java gRPC ecosystem should respond well to a URL of dns:///my-endpoint.headless.service....:4167, but the OTEL library explicitly blocks this.
Additional context Tip: React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.
I'd be interested in working on this. The OTLP gRPC exporters already use ManagedChannelTelemetryExporterBuilder which supports defaultServiceConfig. It looks like exposing a load balancing policy parameter on the exporter builder would be straightforward.
Is this something maintainers are open to accepting?
Activity
ADITYA-CODE-SOURCE commentedon May 18, 2026
I'd be interested in working on this. The OTLP gRPC exporters already use
ManagedChannelTelemetryExporterBuilderwhich supportsdefaultServiceConfig. It looks like exposing a load balancing policy parameter on the exporter builder would be straightforward.Is this something maintainers are open to accepting?