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

gRPC support #157

Open
arnemolland opened this issue Aug 20, 2021 · 8 comments
Open

gRPC support #157

arnemolland opened this issue Aug 20, 2021 · 8 comments
Labels
feature New feature or request help wanted Extra attention is needed

Comments

@arnemolland
Copy link

Would love to see support for gRPC service monitoring. We're using gatus for our external APIs but our internal service mesh consists of mostly gRPC services where we already implement the gRPC health checking protocol and integrate with k8s and Docker, and it would be nice to have on our status dashboard as well. I've just been introduced to the project so I'm not aware of the amount of work it requires, but let me know if you need some help!

@TwiN TwiN added the feature New feature or request label Jan 4, 2022
@TwiN TwiN pinned this issue Nov 9, 2022
@TwiN TwiN added the help wanted Extra attention is needed label Nov 12, 2022
@TwiN
Copy link
Owner

TwiN commented Nov 23, 2022

I gave implementing this a try but it's not as simple as I had hoped.

What exactly would you like to test? A simple check to see if the server is reachable is fine, it's even possible to check if a method is valid, but if you want to also send a proto message, then it's a different story altogether.

Feel free to give implementing it a shot if you have an idea!

@arnemolland
Copy link
Author

I gave implementing this a try but it's not as simple as I had hoped.

What exactly would you like to test? A simple check to see if the server is reachable is fine, it's even possible to check if a method is valid, but if you want to also send a proto message, then it's a different story altogether.

Feel free to give implementing it a shot if you have an idea!

Primarily just checking the status given that the server is serving the gRPC healthcheck service, hopefully I can give it a shot sometime soon!

@TwiN
Copy link
Owner

TwiN commented Jan 25, 2023

FYI somebody has picked up this task, but the first iteration will only support the gRPC healthcheck service.

@heitorPB
Copy link
Contributor

heitorPB commented Jun 7, 2023

Hi @TwiN, is the person working on this task? Is there something I can do to help here?

@TwiN
Copy link
Owner

TwiN commented Jun 7, 2023

@heitorPB I believe the fork is on https://github.com/baechul/gatus

It may have been abandoned, but I believe they managed to get GRPC health checks working.

The bulk of the changes is here: baechul@af50aae

@heitorPB
Copy link
Contributor

I'm working on implementing basic gRPC support. I'm not familiar with the healthcheck service, but hopefully should also be supported :)

@vax-r
Copy link
Contributor

vax-r commented Dec 9, 2023

@TwiN
Is it still under construction? or no one is working on it now?
If that is the case I would love to give it a shot

@heitorPB
Copy link
Contributor

I have a branch with a working implementation of gRPC monitoring: https://github.com/heitorpb/gatus/tree/grpc-support. This branch requires the server to implement the gRPC Reflection Protocol and does not support local proto files.

The issue I had with this code is that the used golang gRPC library is awkward. In some apparently arbitrary cases, the response body is truncated at 1024 bytes even when explicitly setting the maximum size to 64k. The library client appears to not detect the gRPC version (v1alpha or v1) in all cases, even though the docs says so.

I'm not sure where is the issue: on my code, or in the library used 🤷 But I got it in a "working for us" state in the little time I was given to work on this.

Feel free to continue on top of my work there, this is an epic topic to collaborate :)

Pinging @TwiN here to get some of their wisdom :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants