Analyzing Results

The Historical Run View provides a complete record of every message exchanged during a scenario run. You can search and filter the message log, inspect individual event payloads and their acknowledgements, view statistics summaries, and export data for external analysis.

The Historical Run View is available for completed runs and for runs that are still active — you can open it mid-simulation to observe the message stream in detail.

Open it from the Dashboard by clicking View on any completed run row, or View full history from within an expanded active run card.

Screenshot placeholder: Full Historical Run View showing the summary bar, stats row, message log, and an open message detail flyout.


Summary Bar

The top of the page shows a summary of the run:

  • Run name and status badge
  • Started timestamp and duration (once the run has ended)
  • Total event count
  • Plugin status bar — one badge per plugin showing their initialization outcome (success, failed, timeout)
  • A green pulsing dot when the UI is live-streaming events from Kafka (for active runs)

Two action buttons are also here:

  • Use as Template — creates a new unlocked definition from this run's configuration (same as the Dashboard option)
  • Export — opens the export dialog (see Exporting Run Data below)

Message Log

The message log takes up the main area of the screen. It shows every Kafka message from the scenario's topic in offset order (the order they were written to Kafka, which reflects the order Core and the plugins produced them).

The list is virtualized — it renders efficiently even for runs with tens of thousands of events.

Screenshot placeholder: Message log showing filtered results with a row selected.

Columns

ColumnContents
TimeTimestamp in HH:MM:SS
TypeMessage type label (e.g., scenario_data, scenario_ack, scenario_command)
SenderPlugin or component ID that produced the message
FromSource address from the message headers
ToDestination address from the message headers
PayloadFirst 80 characters of the payload as a JSON preview

Click any row to open the Message Detail Flyout for that event.

The toolbar above the log provides several ways to narrow the view:

Search — type any text to filter across the entire event, including message type, sender, addresses, and the full payload content.

Plugin filter — drop down to show only events from a specific plugin.

Type filter — toggle buttons to show only DATA, ACK (acknowledgement), or CTRL (control/orchestration) messages. Multiple types can be active at once.

Unacked only — when checked, shows only messages that have no corresponding acknowledgement in this run's event stream. Useful for identifying messages that were sent but never confirmed received.

The toolbar also shows a filtered count (e.g., "342 of 1,205") so you always know how many events match the current filter.


Message Detail Flyout

Clicking a message row opens a flyout panel on the right side of the screen. It remains open until you close it (X button) or click a different row.

Screenshot placeholder: Message detail flyout showing metadata, acknowledgements, payload JSON, and headers.

Metadata

  • Type — the message type from the headers
  • From — sender plugin or source address
  • To — destination address
  • Offset — the Kafka offset for this message (its position in the topic)
  • Time — full date and time
  • Message ID — the unique message identifier from the headers

Acknowledgements

NeuroSim tracks acknowledgements by correlating each ACK message's correlation_id back to the original message's message_id. The flyout shows every plugin that sent an acknowledgement for this message, listed as ✓ [plugin-id].

If no acknowledgements were received, an amber note says No acknowledgements received. Combined with the Unacked only filter, this makes it straightforward to find gaps in the acknowledgement chain during a simulation.

Payload

The full message payload rendered as syntax-highlighted, collapsible JSON. Nested objects and arrays can be expanded and collapsed for readability.

Headers

All Kafka message headers for the event, also rendered as JSON.


Run Statistics

Click the event count on any completed run row (on the Dashboard) to open the Run Statistics modal. The same information is accessible by clicking the total event count in the Historical Run View summary bar.

Screenshot placeholder: Run Statistics modal showing the events-by-type table and per-plugin breakdown.

The modal shows:

Summary

  • Total events for the run
  • Total duration

Events by Type A table of every message type that appeared in the run, sorted by frequency:

TypeCount% of total

Per-Plugin Activity For each plugin that sent or acknowledged messages, a table showing:

TypeSentAcked

This breakdown is useful for verifying that plugins are producing and acknowledging at the expected rates, and for identifying any plugin that is unexpectedly silent or flooding the event stream.


Exporting Run Data

Click Export in the summary bar to download run data for use in external tools.

Screenshot placeholder: Export dialog showing format selection and include-options checkboxes.

Format

Choose JSON or CSV.

JSON produces a structured document with a manifest version header and sections for the run summary, the message log, and optionally the full scenario definition. It is suitable for programmatic processing or archiving.

CSV produces a flat file with one row per message event. Columns are: offset, timestamp, messageType, sender, payload. It is suitable for loading into spreadsheets or data analysis tools.

What to include

Use the checkboxes to control which sections are included in the export:

  • Run summary — timing, status, and statistics for the run
  • Message log — the event stream, with sub-options to include or exclude data messages, acknowledgements, and control messages individually
  • Scenario definition (JSON only) — the full definition that was used for this run, including all plugin configurations

A preview pane shows the output filename and lists which sections will be present before you download.

Click Download to save the file to your browser's default download location.