Skip to content

Conversation

@pawelrutkaq
Copy link
Contributor

@pawelrutkaq pawelrutkaq commented Jan 27, 2026

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

@github-actions
Copy link

github-actions bot commented Jan 27, 2026

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.4.2) and connecting to it...
INFO: Invocation ID: 14d2b457-70df-4e6f-b4a5-2fd3565510fd
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
DEBUG: Rule 'rust_qnx8_toolchain+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-eQOopREOYCL5vtTb6c1cwZrql4GVrJ1FqgxarQRe1xs="
DEBUG: Repository rust_qnx8_toolchain+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:431:31: in <toplevel>
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 2 packages loaded
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)

Analyzing: target //:license-check (37 packages loaded, 10 targets configured)

Analyzing: target //:license-check (89 packages loaded, 10 targets configured)

Analyzing: target //:license-check (139 packages loaded, 2238 targets configured)

Analyzing: target //:license-check (150 packages loaded, 4969 targets configured)

Analyzing: target //:license-check (154 packages loaded, 7412 targets configured)

Analyzing: target //:license-check (154 packages loaded, 7412 targets configured)

Analyzing: target //:license-check (158 packages loaded, 7538 targets configured)

INFO: Analyzed target //:license-check (162 packages loaded, 13697 targets configured).
[7 / 13] Creating runfiles tree bazel-out/k8-opt-exec-ST-d57f47055a04/bin/external/score_tooling+/dash/tool/formatters/dash_format_converter.runfiles [for tool]; 0s local ... (2 actions, 1 running)
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 25.649s, Critical Path: 0.31s
INFO: 13 processes: 4 disk cache hit, 9 internal.
INFO: Build completed successfully, 13 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@github-actions
Copy link

The created documentation from the pull request is available at: docu-html

@pawelrutkaq pawelrutkaq force-pushed the interaction_sequence_diagrams branch from 6f2302a to 3493f35 Compare January 27, 2026 12:46
@pawelrutkaq pawelrutkaq deployed to workflow-approval January 27, 2026 12:46 — with GitHub Actions Active
HealthMonitorBuilder --> user: HealthMonitor instance

user -> HealthMonitor: start()
HealthMonitor -> LaunchDaemon: notify_started(timestamp)
Copy link
Contributor

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, ...)
Copy link
Contributor

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
Copy link
Contributor

@NicolasFussberger NicolasFussberger Jan 27, 2026

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create sequence diagrams for communcation between App and LM

2 participants