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
feat: add grpc health checking #4779
Conversation
dfd17f0
to
d6b5cc7
Compare
d6b5cc7
to
b04f9df
Compare
Latency summaryCurrent PR yields:
Breakdown
Backed by latency-tracking. Further commits will update this comment. |
Codecov Report
@@ Coverage Diff @@
## master #4779 +/- ##
==========================================
- Coverage 88.18% 87.91% -0.28%
==========================================
Files 110 111 +1
Lines 8481 8647 +166
==========================================
+ Hits 7479 7602 +123
- Misses 1002 1045 +43
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
docs/fundamentals/health-check.md
Outdated
f.block() | ||
``` | ||
|
||
On another terminal, we can install or download [grpcurl](https://github.com/fullstorydev/grpcurl) image to be able to send `rpc` requests to our services. |
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.
On another terminal, we can install or download [grpcurl](https://github.com/fullstorydev/grpcurl) image to be able to send `rpc` requests to our services. | |
On another terminal, we can install or download [grpcurl](https://github.com/fullstorydev/grpcurl) image to be able to send `rpc` health check requests to our services. |
Otherwise it could be confusing what this line is doing
docs/fundamentals/health-check.md
Outdated
|
||
### Gateway health check with http or websocket | ||
|
||
When using grpc or http as a procotol for the Gateway, then it exposes and endpoint '/' that one can query to check the status. |
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.
When using grpc or http as a procotol for the Gateway, then it exposes and endpoint '/' that one can query to check the status. | |
When using grpc or http as a procotol for the Gateway, then it exposes and endpoint `"/"` that one can query to check the status. |
Otherwise it is not formatted correctly
docs/fundamentals/health-check.md
Outdated
|
||
### Check status from outside | ||
|
||
To understand better what is going on under the hood, we can check how to target the endpoint from outside Jina or the client. |
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.
To understand better what is going on under the hood, we can check how to target the endpoint from outside Jina or the client. | |
To better understand what is going on under the hood, we can check how to target the endpoint from outside Jina or the client. |
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.
I would put the part about checking the entire Flow, dry_run()
etc at the top. To me it seems like the most useful and commonly needed feature.
Also, what is the difference between the sections at the top about checking Executor/Gateway, and the sections at the bottom about 'from the outside'? I didn't leave comments on the latter because it seemed the same to me. Could you explain the difference?
docs/index.md
Outdated
@@ -50,6 +50,7 @@ fundamentals/architecture-overview | |||
fundamentals/executor/index | |||
fundamentals/flow/index | |||
fundamentals/clean-code | |||
fundamentals/health-check |
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.
Should the page go under Flow
?
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
2 similar comments
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
📝 Docs are deployed on https://grpc-based-health-check--jina-docs.netlify.app 🎉 |
This PR aims to change the way health check is done in the core for Executors but also for any runtime using grpc. We aim to use the standard grpc https://github.com/grpc/grpc/blob/master/doc/health-checking.md as suggested by grpc, and which is something that lots of Load Balancers, etc ... will use to make sure grpc-based microservices are healthy.
This also has the benefit that
ControlRequest
can be removed from the code.