2026-04-03 14:55:16 -03:00
# services/monitoring/grafana-dashboard-power.yaml
apiVersion : v1
kind : ConfigMap
metadata :
name : grafana-dashboard-power
labels :
grafana_dashboard : "1"
data :
atlas-power.json : |
{
"uid": "atlas-power" ,
"title": "Atlas Power" ,
"folderUid": "atlas-internal" ,
"editable": true ,
"panels": [
{
"id": 1 ,
2026-04-12 19:56:12 -03:00
"type": "stat" ,
2026-04-03 20:45:40 -03:00
"title": "UPS Current Load" ,
2026-04-03 14:55:16 -03:00
"datasource": {
"type": "prometheus" ,
"uid": "atlas-vm"
},
"gridPos": {
2026-04-03 20:45:40 -03:00
"h": 8 ,
"w": 12 ,
2026-04-03 14:55:16 -03:00
"x": 0 ,
"y": 0
},
"targets": [
{
"refId": "A" ,
2026-05-11 17:36:13 -03:00
"expr": "max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Pyrphoros\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Pyrphoros\"}) / 100) or on() vector(0)" ,
"legendFormat": "Pyrphoros Draw (W)" ,
"instant": true
},
{
"refId": "B" ,
"expr": "max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0)" ,
"legendFormat": "Pyrphoros Discharge" ,
"instant": true
},
{
"refId": "C" ,
"expr": "max(ananke_ups_on_battery{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0)" ,
"legendFormat": "Pyrphoros Status" ,
"instant": true
},
{
"refId": "D" ,
"expr": "max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Statera\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Statera\"}) / 100) or on() vector(0)" ,
"legendFormat": "Statera Draw (W)" ,
"instant": true
},
{
"refId": "E" ,
"expr": "max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0)" ,
"legendFormat": "Statera Discharge" ,
"instant": true
},
{
"refId": "F" ,
"expr": "max(ananke_ups_on_battery{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0)" ,
"legendFormat": "Statera Status" ,
2026-04-03 14:55:16 -03:00
"instant": true
}
] ,
"fieldConfig": {
"defaults": {
2026-04-12 19:56:12 -03:00
"color": {
"mode": "thresholds"
},
"mappings": [ ] ,
"thresholds": {
"mode": "absolute" ,
"steps": [
{
"color": "rgba(115, 115, 115, 1)" ,
"value": null
},
{
2026-05-15 19:52:46 -03:00
"color": "dark-green" ,
2026-04-12 19:56:12 -03:00
"value": 1
}
]
},
2026-04-03 14:55:16 -03:00
"unit": "none" ,
"custom": {
2026-04-12 19:56:12 -03:00
"displayMode": "auto"
},
"decimals": 1
2026-04-03 14:55:16 -03:00
},
2026-04-03 20:45:40 -03:00
"overrides": [
{
"matcher": {
2026-05-11 17:36:13 -03:00
"id": "byName" ,
"options": "Pyrphoros Draw (W)"
},
"properties": [
{
"id": "unit" ,
"value": "watt"
},
{
"id": "description" ,
"value": "Attached node: titan-db"
}
]
},
{
"matcher": {
"id": "byName" ,
"options": "Statera Draw (W)"
2026-04-03 20:45:40 -03:00
},
"properties": [
{
"id": "unit" ,
"value": "watt"
2026-05-11 17:36:13 -03:00
},
{
"id": "description" ,
"value": "Attached node: titan-24"
}
]
},
{
"matcher": {
"id": "byName" ,
"options": "Pyrphoros Discharge"
},
"properties": [
{
"id": "unit" ,
"value": "s"
},
{
"id": "description" ,
"value": "Attached node: titan-db"
2026-04-03 20:45:40 -03:00
}
]
},
{
"matcher": {
2026-05-11 17:36:13 -03:00
"id": "byName" ,
"options": "Statera Discharge"
2026-04-03 20:45:40 -03:00
},
"properties": [
{
"id": "unit" ,
"value": "s"
2026-05-11 17:36:13 -03:00
},
{
"id": "description" ,
"value": "Attached node: titan-24"
}
]
},
{
"matcher": {
"id": "byName" ,
"options": "Pyrphoros Status"
},
"properties": [
{
"id": "mappings" ,
"value": [
{
"type": "value" ,
"options": {
"0": {
"text": "\u26a1 Charging"
},
"1": {
"text": "\ud83d\udd0b Discharging"
}
}
}
]
},
{
"id": "description" ,
"value": "Attached node: titan-db"
}
]
},
{
"matcher": {
"id": "byName" ,
"options": "Statera Status"
},
"properties": [
{
"id": "mappings" ,
"value": [
{
"type": "value" ,
"options": {
"0": {
"text": "\u26a1 Charging"
},
"1": {
"text": "\ud83d\udd0b Discharging"
}
}
}
]
},
{
"id": "description" ,
"value": "Attached node: titan-24"
2026-04-03 20:45:40 -03:00
}
]
}
]
2026-04-03 14:55:16 -03:00
},
"options": {
2026-04-12 19:56:12 -03:00
"colorMode": "value" ,
"graphMode": "area" ,
"justifyMode": "center" ,
"reduceOptions": {
"calcs": [
"lastNotNull"
] ,
"fields": "" ,
"values": false
2026-04-12 19:46:39 -03:00
},
2026-04-12 19:56:12 -03:00
"textMode": "name_and_value" ,
2026-05-11 17:36:13 -03:00
"orientation": "horizontal" ,
"wideLayout": true
2026-04-12 19:56:12 -03:00
},
2026-05-11 17:36:13 -03:00
"description": "Per-UPS live snapshot: current draw in watts, estimated battery runtime if discharge started now, and charging/discharging status."
2026-04-03 14:55:16 -03:00
},
{
"id": 2 ,
2026-04-03 20:45:40 -03:00
"type": "timeseries" ,
"title": "UPS History (Power Draw)" ,
2026-04-03 14:55:16 -03:00
"datasource": {
"type": "prometheus" ,
"uid": "atlas-vm"
},
"gridPos": {
2026-04-03 20:45:40 -03:00
"h": 8 ,
"w": 12 ,
"x": 12 ,
2026-04-03 14:55:16 -03:00
"y": 0
},
"targets": [
{
"refId": "A" ,
2026-05-16 06:38:34 -03:00
"expr": "max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Pyrphoros\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Pyrphoros\"}) / 100)" ,
2026-04-04 05:54:16 -03:00
"legendFormat": "Pyrphoros"
2026-04-03 20:45:40 -03:00
},
{
"refId": "B" ,
2026-05-16 06:38:34 -03:00
"expr": "max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Statera\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Statera\"}) / 100)" ,
2026-04-04 05:54:16 -03:00
"legendFormat": "Statera"
2026-04-03 14:55:16 -03:00
}
] ,
"fieldConfig": {
"defaults": {
2026-05-15 22:07:41 -03:00
"unit": "watt" ,
"custom": {
"drawStyle": "bars" ,
"barAlignment": 0 ,
2026-05-16 05:08:09 -03:00
"barWidthFactor": 0.72 ,
2026-05-15 22:07:41 -03:00
"lineWidth": 0 ,
"fillOpacity": 70 ,
2026-05-15 22:43:44 -03:00
"gradientMode": "none" ,
"showPoints": "never" ,
2026-05-15 22:07:41 -03:00
"spanNulls": true
}
2026-04-03 14:55:16 -03:00
},
2026-05-15 22:43:44 -03:00
"overrides": [
{
"matcher": {
"id": "byName" ,
"options": "Pyrphoros"
},
"properties": [
{
"id": "color" ,
"value": {
"mode": "fixed" ,
"fixedColor": "dark-blue"
}
}
]
},
{
"matcher": {
"id": "byName" ,
"options": "Statera"
},
"properties": [
{
"id": "color" ,
"value": {
"mode": "fixed" ,
"fixedColor": "dark-yellow"
}
}
]
}
]
2026-04-03 14:55:16 -03:00
},
"options": {
2026-04-03 20:45:40 -03:00
"legend": {
"displayMode": "table" ,
"placement": "right"
2026-04-03 14:55:16 -03:00
},
2026-04-03 20:45:40 -03:00
"tooltip": {
"mode": "multi"
}
},
2026-04-19 14:50:24 -03:00
"description": "Historical UPS power consumption in watts for titan-db and tethys."
2026-04-03 14:55:16 -03:00
},
{
"id": 3 ,
2026-04-12 19:56:12 -03:00
"type": "stat" ,
2026-04-03 20:45:40 -03:00
"title": "Current Climate" ,
2026-04-03 14:55:16 -03:00
"datasource": {
"type": "prometheus" ,
"uid": "atlas-vm"
},
"gridPos": {
2026-04-03 20:45:40 -03:00
"h": 8 ,
"w": 12 ,
"x": 0 ,
"y": 8
2026-04-03 14:55:16 -03:00
},
"targets": [
{
"refId": "A" ,
2026-07-14 19:01:53 -03:00
"expr": "max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)) or on() vector(0)" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Tent Temp (\u00b0C)" ,
"instant": true
},
{
"refId": "B" ,
2026-07-14 19:01:53 -03:00
"expr": "max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)) or on() vector(0)" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Tent VPD (kPa)" ,
"instant": true
},
{
"refId": "C" ,
2026-07-14 19:01:53 -03:00
"expr": "max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)) or on() vector(0)" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Tent RH (%)" ,
"instant": true
},
{
"refId": "D" ,
2026-07-14 19:01:53 -03:00
"expr": "max((243.12 * (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))))) / (17.62 - (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)))))) or on() vector(0)" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Dew Point (\u00b0C)" ,
2026-04-03 14:55:16 -03:00
"instant": true
}
] ,
"fieldConfig": {
"defaults": {
2026-04-12 19:56:12 -03:00
"color": {
"mode": "thresholds"
},
"mappings": [ ] ,
"thresholds": {
"mode": "absolute" ,
"steps": [
{
"color": "rgba(115, 115, 115, 1)" ,
"value": null
},
{
2026-05-15 19:52:46 -03:00
"color": "dark-green" ,
2026-04-12 19:56:12 -03:00
"value": 1
}
]
},
2026-04-03 20:45:40 -03:00
"unit": "none" ,
2026-04-03 14:55:16 -03:00
"custom": {
2026-04-12 19:56:12 -03:00
"displayMode": "auto"
},
"decimals": 2
2026-04-03 14:55:16 -03:00
},
2026-04-03 20:45:40 -03:00
"overrides": [
{
"matcher": {
"id": "byName" ,
2026-05-11 17:36:13 -03:00
"options": "Tent Temp (\u00b0C)"
2026-04-03 20:45:40 -03:00
},
"properties": [
{
"id": "unit" ,
"value": "celsius"
}
]
},
{
"matcher": {
"id": "byName" ,
2026-05-11 17:36:13 -03:00
"options": "Tent VPD (kPa)"
2026-04-03 20:45:40 -03:00
},
"properties": [
{
"id": "unit" ,
2026-05-11 17:36:13 -03:00
"value": "suffix:kPa"
2026-04-12 17:28:15 -03:00
}
]
},
{
"matcher": {
"id": "byName" ,
2026-05-11 17:36:13 -03:00
"options": "Tent RH (%)"
2026-04-12 17:28:15 -03:00
},
"properties": [
{
"id": "unit" ,
"value": "percent"
}
]
},
{
"matcher": {
"id": "byName" ,
2026-05-11 17:36:13 -03:00
"options": "Dew Point (\u00b0C)"
2026-04-12 17:28:15 -03:00
},
"properties": [
{
"id": "unit" ,
2026-05-11 17:36:13 -03:00
"value": "celsius"
2026-04-03 20:45:40 -03:00
}
]
}
]
2026-04-03 14:55:16 -03:00
},
"options": {
2026-04-12 19:56:12 -03:00
"colorMode": "value" ,
"graphMode": "area" ,
"justifyMode": "center" ,
"reduceOptions": {
"calcs": [
"lastNotNull"
] ,
"fields": "" ,
"values": false
2026-04-12 19:46:39 -03:00
},
2026-04-12 19:56:12 -03:00
"textMode": "name_and_value" ,
2026-05-11 17:36:13 -03:00
"orientation": "horizontal" ,
"wideLayout": true
2026-04-12 19:56:12 -03:00
},
2026-05-11 17:36:13 -03:00
"description": "Current tent temperature, humidity, VPD, and dew point. These render once Typhon climate telemetry is online."
2026-04-03 14:55:16 -03:00
},
{
"id": 4 ,
2026-04-03 20:45:40 -03:00
"type": "timeseries" ,
"title": "Climate History" ,
2026-04-03 14:55:16 -03:00
"datasource": {
"type": "prometheus" ,
"uid": "atlas-vm"
},
"gridPos": {
2026-04-03 20:45:40 -03:00
"h": 8 ,
"w": 12 ,
"x": 12 ,
"y": 8
2026-04-03 14:55:16 -03:00
},
"targets": [
{
"refId": "A" ,
2026-07-14 19:01:53 -03:00
"expr": "max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)" ,
2026-04-03 20:45:40 -03:00
"legendFormat": "Temperature (\u00b0C)"
},
{
"refId": "B" ,
2026-07-14 19:01:53 -03:00
"expr": "max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Humidity (%)"
2026-04-12 17:28:15 -03:00
},
{
"refId": "C" ,
2026-07-14 19:01:53 -03:00
"expr": "max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "VPD (kPa)"
2026-04-12 17:28:15 -03:00
},
{
"refId": "D" ,
2026-07-14 19:01:53 -03:00
"expr": "(243.12 * (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))))) / (17.62 - (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)))))" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Dew Point (\u00b0C)"
2026-04-03 14:55:16 -03:00
}
] ,
"fieldConfig": {
"defaults": {
2026-05-11 17:36:13 -03:00
"unit": "celsius"
2026-04-03 20:45:40 -03:00
},
"overrides": [
2026-04-12 22:53:23 -03:00
{
"matcher": {
"id": "byName" ,
2026-05-11 17:36:13 -03:00
"options": "Humidity (%)"
2026-04-12 17:28:15 -03:00
},
"properties": [
{
"id": "unit" ,
2026-05-11 17:36:13 -03:00
"value": "percent"
2026-04-12 17:28:15 -03:00
}
]
},
{
"matcher": {
"id": "byName" ,
2026-05-11 17:36:13 -03:00
"options": "VPD (kPa)"
2026-04-03 20:45:40 -03:00
},
"properties": [
2026-04-03 14:55:16 -03:00
{
2026-04-03 20:45:40 -03:00
"id": "unit" ,
2026-05-11 17:36:13 -03:00
"value": "none"
2026-04-03 14:55:16 -03:00
},
{
2026-04-03 20:45:40 -03:00
"id": "custom.axisPlacement" ,
"value": "right"
2026-04-12 22:53:23 -03:00
},
{
2026-05-11 17:36:13 -03:00
"id": "custom.axisLabel" ,
"value": "kPa"
2026-04-03 14:55:16 -03:00
},
{
2026-04-03 20:45:40 -03:00
"id": "decimals" ,
"value": 2
2026-04-03 14:55:16 -03:00
}
]
2026-04-03 20:45:40 -03:00
}
]
2026-04-03 14:55:16 -03:00
},
"options": {
2026-04-03 20:45:40 -03:00
"legend": {
"displayMode": "table" ,
"placement": "right"
2026-04-03 14:55:16 -03:00
},
2026-04-03 20:45:40 -03:00
"tooltip": {
"mode": "multi"
}
},
2026-05-11 17:36:13 -03:00
"description": "Two-axis chart: tent temperature/humidity/dew point (left axis) and tent VPD in kPa (right axis)."
2026-04-03 14:55:16 -03:00
},
{
"id": 5 ,
2026-04-12 19:56:12 -03:00
"type": "stat" ,
2026-04-03 20:45:40 -03:00
"title": "Fan Activity" ,
2026-04-03 14:55:16 -03:00
"datasource": {
"type": "prometheus" ,
"uid": "atlas-vm"
},
"gridPos": {
2026-04-03 20:45:40 -03:00
"h": 8 ,
"w": 12 ,
2026-04-03 14:55:16 -03:00
"x": 0 ,
2026-04-03 20:45:40 -03:00
"y": 16
2026-04-03 14:55:16 -03:00
},
"targets": [
{
"refId": "A" ,
2026-05-11 17:36:13 -03:00
"expr": "round(max(typhon_fan_speed_level{fan_group=\"outlet\"}) or on() vector(0))" ,
"legendFormat": "Inside Outlet" ,
"instant": true
},
{
"refId": "B" ,
"expr": "round(max(typhon_fan_speed_level{fan_group=\"inside_inlet\"}) or on() vector(0))" ,
"legendFormat": "Inside Inlet" ,
"instant": true
},
{
"refId": "C" ,
"expr": "round(max(typhon_fan_speed_level{fan_group=\"outside_inlet\"}) or on() vector(0))" ,
"legendFormat": "Outside Inlet" ,
"instant": true
},
{
"refId": "D" ,
"expr": "round(max(typhon_fan_speed_level{fan_group=\"interior\"}) or on() vector(0))" ,
"legendFormat": "Interior Fans" ,
2026-04-03 17:49:09 -03:00
"instant": true
2026-04-03 14:55:16 -03:00
}
] ,
"fieldConfig": {
"defaults": {
2026-04-12 19:56:12 -03:00
"color": {
"mode": "thresholds"
},
"mappings": [ ] ,
"thresholds": {
"mode": "absolute" ,
"steps": [
{
2026-05-15 19:52:46 -03:00
"color": "dark-green" ,
2026-04-12 19:56:12 -03:00
"value": null
},
{
2026-05-15 19:52:46 -03:00
"color": "dark-yellow" ,
2026-04-12 19:56:12 -03:00
"value": 7
},
{
2026-05-15 19:52:46 -03:00
"color": "dark-red" ,
2026-04-12 19:56:12 -03:00
"value": 9
}
]
},
2026-04-12 19:46:39 -03:00
"unit": "none" ,
"custom": {
2026-04-12 19:56:12 -03:00
"displayMode": "auto"
},
"decimals": 0
2026-04-12 19:46:39 -03:00
},
2026-05-11 17:36:13 -03:00
"overrides": [ ]
2026-04-03 14:55:16 -03:00
},
"options": {
2026-04-12 19:56:12 -03:00
"colorMode": "value" ,
"graphMode": "area" ,
"justifyMode": "center" ,
"reduceOptions": {
"calcs": [
"lastNotNull"
] ,
"fields": "" ,
"values": false
2026-04-12 19:46:39 -03:00
},
2026-04-12 19:56:12 -03:00
"textMode": "name_and_value" ,
2026-05-11 17:36:13 -03:00
"orientation": "horizontal" ,
"wideLayout": true
2026-04-12 19:56:12 -03:00
},
2026-05-11 17:36:13 -03:00
"description": "Current fan activity levels (0-10): inside outlet, inside inlet, outside inlet, and interior fans."
2026-04-03 14:55:16 -03:00
},
{
"id": 6 ,
2026-04-03 20:45:40 -03:00
"type": "timeseries" ,
2026-05-16 05:08:09 -03:00
"title": "Fan Intensity History" ,
2026-04-03 14:55:16 -03:00
"datasource": {
"type": "prometheus" ,
"uid": "atlas-vm"
},
"gridPos": {
2026-04-03 20:45:40 -03:00
"h": 8 ,
"w": 12 ,
"x": 12 ,
"y": 16
2026-04-03 14:55:16 -03:00
},
"targets": [
{
"refId": "A" ,
2026-07-14 19:01:53 -03:00
"expr": "max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"outlet\"})" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Inside Outlet"
2026-04-03 20:45:40 -03:00
},
{
"refId": "B" ,
2026-07-14 19:01:53 -03:00
"expr": "max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"inside_inlet\"})" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Inside Inlet"
2026-04-03 20:45:40 -03:00
},
{
"refId": "C" ,
2026-07-14 19:01:53 -03:00
"expr": "max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"outside_inlet\"})" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Outside Inlet"
2026-04-03 20:45:40 -03:00
},
{
"refId": "D" ,
2026-07-14 19:01:53 -03:00
"expr": "max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"interior\"})" ,
2026-05-11 17:36:13 -03:00
"legendFormat": "Interior Fans"
2026-04-03 14:55:16 -03:00
}
] ,
"fieldConfig": {
"defaults": {
2026-04-03 20:45:40 -03:00
"unit": "none" ,
"max": 10
2026-04-03 14:55:16 -03:00
},
"overrides": [ ]
},
"options": {
2026-04-03 20:45:40 -03:00
"legend": {
"displayMode": "table" ,
"placement": "right"
2026-04-03 17:49:09 -03:00
},
"tooltip": {
"mode": "multi"
}
},
2026-04-03 20:45:40 -03:00
"description": "Historical fan activity for all four fan groups (0-10 scale)."
2026-04-03 14:55:16 -03:00
}
] ,
"time": {
"from": "now-24h" ,
"to": "now"
},
"annotations": {
"list": [ ]
},
"schemaVersion": 39 ,
"style": "dark" ,
"tags": [
"atlas" ,
"power" ,
"climate"
]
}