Alert Lifecycle
Alerta uses a state machine to manage alert status transitions. The status of an alert changes automatically based on incoming severity changes or explicitly via operator actions.
Statuses
Status |
Description |
|---|---|
|
Alert is new or has been re-opened |
|
Alert has been assigned (placeholder, no transitions) |
|
Alert has been acknowledged by an operator |
|
Alert has been shelved (temporarily hidden) |
|
Alert was received during a blackout period |
|
Alert has been closed (normal severity or by operator) |
|
Alert was not updated within its timeout period |
Actions
State Transition Table
The table below shows the resulting status for each combination of current status and trigger (operator action or severity change). Empty cells mean the transition is not valid or the status remains unchanged.
Operator Actions
Current Status |
|
|
|
|
|
|---|---|---|---|---|---|
|
invalid |
|
invalid |
|
|
|
|
invalid |
previous |
|
|
|
|
invalid |
invalid |
invalid |
|
|
|
||||
|
|
invalid |
invalid |
invalid |
|
|
|
invalid |
Note
unack returns to the status the alert had before it was acknowledged.
unshelve returns to the status the alert had before it was shelved.
Severity Changes (automatic, no operator action)
Current Status |
More severe |
Less severe |
Normal severity |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
previous |
previous |
|
|
|
|
|
|
|
|
|
† An ack’d alert is re-opened only if the severity genuinely increases
(ie. the previous severity was not the default indeterminate).
‡ A closed alert re-opens to shelved if it was previously shelved
before being closed.
System Actions
Action |
Result |
|---|---|
|
Any status -> |
|
If previously |
Blackout Transitions
When a blackout period ends, the alert returns to the status it had before the blackout began. If the alert was created during a blackout (no previous status), it transitions based on the current severity.
Custom Actions
Unrecognised actions (ie. custom actions defined by plugins via the
take_action hook) do not trigger any state transition. The severity
and status are returned unchanged.
Plugin Overrides
If a pre_receive() plugin sets a non-default status on the alert, the
state machine respects that status and skips the normal transition logic.
The only exception is normal-severity alerts, which are always auto-closed
regardless of the plugin-set status.