Skip to content

Moodi

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)
    )