stormlog.tui.distributed_diagnostics

Distributed diagnostics loaders and view-model builders for the TUI.

Functions

build_distributed_model(events[, selected_ranks])

Build rank-level distributed diagnostics and first-cause indicators.

load_distributed_artifacts(paths[, session_id])

Load telemetry events from JSON/CSV files and artifact directories.

parse_rank_filter(expr, available_ranks)

Parse a rank filter expression (e.g., all or 0,2,4-7).

Classes

AnomalyIndicator(kind, rank, severity, ...)

Top-level first-cause indicator for distributed diagnostics.

ArtifactLoadResult(events, sessions, ...[, ...])

Result of loading one or more distributed artifact inputs.

DistributedDiagnosticsModel(rows, ...[, ...])

Aggregated distributed diagnostics state for TUI rendering.

RankDiagnosticsRow(rank, availability, ...)

Per-rank metrics rendered by the diagnostics table.

class stormlog.tui.distributed_diagnostics.AnomalyIndicator(kind, rank, severity, timestamp_ns, signal, details, confidence=None, reason_codes=<factory>, phase_path=None)[source]

Bases: object

Top-level first-cause indicator for distributed diagnostics.

Parameters:
  • kind (str)

  • rank (int)

  • severity (str)

  • timestamp_ns (int)

  • signal (str)

  • details (str)

  • confidence (float | None)

  • reason_codes (list[str])

  • phase_path (str | None)

kind: str
rank: int
severity: str
timestamp_ns: int
signal: str
details: str
confidence: float | None = None
reason_codes: list[str]
phase_path: str | None = None
class stormlog.tui.distributed_diagnostics.ArtifactLoadResult(events, sessions, selected_session_id, warnings, sources_loaded, markers=<factory>)[source]

Bases: object

Result of loading one or more distributed artifact inputs.

Parameters:
events: list[TelemetryEventV3]
sessions: list[LoadedTelemetrySession]
selected_session_id: str | None
warnings: list[str]
sources_loaded: list[str]
markers: list[TimelineMarker]
class stormlog.tui.distributed_diagnostics.DistributedDiagnosticsModel(rows, indicators, expected_ranks, present_ranks, missing_ranks, per_rank_timelines, warnings=<factory>, markers_by_rank=<factory>)[source]

Bases: object

Aggregated distributed diagnostics state for TUI rendering.

Parameters:
  • rows (list[RankDiagnosticsRow])

  • indicators (list[AnomalyIndicator])

  • expected_ranks (list[int])

  • present_ranks (list[int])

  • missing_ranks (list[int])

  • per_rank_timelines (dict[int, dict[str, list[int]]])

  • warnings (list[str])

  • markers_by_rank (dict[int, list[TimelineMarker]])

rows: list[RankDiagnosticsRow]
indicators: list[AnomalyIndicator]
expected_ranks: list[int]
present_ranks: list[int]
missing_ranks: list[int]
per_rank_timelines: dict[int, dict[str, list[int]]]
warnings: list[str]
markers_by_rank: dict[int, list[TimelineMarker]]
class stormlog.tui.distributed_diagnostics.RankDiagnosticsRow(rank, availability, samples, allocated_delta_bytes, reserved_delta_bytes, hidden_gap_latest_bytes, hidden_gap_peak_abs_bytes, has_anomaly, first_anomaly_timestamp_ns=None, first_anomaly_signal=None, first_anomaly_phase_path=None)[source]

Bases: object

Per-rank metrics rendered by the diagnostics table.

Parameters:
  • rank (int)

  • availability (str)

  • samples (int)

  • allocated_delta_bytes (int)

  • reserved_delta_bytes (int)

  • hidden_gap_latest_bytes (int)

  • hidden_gap_peak_abs_bytes (int)

  • has_anomaly (bool)

  • first_anomaly_timestamp_ns (int | None)

  • first_anomaly_signal (str | None)

  • first_anomaly_phase_path (str | None)

rank: int
availability: str
samples: int
allocated_delta_bytes: int
reserved_delta_bytes: int
hidden_gap_latest_bytes: int
hidden_gap_peak_abs_bytes: int
has_anomaly: bool
first_anomaly_timestamp_ns: int | None = None
first_anomaly_signal: str | None = None
first_anomaly_phase_path: str | None = None
stormlog.tui.distributed_diagnostics.build_distributed_model(events, selected_ranks=None)[source]

Build rank-level distributed diagnostics and first-cause indicators.

Parameters:
Return type:

DistributedDiagnosticsModel

stormlog.tui.distributed_diagnostics.load_distributed_artifacts(paths, session_id=None)[source]

Load telemetry events from JSON/CSV files and artifact directories.

Parameters:
  • paths (list[Path])

  • session_id (str | None)

Return type:

ArtifactLoadResult

stormlog.tui.distributed_diagnostics.parse_rank_filter(expr, available_ranks)[source]

Parse a rank filter expression (e.g., all or 0,2,4-7).

Parameters:
  • expr (str)

  • available_ranks (list[int])

Return type:

set[int]