Maintenance mode¶
Maintenance mode suppresses alerting during planned (or unplanned) work, and excludes that time from SLA accounting. TrackMe offers it at three scopes, plus a persistent record that drives the SLA exclusion.
The three mechanisms¶
Mechanism |
What it does |
|---|---|
Global / tenant maintenance mode |
A runtime on/off switch that silences alerting for the whole instance or one tenant. It suppresses stateful-alert transitions and auto-ack actions — but the decision maker keeps running, so you still see red state in the UI. It is alert silencing, not sleep. |
Per-entity maintenance |
Forces one entity (or a bulk selection) into the blue, non-alerting state for an explicit window. It has top precedence over computed state and every other protection layer, and auto-returns to normal when the window expires. |
Maintenance Knowledge Database (KDB) |
A persistent log of windows — planned or unplanned, past or future — by scope. SLA accounting reads the KDB (it needs historical intervals), not the live switch. |
Enabling then disabling maintenance mode automatically writes a planned KDB record, so your SLA stays honest with no extra steps.
How it interacts with SLA¶
SLA exclusion reads the KDB. Only active and expired windows are excluded —
not future scheduled ones — and, by default, only planned windows (a global setting
changes this). A background tracker flips windows scheduled → active → expired every few
minutes and writes the audit trail.
Note
Always set a timeout. Global maintenance left on without an end time stays on indefinitely.
Re-enabling does not retroactively fire alerts missed during the window; an open stateful record may need manual cleanup.
“SLA still counting downtime” almost always means the window’s scope did not match the entity.
Managing maintenance requires admin capability; reading the KDB is available to all TrackMe users.
Under the hood, maintenance status is driven by the trackme_maintenance_mode_tracker
tracker, and the global setting maintenance_kdb_exclusion_behaviour controls whether
only planned maintenance is excluded from SLA. Global maintenance can be toggled from the
REST API — /services/trackme/v2/maintenance/global_maintenance_enable and
…/global_maintenance_disable (both mode=post), accepting maintenance_duration,
update_comment, and an optional tenants_scope to limit the window to specific
tenants:
curl -u user https://mysplunk:8089/services/trackme/v2/maintenance/global_maintenance_enable \
-X POST -d "{\"maintenance_duration\": \"3600\", \"tenants_scope\": \"secops\",
\"update_comment\": \"1-hour maintenance for the secops tenant\"}"
See also
SLA policies — SLA accounting and exclusions.
The entity state machine — the blue state per-entity maintenance forces.
Bank holidays — the calendar-driven counterpart.