-
Notifications
You must be signed in to change notification settings - Fork 63
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 healthchecks #863
Conversation
✅ Deploy Preview for polite-licorice-3db33c canceled.
|
bfadd5b
to
83c6241
Compare
Codecov Report
@@ Coverage Diff @@
## main #863 +/- ##
==========================================
- Coverage 72.81% 72.80% -0.02%
==========================================
Files 27 27
Lines 2755 2765 +10
==========================================
+ Hits 2006 2013 +7
- Misses 664 665 +1
- Partials 85 87 +2
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Overal looks good 🙌 |
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.
Beside the comment of @Kavindu-Dodan, LGTM 👍
1e4c19c
to
e5b3116
Compare
@Kavindu-Dodan @thisthat I've fixed that issue. Please re-review. |
e5b3116
to
bb8e7cd
Compare
* adds a gRPC healthcheck to the "metrics" port * supports both gRPC and HTTP on "metrics" port * adds relevant doc Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
bb8e7cd
to
2a2497e
Compare
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com> Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
🤖 I have created a release *beep* *boop* --- <details><summary>flagd: 0.6.4</summary> ## [0.6.4](flagd/v0.6.3...flagd/v0.6.4) (2023-08-30) ### 🐛 Bug Fixes * **deps:** update module github.com/cucumber/godog to v0.13.0 ([#855](#855)) ([5b42486](5b42486)) * **deps:** update module github.com/open-feature/flagd/core to v0.6.3 ([#794](#794)) ([9671964](9671964)) ### 🧹 Chore * **deps:** update golang docker tag to v1.21 ([#822](#822)) ([effe29d](effe29d)) </details> <details><summary>flagd-proxy: 0.2.9</summary> ## [0.2.9](flagd-proxy/v0.2.8...flagd-proxy/v0.2.9) (2023-08-30) ### 🐛 Bug Fixes * **deps:** update module github.com/open-feature/flagd/core to v0.6.3 ([#794](#794)) ([9671964](9671964)) ### 🧹 Chore * **deps:** update golang docker tag to v1.21 ([#822](#822)) ([effe29d](effe29d)) </details> <details><summary>core: 0.6.4</summary> ## [0.6.4](core/v0.6.3...core/v0.6.4) (2023-08-30) ### 🐛 Bug Fixes * **deps:** update kubernetes packages to v0.28.0 ([#841](#841)) ([cc195e1](cc195e1)) * **deps:** update kubernetes packages to v0.28.1 ([#860](#860)) ([f3237c2](f3237c2)) * **deps:** update module github.com/open-feature/open-feature-operator to v0.2.36 ([#799](#799)) ([fa4da4b](fa4da4b)) * **deps:** update module golang.org/x/crypto to v0.12.0 ([#797](#797)) ([edae3fd](edae3fd)) * **deps:** update module golang.org/x/net to v0.14.0 ([#798](#798)) ([92c2f26](92c2f26)) * **deps:** update module sigs.k8s.io/controller-runtime to v0.15.1 ([#795](#795)) ([13d62fd](13d62fd)) * **deps:** update module sigs.k8s.io/controller-runtime to v0.16.0 ([#856](#856)) ([88d832a](88d832a)) ### ✨ New Features * add flag key to hash in fractional evaluation ([#847](#847)) ([ca6a35f](ca6a35f)) * add gRPC healthchecks ([#863](#863)) ([da30b7b](da30b7b)) * support nested props in fractional evaluator ([#869](#869)) ([50ff739](50ff739)) ### 🧹 Chore * deprecate fractionalEvaluation for fractional ([#873](#873)) ([243fef9](243fef9)) * replace xxh3 with murmur3 in bucket algorithm ([#846](#846)) ([c3c9e4e](c3c9e4e)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@thisthat @Kavindu-Dodan @beeme1mr
I've closed the previous PR and gone about this a different way... Primarily because I realized it's a bad idea to put the healthcheck on the "main" socket, since that can be bound not just to a TCP socket, but to a unix socket, which would be very problematic for a healthcheck 😅 .
I've instead added the new gRPC health checks to the "metrics" ports of both
flagd
andflagd-proxy
with some basic home-grown multiplexing code. I strongly recommend we re-name this port from "metrics" to "management" in a subsequent PR, since we are not just using it for metrics (we can probably use viper to make this non-breaking, ie use "metricsPort" if "managementPort" is missing).@thisthat another bonus is this approach doesn't require and new deps, and therefore no proto conflicts!
fixes: #831