Skip to content
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

Support for gRPC health check endpoint #5930

Open
ikhoon opened this issue Oct 2, 2024 · 6 comments · May be fixed by #6078
Open

Support for gRPC health check endpoint #5930

ikhoon opened this issue Oct 2, 2024 · 6 comments · May be fixed by #6078

Comments

@ikhoon
Copy link
Contributor

ikhoon commented Oct 2, 2024

It would be useful to have a GrpcHealthcheckedEndpointGroup to use gRPC health checks in the Armeria gRPC client.

public class GrpcHealthcheckedEndpointGroupBuilder extends AbstractHealthCheckedEndpointGroupBuilder {

    protected abstract Function<? super HealthCheckerContext, ? extends AsyncCloseable> newCheckerFactory() {
        return new GrpcHealthCheckerFactory(...);
   }

}
@minkichoe
Copy link

Hi @ikhoon, I'd like to work on this issue as my first contribution to the project. Could you please let me know if it's okay to proceed?

@ikhoon
Copy link
Contributor Author

ikhoon commented Oct 10, 2024

For sure. 👍

@ikhoon
Copy link
Contributor Author

ikhoon commented Oct 10, 2024

Reference: https://grpc.io/docs/guides/health-checking/

@asharan2buff
Copy link

Can I take this up if nobody is working on it?

@minkichoe
Copy link

If you’re interested in my opinion, yes, you can take it.

@ikhoon
Copy link
Contributor Author

ikhoon commented Nov 13, 2024

Can I take this up if nobody is working on it?

It seems no one is working on this issue. Welcome.

wvuong added a commit to wvuong/armeria that referenced this issue Jan 22, 2025
Motivation:

Add `GrpcHealthCheckedEndpointGroupBuilder` which builds a health checked endpoint group whose health comes from a [standard gRPC health check service result](https://grpc.io/docs/guides/health-checking/).

Modifications:

* Adds `GrpcHealthCheckedEndpointGroupBuilder` which extends `AbstractHealthCheckedEndpointGroupBuilder` and creates a new health check function
* Adds `GrpcHealthChecker` which is the health check function that creates and uses a gRPC `HealthGrpc` stub to check the gRPC health service on the endpoint. If the health check response is `SERVING`, it is healthy. It is unhealthy if the response is not `SERVING` or if there was a request failure.
* Adds tests.

Result:

* A user can create a health checked endpoint group that is backed by a gRPC health check service.
* Closes line#5930

Closes
wvuong added a commit to wvuong/armeria that referenced this issue Jan 22, 2025
Motivation:

Add `GrpcHealthCheckedEndpointGroupBuilder` which builds a health checked endpoint group whose health comes from a [standard gRPC health check service result](https://grpc.io/docs/guides/health-checking/).

Modifications:

* Adds `GrpcHealthCheckedEndpointGroupBuilder` which extends `AbstractHealthCheckedEndpointGroupBuilder` and creates a new health check function
* Adds `GrpcHealthChecker` which is the health check function that creates and uses a gRPC `HealthGrpc` stub to check the gRPC health service on the endpoint. If the health check response is `SERVING`, it is healthy. It is unhealthy if the response is not `SERVING` or if there was a request failure.
* Adds tests.

Result:

* A user can create a health checked endpoint group that is backed by a gRPC health check service.
* Closes line#5930

Closes
wvuong added a commit to wvuong/armeria that referenced this issue Jan 22, 2025
Motivation:

Add `GrpcHealthCheckedEndpointGroupBuilder` which builds a health checked endpoint group whose health comes from a [standard gRPC health check service result](https://grpc.io/docs/guides/health-checking/).

Modifications:

* Adds `GrpcHealthCheckedEndpointGroupBuilder` which extends `AbstractHealthCheckedEndpointGroupBuilder` and creates a new health check function
* Adds `GrpcHealthChecker` which is the health check function that creates and uses a gRPC `HealthGrpc` stub to check the gRPC health service on the endpoint. If the health check response is `SERVING`, it is healthy. It is unhealthy if the response is not `SERVING` or if there was a request failure.
* Adds tests.

Result:

* A user can create a health checked endpoint group that is backed by a gRPC health check service.
* Closes line#5930
@wvuong wvuong linked a pull request Jan 22, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants