Loosen a limit
The tank's "too full" alarm moves from 80% up to 88%.
faults noticed (before: 21 of 21)
Alarm-limit change control
AlarmOps checks every edit to a plant's alarm settings. It replays known faults against the new settings, shows what would be missed, and leaves the final yes to a person.
Everything here is simulated. No real plant is connected.
01 / The problem
In a factory, an alarm limit is the number at which the control system warns an operator. Over the years people edit these numbers.
Loosen a limit by mistake and a real problem can happen with no warning at all. Tighten it too far and operators drown in false alarms and start ignoring them.
Words used on this page
Showing change A: the loosened limit would leave 4 tank faults unnoticed (hatched red). Run the lab below to try your own.
What you are looking at: a simulated tank level over time. We hid 21 faults in the data (this chart shows the tank's). The grey trace is the level, the bands are the faults. A limit set too high lets some faults pass unnoticed.
02 / How it works
Every proposed change runs this line. It stops at the first step that fails. Only the approval is manual.
03 / Try it yourself
These buttons run the real AlarmOps code on the server, on the same simulated data. The black panel prints what the command line would print. The site runs only this fixed set of checks and stores nothing you type.
Limits go in order: very low, then low, then high, then very high. Hover a box for what it means.
A false alarm is an alarm that sounds when no hidden fault is happening. The numbers read: current limits, then your limits.
This is change B. Paste a config snippet, or use the fake example key.
Pick something above. Results appear here.
Stages marked "GitLab only" are not run by this website; they run in the real pipeline.
04 / After release
Releasing a change is not the end. The monitor counts alarms per hour after the release and compares the recent hours with the quiet period before. If the rate climbs past the drift limit, it raises an issue with a diagnosis.
Press a button on a log to run the monitor on it.
What you are looking at: alarms per hour over 72 simulated hours. The dashed line is the drift limit and the shaded strip is the recent window the monitor checks. A healthy line stays under the limit; a drifting one climbs through it.
05 / Results
The figures come from replaying the simulated data on each version of the rules, every time this page is built. None are typed in by hand.
The tank's "too full" alarm moves from 80% up to 88%.
Someone commits a key that unlocks a cloud account. The key in the demo is fake.
The alarm moves from 80% down to 75%, so it speaks up earlier.
| Tag | Faults noticed | False alarms |
|---|---|---|
| tank_level | 7 / 7 | 0 |
| pump_pressure | 7 / 7 | 0 |
| flow_rate | 7 / 7 | 0 |
Baseline overall: 21 of 21 noticed, 0 false alarms.
A change passes if it keeps at least 90.0% detection, loses no more than 5.0% compared with the current rules,
causes at most 3 false alarms, and adds at most 2.
A fault counts as noticed when an alarm for its tag starts between the fault's start and 20 readings after its end.
These thresholds are choices for this demo, not an industry standard. Raw numbers: /api/replay.
06 / What this is not