-
Notifications
You must be signed in to change notification settings - Fork 816
Create a experimental HealthCheck GRPC Handler #6225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a experimental HealthCheck GRPC Handler #6225
Conversation
4f2808a
to
93c84ca
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you help me understand the difference between this health check and the existing gRPC client pool https://github.com/cortexproject/cortex/blob/master/pkg/ring/client/pool.go#L60.
Can we just add the health check to the existing pool client? They seem similar functionality to me.
The pool only removes the client when the healthcheck fails, but create a new one right away when a new request come in. cortex/pkg/ring/client/pool.go Line 94 in 6a7f44c
This change here is "short circuiting" the requests if the healthcheck fails. An alternative for this is to create a classic circuit breaker (ex: https://failsafe-go.dev/circuit-breaker/) but i think as a first step using a normal health check config would be simpler. |
93c84ca
to
ad37a39
Compare
Signed-off-by: alanprot <[email protected]>
Signed-off-by: alanprot <[email protected]>
Signed-off-by: alanprot <[email protected]>
dc42443
to
f886278
Compare
Signed-off-by: alanprot <[email protected]>
f886278
to
0ea9d5b
Compare
Signed-off-by: alanprot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
What this PR does:
WIP/Proposal
Create a experimental HealthCheck GRPC Handler.
This health check will evaluate the targets and immediately terminate the request if a target is marked as unhealthy.
Immediately terminating the request when the target is unresponsive provides two major benefits:
Which issue(s) this PR fixes:
Fixes #
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]