monitoring(power): add UPS status snapshot table and climate placeholders

This commit is contained in:
Brad Stein 2026-04-03 17:53:42 -03:00
parent fd71c6644b
commit 4167f0f988
3 changed files with 113 additions and 0 deletions

View File

@ -2982,6 +2982,17 @@ def build_power_dashboard():
"Future climate collector panel: fan RPM by position (inside inlet, outside inlet, outlet, interior)."
)
panels.append(climate_fan_panel)
status_panel = table_panel(
15,
"UPS Status Snapshot (OL/OB/LB)",
f"max by (instance, source, status, target) ({HECATE_UPS_RUNTIME_BY_SOURCE})",
{"h": 6, "w": 24, "x": 0, "y": 32},
unit="s",
transformations=[{"id": "labelsToFields", "options": {}}, {"id": "sortBy", "options": {"fields": ["instance"], "order": "asc"}}],
instant=True,
)
status_panel["description"] = "NUT status flags: OL=on line (utility), OB=on battery, LB=low battery."
panels.append(status_panel)
return {
"uid": "atlas-power",

View File

@ -769,6 +769,57 @@
}
},
"description": "Future climate collector panel: fan RPM by position (inside inlet, outside inlet, outlet, interior)."
},
{
"id": 15,
"type": "table",
"title": "UPS Status Snapshot (OL/OB/LB)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
"y": 32
},
"targets": [
{
"expr": "max by (instance, source, status, target) (hecate_ups_runtime_seconds{job=\"hecate-power\"})",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"unit": "s",
"custom": {
"filterable": true
}
},
"overrides": []
},
"options": {
"showHeader": true,
"columnFilters": false
},
"transformations": [
{
"id": "labelsToFields",
"options": {}
},
{
"id": "sortBy",
"options": {
"fields": [
"instance"
],
"order": "asc"
}
}
],
"description": "NUT status flags: OL=on line (utility), OB=on battery, LB=low battery."
}
],
"time": {

View File

@ -778,6 +778,57 @@ data:
}
},
"description": "Future climate collector panel: fan RPM by position (inside inlet, outside inlet, outlet, interior)."
},
{
"id": 15,
"type": "table",
"title": "UPS Status Snapshot (OL/OB/LB)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
"y": 32
},
"targets": [
{
"expr": "max by (instance, source, status, target) (hecate_ups_runtime_seconds{job=\"hecate-power\"})",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"unit": "s",
"custom": {
"filterable": true
}
},
"overrides": []
},
"options": {
"showHeader": true,
"columnFilters": false
},
"transformations": [
{
"id": "labelsToFields",
"options": {}
},
{
"id": "sortBy",
"options": {
"fields": [
"instance"
],
"order": "asc"
}
}
],
"description": "NUT status flags: OL=on line (utility), OB=on battery, LB=low battery."
}
],
"time": {