Skip to content

config: simplify grpc options#8759

Open
MichaHoffmann wants to merge 1 commit intomainfrom
mhoffmann/cleanup-grpc-opts
Open

config: simplify grpc options#8759
MichaHoffmann wants to merge 1 commit intomainfrom
mhoffmann/cleanup-grpc-opts

Conversation

@MichaHoffmann
Copy link
Copy Markdown
Contributor

The endpoint group service config is genuienly useful for all grpc connections. The difference is in the resolver - for groups it will resolve on its own and loadbalnace between the backends for non-groups we use the passthrough resolver which then will loadbalnace between one backend which should be same behavior as today - in turn we get retries on UNAVAILABLE which is still useful.
This also unifies the dial option construction which makes it easier to reason about.
I also took the liberty to clean up some related stuff.

  • I added CHANGELOG entry for this change.
  • Change is not relevant to the end user.

Changes

Verification

@MichaHoffmann MichaHoffmann force-pushed the mhoffmann/cleanup-grpc-opts branch from 0ed6264 to 167d4a5 Compare April 9, 2026 10:57
@MichaHoffmann MichaHoffmann requested a review from GiedriusS April 9, 2026 10:57
@MichaHoffmann MichaHoffmann force-pushed the mhoffmann/cleanup-grpc-opts branch from 167d4a5 to 5117fc8 Compare April 9, 2026 11:10
fpetkovski
fpetkovski previously approved these changes Apr 9, 2026
The endpoint group service config is genuienly useful for all grpc
connections. The difference is in the resolver - for groups it will
resolve on its own and loadbalnace between the backends for non-groups
we use the passthrough resolver which then will loadbalnace between one
backend which should be same behavior as today - in turn we get retries
on UNAVAILABLE which is still useful.
This also unifies the dial option construction which makes it easier to
reason about.
I also took the liberty to clean up some related stuff.

Signed-off-by: Michael Hoffmann <mhoffmann@cloudflare.com>
@MichaHoffmann
Copy link
Copy Markdown
Contributor Author

Test is a flake and passes locally:

--- PASS: TestReceive (0.00s)
    --- PASS: TestReceive/multitenant_active_series_limiting (186.19s)
PASS
ok  	github.com/thanos-io/thanos/test/e2e	605.759s

The previous capnp test just takes forever to run.

"sidecar": {
{
Name: "e2e-test-info-sidecar-alone1:9091",
Name: "passthrough:///e2e-test-info-sidecar-alone1:9091",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is passthrough for here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a Grpc resolver that sends the address to Grpc without resolving - because we already resolved it ourselves

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

@saswatamcode saswatamcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! This looks good, hopefully not a breaking change?

@MichaHoffmann
Copy link
Copy Markdown
Contributor Author

Thanks! This looks good, hopefully not a breaking change?

i hope not!

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants