TractorStackdocs
Docs menu

Docs / Guardrails

Alerts

Planned design. TractorStack is in development. This page describes how it is designed to work; nothing here is available to install yet. See the roadmap for the status of each part.

Planned Everything below is the planned design.

Alerts and notifications for runs and checks in TractorStack follow one rule: tell a named person about something they need to act on, and say nothing otherwise. A backup that ran fine last night is not news. A restore test that failed is, and it should reach someone who can fix it before the next backup depends on it.

Alerts and notifications: what triggers one

EventWhy it mattersUrgency
A GitLab CI pipeline fails during applyThe system may be half changedNow
The nightly test restore failsYou may not have a usable backupNow
A backup did not run at allSame as above, and easy to missNow
Drift found on productionThe repository no longer describes realityNext working day
A certificate expires within the warning windowServices stop talking to each other on the day it lapsesEscalates as the date gets closer
Disk or volume above its thresholdPostgreSQL and RustFS fail badly when a disk fillsEscalates with usage
A routine check fails to runSilence is not the same as healthNext working day

Service-level alerts, such as an application returning errors or a host going down, come from monitoring, as do Argo CD applications that stay out of sync or unhealthy from stage 3. The design sends both kinds through the same routing so people don’t have two places to watch.

Who gets told

Routing is planned to live in the environment’s repository: which events go to which people or groups, per environment. A small file is enough for most sites.

# planned example: alerts.yaml
routes:
  - match: { environment: production, urgency: now }
    notify: [ops-oncall-chat, ops-email]
  - match: { environment: production }
    notify: [ops-email]
  - match: { environment: test }
    notify: [daily-summary]

Because the routing is code, a change to who gets woken up is reviewed like any other change, and the audit trail shows when it changed.

Email or chat

The design plans two delivery types to start with:

Alerts from monitoring, such as disk space, a Patroni failover or a host that stopped reporting, are defined as Grafana alert rules, since Grafana is already the tool we use for dashboards. Alerts from runs and checks come from the GitLab pipelines and the site runner.

Paging services and phone calls are left to the tools you already use. Where you have one, the plan is to send to it by webhook rather than build our own.

Avoiding alert fatigue

An alert that fires every day gets ignored, and then the one that matters gets ignored with it. The planned safeguards:

Every alert should name what failed, where, and the first thing to look at, usually a link to the run log and the matching runbook in Fixing common problems.

Last updated 25 October 2026 · Questions or corrections: sales@infratractor.com