-
Notifications
You must be signed in to change notification settings - Fork 316
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
[svc health check] allow configurable interval between checks. #5890
[svc health check] allow configurable interval between checks. #5890
Conversation
Thanks for the pull request! Here is what will happen next:
Thank you for contributing! |
I'm planning to look at this tomorrow and hope to have feedback for you by Monday. |
ac1627e
to
c1a50e8
Compare
Looks like the Appveyor error was a Bldr API service unavailable. |
I re-started the AppVeyor job |
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 haven't finished reading everything (will continue on Monday), but wanted to give you some early feedback. As usual, this is great work. The biggest thing so far that I'd like to see changed is all the u32
s and health_check_interval_seconds
to Duration
s and health_check_interval
. There'll be some work to make Duration
a type we can reference in the .proto
files, but I think we can make that happen and it will be worthwhile for all the type safety that it buys.
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.
@jeremymv2 Looking good so far, but I have some suggestions that can hopefully simplify things further. Let me know what you think.
Thanks!
6c092d7
to
952b19a
Compare
@cm @baumanj Thank you for the very helpful feedback. I believe I have addressed most of the items, but I'd still like to have some discussion around the finer details of this implementation. HealthCheckInterval is now a custom core::Service type in habitat-sh/core#95 and therefore testing this PR will require pulling down the branch for the change in core and modifying https://github.com/habitat-sh/habitat/blob/master/Cargo.toml#L26-L32 locally to build. Additionally the core PR will need to be merged first in order for us to get a ✅ build here. Before I move further with refining this PR and testing edge cases, I'd like to get your feedback again on this intermediary point with the new commits I've just added to ensure we're all in agreement. Thank you. |
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.
Overall looks great. I'd like to simplify a few things and there may be one logic error.
@christophermaier @baumanj some spare cycles popped up yesterday so I made some more progress. Please take a look at your convenience. As always, thank you!! |
f038c8a
to
3789a76
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.
The feedback changes look good; I think there's some core logic we can tighten up (or I'm failing to understand the complexity of the use case correctly)
3789a76
to
bc3f565
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.
This looks great! I just had one small suggestion for nicer logging if you're so inclined, but I'm happy to approve this.
I'll plan to merge once our current release process is done.
let's kick off a rebuild now since the PR to core merged. Could somebody with permissions help out with re-running please 😄 ? |
Once this merges, I will follow up with a doc update. |
Hey @jeremymv2, now that habitat-sh/core#95 is merged, I'm updating the Once that merges, can you rebase this so that the CI passes? Then I can merge this one. |
#6009 is merged now |
Allows a custom health check interval per service. Signed-off-by: Jeremy J. Miller <[email protected]>
0b33755
to
015d8d8
Compare
I've rebased; however I think we need to attempt a restart of the Appveyor tests. |
I've restarted the AppVeyor stuff. We should really get you access to do that yourself, @jeremymv2. You've certainly made a lot of valuable contributions. |
/me spins the AppVeyor wheel of fortune again |
AppVeyor timed out again. It was the packaging check, not the unit tests, so I'll force merge if it doesn't finish after one more try. |
Obvious fix; these changes are the result of automation not creative thinking.
🔩 Description
Resolves #5466
This change will allow users to specify a health check interval at service load time by storing a
health_check_interval_seconds
in theSpec
file for the service such as:Features of the PR:
--health-check-interval
tohab svc load ..
Note I will follow up with test and doc updates, but first, I wanted to open this up for discussion before moving forward.
Related #5326
Related #5584
@christophermaier @mwrock @baumanj @raskchanky What are your thoughts on this implementation as a preliminary step to adding more usefulness to our Service Health Check feature?
Signed-off-by: Jeremy J. Miller [email protected]
✅ Checklist