Docs
/
Models
/

Monitoring a Model

Monitoring a Model

Once a model is enabled and running, Koios provides real-time visibility into every aspect of its operation. The model detail page is organized into tabs — each focused on a different dimension of monitoring.

A floating status pill follows you across tabs, always showing the model's current state (Running, Stopped, or Failed) so you never lose context.

In the navigation, the model's brain icon is wrapped in a live prediction ring — a radial progress indicator that fills over the model's scan rate and pulses briefly each time a new prediction lands. The ring is anchored to the server clock, so it stays in sync with what the Predict Engine is actually doing rather than the browser's wall time.

Enabling a Model

Before a model can run, it needs:

  1. An active model file uploaded and activated
  2. All input bindings assigned to tags
  3. The Enabled toggle switched on (in the model header or Configuration tab)

Once enabled, the Predict Engine begins inference at the configured scan rate. If any prerequisite is missing, the model stays stopped and displays a warning.

Overview Tab

The Overview tab gives you a snapshot of the model's current state.

  • Status hero — large status indicator with the current state, last scan timestamp, and a 24-hour uptime bar chart showing the percentage of time spent in each state (Running, Stopped, Failed)
  • Model file card — the active file's name, format, upload date, and input/output dimensions
  • Training info — if the model file includes embedded metadata, displays the training framework, description, and author
  • Configuration summary — key settings (scan rate, sample rate, output mode, on-demand) at a glance
  • Recent events — the last few events for this model (enable, disable, config changes, errors)

Live Binding Values

The Bindings tab has two views, toggled by the segmented control at the top: Config and Diagnostics.

Config View

Each binding displays a live value card showing the data flow in real time:

  • Input bindings — shows Tag Value → Model Input. The left side is the raw value from the tag; the right side is the normalized value fed into the model (after scaling is applied).
  • Output bindings — shows Model Output → Tag Value. The left side is the raw model output; the right side is the denormalized value written back to the tag.

Values update every second. If a binding is unassigned or its tag is not running, the card indicates the issue.

Diagnostics View

Diagnostics provides deeper insight into each input binding's data quality:

  • Interpolated data chart — visualizes the recent sample history used by the model at each inference cycle. The chart overlays failure bounds (if configured) so you can see when values approach or exceed the expected range.
  • Stale regions — highlighted sections where the tag stopped producing new data (missed samples exceeded the allowed threshold)
  • Range violations — markers where values exceeded the configured failure bounds
  • Failure state indicator — shows whether the binding is currently in a failure state and, if debounce is configured, the current consecutive failure count

Discrete Action Monitor

For models using Discrete output mode with an action map, the Bindings tab includes an action monitor that shows which discrete action the model is currently selecting and the confidence values across all possible actions.

Execution Tab

The Execution tab shows how long each inference cycle takes and where time is spent. This is essential for diagnosing performance issues and tuning scan rates.

Cycle Breakdown

A stacked bar chart breaks each recent cycle into segments:

SegmentDescription
QueryTime reading input data from the data store
InferenceTime running the model (ONNX/TFLite execution)
ReadOn-demand device read time (only when on-demand is enabled)
WriteOn-demand device write time (only when on-demand is enabled)
OverheadRemaining time (normalization, denormalization, bookkeeping)

History Chart

A line chart shows cycle timing trends over the last 24 hours, making it easy to spot patterns — for example, inference times that spike during certain process conditions or read times that increase when a device is under load.

Metric Cards

Four summary cards provide at-a-glance stats:

  • Average Cycle Time — mean total cycle duration
  • Max Cycle Time — worst-case cycle
  • Success Rate — percentage of cycles that completed without error
  • Overscans — count of cycles that exceeded the scan rate

Logs Tab

The Logs tab streams the model's runtime logs in real time via server-sent events. Logs appear as they are written — no need to refresh.

  • Log level selector — filter by severity (Debug, Info, Warning, Error). The log level here controls the Predict Engine's per-model verbosity, not just the display filter.
  • Auto-scroll — the log viewer automatically scrolls to new entries. Scroll up to pause auto-scroll; scroll back to the bottom to resume.
  • Search — use the browser's find-in-page (Ctrl/Cmd+F) to search within the loaded log content.

Parameters Tab

The Parameters tab shows all model parameters organized into two sections:

  • Live Data — real-time values from the Predict Engine: status, error code, error message, last scan time, scan progress, and cycle timing metrics
  • Configuration — the model's settings as stored in the database: name, scan rate, sample rate, output mode, and other configuration values

Any parameter can be mapped to a tag by clicking the map icon next to it. This records the parameter's value in the time-series database, letting you trend model health metrics alongside process data.

Every model has a linked Trend page for viewing historical data. Click the View Trend button in the model's header to open it.

The trend page plots the time-series values of the model's bound tags — both inputs and outputs — over a configurable time range. This is useful for:

  • Reviewing how model predictions correlated with actual process behavior
  • Comparing input patterns before and after a process change
  • Investigating specific time periods where the model produced unexpected outputs

What's Next