Skip to content

Observability

This area shows the state of your installed stacks and the apps running on them. It has three screens.

Who evaluates alerts

Nullus does not evaluate them itself. The Prometheus in kube-prometheus-stack, which is installed with each stack, evaluates the default rules. Nullus pulls the active alerts from Alertmanager, records them, and sends them to your notification channels.

graph LR
  P[Prometheus<br/>evaluates default rules] --> A[Alertmanager]
  A -->|pulled every 1 min| N[Nullus collector]
  N --> H[(stack_alerts)]
  N --> C[Notification channels<br/>Telegram·Email·Slack]
  H --> V[Alert History screen]
Item Value Notes
Collection interval 1 minute NULLUS_STACK_ALERT_INTERVAL; off or 0 turns it off; minimum 10 seconds
Collected from Stacks that finished installing, have a namespace, and have monitoring collection turned on in stack settings
Filter severity=critical only
Excluded alerts Watchdog, InfoInhibitor, KubeControllerManagerDown, KubeSchedulerDown, KubeProxyDown, etcd*
Re-notify interval 4 hours Notifies again while the alert keeps firing
Resolve grace period 3 minutes An alert absent for that long counts as resolved

Silenced and inhibited alerts are still pulled and recorded. They just don't send notifications.

Resolved notifications only follow a firing notification

Nullus never sends a resolved notification for an alert it never announced as firing. If the Alertmanager query fails for a stack, Nullus skips that stack for the cycle and does not resolve its open alerts — so a lost connection is never misreported as "resolved".

Custom alert rules do not exist yet

The screen for creating your own rules (alert-rules-page.tsx) and the backend CRUD (/api/v1/observability/alert-rules) are in the repository, but there is no loop that evaluates the rules. Rules are saved, and nothing happens.

So the screen was removed from both the sidebar and the routes, and web/src/app/routes.alert-rules.test.tsx pins that decision in a test. Until a rule editor exists, only critical alerts from the stack's default rules are delivered.