cli.monitor

otto monitor — interactive performance dashboard.

Live mode (polls all lab hosts, or a regex-matched subset):

otto monitor –lab my.lab.toml otto monitor –lab my.lab.toml –hosts ‘router|switch’ otto monitor –lab my.lab.toml –hosts router1 –interval 5 –port 8080

Historical mode (views saved data files):

otto monitor –lab my.lab.toml –file metrics.db otto monitor –lab my.lab.toml –file metrics.json otto monitor –lab my.lab.toml –file metrics.csv

otto.cli.monitor.monitor(ctx: ~typer.models.Context, hosts: ~types.Annotated[str | None, <typer.models.OptionInfo object at 0x73017964a140>] | None = None, interval: ~typing.Annotated[float, <typer.models.OptionInfo object at 0x73017964a620>] = 5.0, file: ~types.Annotated[~pathlib.Path | None, <typer.models.OptionInfo object at 0x73017964a470>] | None = None, db: ~types.Annotated[~pathlib.Path | None, <typer.models.OptionInfo object at 0x73017964a3b0>] | None = None) None

Launch an interactive performance monitoring dashboard.

Output-dir creation moved to the shared leaf-invoke command_preamble() (monitor’s spec declares output_dir=True), so a --help invocation can never create a spurious dir. The reservation gate is NOT uniform: monitor’s spec declares gate=False and this body gates only the live branch below — historical --file replay is gate-exempt (see the comment there).