Example Industrial maintenance

A vibration reading becomes a work order. Find where the record first differs.

A pump's vibration sensor sends a short series of readings. The pipeline calibrates them, measures the vibration, checks it against a limit, decides whether to inspect, and books a work order. When a setting changes along the way, the comparison names the step where the record first differs.

Invented example data, recorded when the demo was built. The demo records and compares; it controls nothing. The screenshots are from a build of the same demo: each build gives its runs new fingerprints and times, so those differ from the live demo's, and what the screenshots show is the same.

The pipeline

Six steps, from sensor readings to a booked inspection.

  • readings takes the sensor's readings, a short series of vibration values.
  • calibrate takes off the sensor's offset, a setting of its tool.
  • features computes the series' RMS and peak.
  • anomaly_check compares the RMS with a fixed limit of 280 mg.
  • decision asks for an inspection where the limit is passed.
  • work_order books it, and by its own rule declines a slot outside the maintenance window, 02:00 to 04:00.

What the demo plants

The runs, and what was changed in each.

RunWhat was changed
p5-32-pump-baselineNothing: the baseline.
p5-33-pump-offset-changedThe calibration offset, a setting of calibrate's tool.
p5-34-pump-firmware-changedThe sensor's firmware version, 3.1 to 3.2. Its readings are the same.
p5-35-pump-outside-window-declinedAn inspection asked for at 14:00, outside the maintenance window.

What onetrace shows

Each change, located in the record.

The offset change: first difference at calibrate

Every calibrated reading moves by 40 mg, so calibrate is the first step whose output differs, and the four after it change too. The offset sits inside the tool's configuration, so the page shows that configuration's fingerprint differing, not a named setting. Downstream, the RMS reads 297 mg where it read 296; both are above the 280 mg limit, so both runs ask for an inspection, and the work order's reason changes with it.

The live demo's comparison of p5-32-pump-baseline and p5-33-pump-offset-changed. Both runs' records agree. First difference at stage 2, calibrate, whose recorded configuration differs; readings is Same, and features, anomaly_check, decision and work_order are marked Changed after it.
Comparison page: first difference at calibrate.

The firmware change: a setting moved, the outputs did not

The firmware version is recorded as a setting of readings, so the page names it, 3.1 to 3.2. Every step's output is the same in both runs, so every step reads Same, and the comparison says the two runs do not differ. A changed setting is shown even when nothing it touches moves.

The live demo's comparison of p5-32-pump-baseline and p5-34-pump-firmware-changed. The two runs do not differ: all six steps are marked Same, and Settings that changed lists readings, sensor_firmware, 3.1 to 3.2.
Comparison page: all six steps Same, with the firmware setting named.

The declined slot: a run that stops by its own rule

work_order declines a slot at 14:00 and records why. The run's page says it stopped there, by the step's own rule, and that no declared step was left without a receipt.

The live demo's page for run p5-35-pump-outside-window-declined: Declined at work_order. Records agree: Yes. The run stopped at work_order: the step declined by its own rule, and recorded why: a work order at 14:00 is outside the maintenance window 02:00 to 04:00.
Run page: declined at work_order, with its reason.

What it doesn't say

A located change, not a reason.

The comparison says where the two records first part ways and what was recorded there. It doesn't say why a reading moved, or whether an inspection was the right call. See what each verdict means and what onetrace does not claim.

Try it yourself: this pipeline in the live demo, or on your machine with pip install onetrace-console and onetrace-console demo --open.