Manage alarms
Alarms are Grafana-backed alert rules. DT Edge Platform gives you a tenant-scoped CRUD surface; the actual evaluation runs in Grafana's bundled Alertmanager.
Create an alarm
Sidebar → Alarms → Rules → Add alarm (top right).
Fill in:
- Name + description + severity (low / medium / high / critical)
- PromQL query — the metric expression; backend auto-injects the tenant scope label, so don't add it yourself
- Threshold — operator + value
- For — duration the condition must hold before firing
Click Test query to run the PromQL right now and see the returned series + values without saving. If it returns nothing, your query won't ever fire either.
Save. The rule shows up in the list immediately.
Edit an alarm
Click the row → Edit. Same drawer as create; change anything and save. The change applies on the next evaluation cycle (≤ 60s).
Disable / re-enable
Each row has a toggle. Disabled rules don't evaluate; they stay in the list with a grey state badge. Use this when you're temporarily expecting a known issue and don't want pages.
Delete an alarm
Row actions → Delete → confirm. Removes the rule from Grafana; firing alerts for it stop within the next eval window.
See firing alerts
Two surfaces:
- Alarms → Firing tab — slim list of currently-firing rules with their severity, when they started, and the latest sample
/alarms/firing— the same view as a standalone page (handy for bookmarking)
The list polls every 30 seconds and updates live via WebSocket when a rule's state changes.
Click any firing row to:
- See the rule details (PromQL, threshold, last 6 hours of values)
- Open in Grafana for deeper inspection / silencing
- See the matching edge instance(s) — alarms are tenant-scoped, so the firing list shows you which of your edges contributed data points
Silence (mute temporarily)
DT Edge Platform doesn't have a built-in silence UI. For time-bound mutes (e.g. "shut up during this 2-hour migration"):
- Click the firing row → Open in Grafana
- In Grafana, use Alerting → Silences → New silence
- Match by labels (e.g.
alertname = <your rule name>) - Set duration
Grafana silences are independent of DT Edge Platform — they survive UI sessions, persist across deploys.
For permanent mutes, disable the rule in DT Edge Platform instead.
Test query notes
The "Test query" button:
- Runs your PromQL through the backend's tenant-scope injection exactly as the saved rule will
- Returns the current value(s) per matching series
- Does not apply the threshold operator — you need to read the number and decide if it would fire
So if your alarm is "CPU > 0.9 for 5m" and Test query returns 0.74, the rule wouldn't fire right now even if you saved it.
Severity is just a label
Severity is a string we attach to the rule's labels. Grafana Alertmanager (or whatever notifier you wire up downstream) reads the severity to route notifications. DT Edge Platform doesn't separately gate by severity in the UI; it's purely there to help your on-call team prioritise.
Common errors
INVALID_PROMQL— parser error; the message includes the positionFORBIDDEN_LABEL_<NAME>— your query references a reserved scoping label (telemetry_id,dtedge_org_id, etc.); strip it, the backend injects it for youGRAFANA_NOT_CONFIGURED— admin needs to fill in the central Grafana URL/creds in admin settingsNO_EDGES_IN_SCOPE— the active org has no edges; alarms need at least one to scope against