-
Notifications
You must be signed in to change notification settings - Fork 11
Health Monitoring interaction view #52
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
base: main
Are you sure you want to change the base?
Health Monitoring interaction view #52
Conversation
License Check Results🚀 The license check job ran with the Bazel command: bazel run //:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
6f2302a to
3493f35
Compare
| HealthMonitorBuilder --> user: HealthMonitor instance | ||
|
|
||
| user -> HealthMonitor: start() | ||
| HealthMonitor -> LaunchDaemon: notify_started(timestamp) |
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.
One point of discussion could be if we want to explicitly start the monitoring via a separate IPC call notify_started(timestamp) as described here or just use the existing report_running as a trigger for launch_manager to start the monitoring.
From the user point of view it could be viewed as redundant to have both as both say somewhat "I finished initialization".
I am not sure which one is better, there seem to be advantages/disadvantages in both approaches.
A related question would be: Do we want to support monitoring of applications that do not use the lifecycle api and do not report running state? The diagram currently assumes no.
|
|
||
| == Application Side == | ||
|
|
||
| user -> HealthMonitorBuilder : build(supervisor_api_notification_cycle_time, ...) |
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 like to add to this diagram:
- During startup launch_manager reads its config for the application and will know whether it should be monitored or not.
- If monitoring is enabled, the launch_manager will setup the required IPC communication when starting the process
| ... | ||
|
|
||
| user -> Lifecycle: report_running() | ||
| Lifecycle -> LaunchDaemon |
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 think we should also depict when the monitoring stops during shutdown of the application.
My assumption would be that:
- Launch_manager stops monitoring at the point in time it sends SIGTERM to the application process
Open question:
Does the sending of alive notification on the application side need to be stopped, or is it enough that these are just ignored by launch_manager?
Do we want to support monitoring for "self-terminating" applications that terminate on their own?
For now kept in HM component, shall be actually in some common place as it shows all 3 components working together.
Closes eclipse-score/score#2476