Skip to content

Setting round_robin load balancing policy #8169

Open

Description

@pete-woods

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.

Activity

  1. ADITYA-CODE-SOURCE commented on May 18, 2026

    @ADITYA-CODE-SOURCE
    Contributor

    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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Feature RequestSuggest an idea for this project

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions