Monitoring on demand with Moodi.
This service allows for creating a dashboard for every process that runs in the orchestrator.
start_moodi(*, monitored_objects_key)
Start monitoring on demand using Moodi Telemetry stack.
Source code in gso/services/moodi.py
| def start_moodi(*, monitored_objects_key: str) -> StepList:
"""Start monitoring on demand using Moodi Telemetry stack."""
host = load_oss_params().MOODI.host
@step("Start Moodi")
def _start_moodi(state: State) -> LSOState:
monitored_objects = state[monitored_objects_key]
targets = monitored_objects if isinstance(monitored_objects, list) else [monitored_objects]
return {
"playbook_name": "moodi_telemetry/playbooks/start_moodi.yaml",
"inventory": {"all": {"hosts": {host: None}}},
"extra_vars": {
"subscriptions": targets,
"extra_kwargs": state.get(MOODI_EXTRA_KWARGS_KEY, {}),
"process_id": str(state["process_id"]),
},
}
return _is_moodi_enabled(indifferent_lso_interaction(_start_moodi))
|
stop_moodi()
Stop Moodi Telemetry monitoring on demand.
Source code in gso/services/moodi.py
| def stop_moodi() -> StepList:
"""Stop Moodi Telemetry monitoring on demand."""
host = load_oss_params().MOODI.host
@inputstep("Confirm stopping on-demand monitoring.", assignee=Assignee("SYSTEM"))
def _confirm_stopping_moodi(state: State) -> FormGenerator:
class ConfirmStoppingPage(SubmitFormPage):
model_config = ConfigDict()
run_results: Label = "Please confirm that you want to stop Moodi."
yield ConfirmStoppingPage
return state
@step("Stop Moodi")
def _stop_moodi(state: State) -> LSOState:
return {
"playbook_name": "moodi_telemetry/playbooks/stop_moodi.yaml",
"inventory": {"all": {"hosts": {host: None}}},
"extra_vars": {"process_id": str(state["process_id"])},
}
return _is_moodi_enabled(_confirm_stopping_moodi) >> _is_moodi_enabled(
anonymous_indifferent_lso_interaction(_stop_moodi)
)
|