-
Notifications
You must be signed in to change notification settings - Fork 0
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
Suggestion: Include Predefined Checks for Supervision Tree Readiness #5
Comments
Hey @eric0fw, Thanks for your kind words :) We are using the library in production and it is not causing any problems. The additional supervision tree check obviously makes sense for environments running in a k8 cluster. Depending on the complexity of the application, checking just the last process (child) may not be sufficient to consider the application ready:
source: https://hexdocs.pm/elixir/1.17.2/GenServer.html#c:init/1 In both of these situations I would consider the supervision tree not ready, especially if all processes are required to run the app. @andrzej-mag I would be happy to hear your thoughts on this topic. |
I am sorry for late reply. I didn't receive any notification and I wasn't aware of this discussion. Application supervision trees are created from stable and trusted processes usually. If some supervised OTP process would crash infrequently, process would be restarted so quickly that it would be way below any orchestration platform time resolution threshold. If supervised process would crash continuously, application supervisor should terminate itself and application - no need for any additional health-checks. I don't see any practical value in health-checking application supervision tree or single tree processes. Situation is different with health-checking unsupervised external dependencies which can fail due to uncontrolled reasons (eg. network issue) for extended time. To health-check some important OTP process you can use for example
|
Hi,
First, I want to thank you for developing Existence. I have been exploring its features and it seems like an excellent tool for managing health checks in Elixir applications.
I have a suggestion for a predefined check that I believe could enhance the library: a built-in check to ensure that the entire supervision tree has fully started, utilizing a "terminator" process or similar mechanism. This would be particularly useful for readiness probes in Kubernetes deployments.
Proposed Feature:
Benefits:
Considerations:
I appreciate your time and consideration of this suggestion. Looking forward to hearing your thoughts!
Best regards,
The text was updated successfully, but these errors were encountered: