Events #

URL: /events

Browse the event log — the append-only stream of everything Litmus records: session lifecycle, run lifecycle, test step starts and ends, measurements, instrument reads and writes, dialog requests, and diagnostics. The Results pages roll events up into runs; this page shows them raw.

Use it to debug timing ("why did this run pause for 4 seconds?"), trace instrument activity ("what did the DMM actually do during this test?"), or audit dialog responses ("did the operator confirm calibration before that batch?").

Filters #

Events — filters

FilterWhat it doesNotes
Session IDRestrict to events for one sessionFree-text. Full or short (first 8 chars) UUID works.
Event typePick one of 15 curated event types, or (any) for allThe store can hold any event type; this dropdown lists the categories worth a one-click filter — it is not exhaustive. Other event types (e.g. fixture.dut_scanned, route.*, slot.*, stream.*, test.record) only appear under (any). See the Event types reference for the full list.
RoleFilter by instrument role (e.g. dmm, psu)Free-text.
Since (ISO)Earliest event timestampISO-8601 string.
LimitMaximum events fetchedDefault 100, range 1–10,000.
RefreshForce a re-fetchFilter changes already auto-refresh.

Table #

Events — table

One row per event, newest first. Above the table a count tells you how many events matched.

ColumnWhat it shows
TimestampWhen the event was recorded, in browser-local time
TypeEvent type (e.g. instrument.read, test.measurement)
SessionFirst 8 chars of the session UUID
RunFirst 8 chars of the run UUID (when present)
RoleInstrument role for instrument.* events; otherwise blank
SummaryA type-specific one-liner — channel + value for instrument reads/writes, measurement name + value + outcome for measurements, station id for session events, DUT serial for run events, step name for step events

Click a row to open a detail dialog showing the full event JSON (every field on the event record).

When no events match, the table area shows "No events match the current filters." instead.

Bookmarkable URL state #

All filters serialize to query parameters so a URL captures the view:

ParameterMeaning
session_idSession UUID filter
event_typeOne of the dropdown values (or omitted for (any))
roleInstrument role filter
sinceISO-8601 lower bound
limitResult cap (omitted at default 100)

Underlying data #

The page reads from the event store — the same append-only log every other view reads from. There is no first-class CLI equivalent today; events are observable in aggregate via the Runs / Metrics CLIs and in raw form by reading the parquet event files directly with DuckDB.

For the schema of each event type, see Event types reference.

For the storage layout that makes the event log queryable, see Concepts → Event log.

Common tasks #

  • Why did this run pause? — Filter by Session ID, sort by timestamp, look for gaps between consecutive test.step_* events.
  • Did the operator confirm before the batch? — Filter event type to dialog.requested then dialog.responded, narrow by Session ID.
  • Which channels did this test actually touch? — Filter event type to instrument.read and instrument.set, scoped by Session ID.

See also #