monitoring(overview): tune climate row and restore ups card density

This commit is contained in:
Brad Stein 2026-04-12 18:35:15 -03:00
parent de3272e160
commit 6b0d6b017c
3 changed files with 77 additions and 71 deletions

View File

@ -1386,6 +1386,8 @@ def build_overview():
],
links=link_to("atlas-power"),
description="Per-UPS live snapshot: current draw, discharge, and charging/discharging status.",
orientation="horizontal",
wide_layout=False,
)
)
panels.append(
@ -1415,19 +1417,19 @@ def build_overview():
decimals=2,
text_mode="name_and_value",
targets=[
{"refId": "A", "expr": CLIMATE_TEMP_MAX, "legendFormat": "Tent Temp (°C)", "instant": True},
{"refId": "B", "expr": CLIMATE_TEMP_FAHRENHEIT_MAX, "legendFormat": "Tent Temp (°F)", "instant": True},
{"refId": "C", "expr": CLIMATE_HUMIDITY_MAX, "legendFormat": "Tent RH (%)", "instant": True},
{"refId": "D", "expr": CLIMATE_PRESSURE_CURRENT, "legendFormat": "Tent Pressure (VPD kPa)", "instant": True},
{"refId": "A", "expr": CLIMATE_TEMP_MAX, "legendFormat": "°C", "instant": True},
{"refId": "B", "expr": CLIMATE_TEMP_FAHRENHEIT_MAX, "legendFormat": "°F", "instant": True},
{"refId": "C", "expr": CLIMATE_HUMIDITY_MAX, "legendFormat": "RH%", "instant": True},
{"refId": "D", "expr": CLIMATE_PRESSURE_CURRENT, "legendFormat": "VPD", "instant": True},
],
field_overrides=[
{"matcher": {"id": "byName", "options": "Tent Temp (°C)"}, "properties": [{"id": "unit", "value": "celsius"}]},
{"matcher": {"id": "byName", "options": "Tent Temp (°F)"}, "properties": [{"id": "unit", "value": "fahrenheit"}]},
{"matcher": {"id": "byName", "options": "Tent RH (%)"}, "properties": [{"id": "unit", "value": "percent"}]},
{"matcher": {"id": "byName", "options": "Tent Pressure (VPD kPa)"}, "properties": [{"id": "unit", "value": "suffix:kPa"}]},
{"matcher": {"id": "byName", "options": "°C"}, "properties": [{"id": "unit", "value": "celsius"}]},
{"matcher": {"id": "byName", "options": "°F"}, "properties": [{"id": "unit", "value": "fahrenheit"}]},
{"matcher": {"id": "byName", "options": "RH%"}, "properties": [{"id": "unit", "value": "percent"}]},
{"matcher": {"id": "byName", "options": "VPD"}, "properties": [{"id": "unit", "value": "suffix:kPa"}]},
],
links=link_to("atlas-power"),
description="Current tent temperature in C/F, humidity, and pressure proxy (VPD in kPa).",
description="Current tent values on one row: temperature (C/F), humidity (RH), and pressure proxy (VPD).",
orientation="horizontal",
wide_layout=True,
)
@ -1440,27 +1442,27 @@ def build_overview():
{"h": 6, "w": 6, "x": 6, "y": 12},
unit="celsius",
targets=[
{"refId": "A", "expr": CLIMATE_TEMP_SERIES, "legendFormat": "Temperature (°C)"},
{"refId": "B", "expr": CLIMATE_TEMP_FAHRENHEIT_SERIES, "legendFormat": "Temperature (°F)"},
{"refId": "C", "expr": CLIMATE_HUMIDITY_SERIES, "legendFormat": "Humidity (%)"},
{"refId": "D", "expr": CLIMATE_PRESSURE_SERIES, "legendFormat": "Pressure (VPD kPa)"},
{"refId": "A", "expr": CLIMATE_TEMP_SERIES, "legendFormat": "C"},
{"refId": "B", "expr": CLIMATE_TEMP_FAHRENHEIT_SERIES, "legendFormat": "F"},
{"refId": "C", "expr": CLIMATE_HUMIDITY_SERIES, "legendFormat": "RH"},
{"refId": "D", "expr": CLIMATE_PRESSURE_SERIES, "legendFormat": "VPD"},
],
field_overrides=[
{
"matcher": {"id": "byName", "options": "Temperature (°F)"},
"matcher": {"id": "byName", "options": "F"},
"properties": [
{"id": "unit", "value": "fahrenheit"},
],
},
{
"matcher": {"id": "byName", "options": "Humidity (%)"},
"matcher": {"id": "byName", "options": "RH"},
"properties": [
{"id": "unit", "value": "percent"},
{"id": "custom.axisPlacement", "value": "right"},
],
},
{
"matcher": {"id": "byName", "options": "Pressure (VPD kPa)"},
"matcher": {"id": "byName", "options": "VPD"},
"properties": [
{"id": "unit", "value": "suffix:kPa"},
{"id": "custom.axisPlacement", "value": "right"},
@ -1468,10 +1470,10 @@ def build_overview():
],
}
],
legend_display="table",
legend_placement="right",
legend_display="list",
legend_placement="bottom",
links=link_to("atlas-power"),
description="Historical tent temperature (C/F), humidity, and pressure proxy (VPD kPa).",
description="Temperature scales on left axis, humidity and VPD on right axis.",
)
)
panels.append(
@ -1484,10 +1486,10 @@ def build_overview():
decimals=0,
text_mode="name_and_value",
targets=[
{"refId": "A", "expr": f"round({CLIMATE_FAN_OUTLET_CURRENT})", "legendFormat": "Inside Outlet", "instant": True},
{"refId": "B", "expr": f"round({CLIMATE_FAN_INSIDE_INLET_CURRENT})", "legendFormat": "Inside Inlet", "instant": True},
{"refId": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Outside Inlet", "instant": True},
{"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior Fans", "instant": True},
{"refId": "A", "expr": f"round({CLIMATE_FAN_OUTLET_CURRENT})", "legendFormat": "Outlet", "instant": True},
{"refId": "B", "expr": f"round({CLIMATE_FAN_INSIDE_INLET_CURRENT})", "legendFormat": "Inlet In", "instant": True},
{"refId": "C", "expr": f"round({CLIMATE_FAN_OUTSIDE_INLET_CURRENT})", "legendFormat": "Inlet Out", "instant": True},
{"refId": "D", "expr": f"round({CLIMATE_FAN_INTERIOR_CURRENT})", "legendFormat": "Interior", "instant": True},
],
thresholds={
"mode": "absolute",

View File

@ -1281,7 +1281,9 @@
"fields": "",
"values": false
},
"textMode": "name_and_value"
"textMode": "name_and_value",
"orientation": "horizontal",
"wideLayout": false
},
"links": [
{
@ -1364,25 +1366,25 @@
{
"refId": "A",
"expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)) or on() vector(0)",
"legendFormat": "Tent Temp (\u00b0C)",
"legendFormat": "\u00b0C",
"instant": true
},
{
"refId": "B",
"expr": "max((max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)) * 9 / 5 + 32) or on() vector(0)",
"legendFormat": "Tent Temp (\u00b0F)",
"legendFormat": "\u00b0F",
"instant": true
},
{
"refId": "C",
"expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent)) or on() vector(0)",
"legendFormat": "Tent RH (%)",
"legendFormat": "RH%",
"instant": true
},
{
"refId": "D",
"expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa)) or on() vector(0)",
"legendFormat": "Tent Pressure (VPD kPa)",
"legendFormat": "VPD",
"instant": true
}
],
@ -1415,7 +1417,7 @@
{
"matcher": {
"id": "byName",
"options": "Tent Temp (\u00b0C)"
"options": "\u00b0C"
},
"properties": [
{
@ -1427,7 +1429,7 @@
{
"matcher": {
"id": "byName",
"options": "Tent Temp (\u00b0F)"
"options": "\u00b0F"
},
"properties": [
{
@ -1439,7 +1441,7 @@
{
"matcher": {
"id": "byName",
"options": "Tent RH (%)"
"options": "RH%"
},
"properties": [
{
@ -1451,7 +1453,7 @@
{
"matcher": {
"id": "byName",
"options": "Tent Pressure (VPD kPa)"
"options": "VPD"
},
"properties": [
{
@ -1484,7 +1486,7 @@
"targetBlank": true
}
],
"description": "Current tent temperature in C/F, humidity, and pressure proxy (VPD in kPa)."
"description": "Current tent values on one row: temperature (C/F), humidity (RH), and pressure proxy (VPD)."
},
{
"id": 43,
@ -1504,22 +1506,22 @@
{
"refId": "A",
"expr": "max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)",
"legendFormat": "Temperature (\u00b0C)"
"legendFormat": "C"
},
{
"refId": "B",
"expr": "(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)) * 9 / 5 + 32",
"legendFormat": "Temperature (\u00b0F)"
"legendFormat": "F"
},
{
"refId": "C",
"expr": "max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent)",
"legendFormat": "Humidity (%)"
"legendFormat": "RH"
},
{
"refId": "D",
"expr": "max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa)",
"legendFormat": "Pressure (VPD kPa)"
"legendFormat": "VPD"
}
],
"fieldConfig": {
@ -1530,7 +1532,7 @@
{
"matcher": {
"id": "byName",
"options": "Temperature (\u00b0F)"
"options": "F"
},
"properties": [
{
@ -1542,7 +1544,7 @@
{
"matcher": {
"id": "byName",
"options": "Humidity (%)"
"options": "RH"
},
"properties": [
{
@ -1558,7 +1560,7 @@
{
"matcher": {
"id": "byName",
"options": "Pressure (VPD kPa)"
"options": "VPD"
},
"properties": [
{
@ -1579,8 +1581,8 @@
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi"
@ -1593,7 +1595,7 @@
"targetBlank": true
}
],
"description": "Historical tent temperature (C/F), humidity, and pressure proxy (VPD kPa)."
"description": "Temperature scales on left axis, humidity and VPD on right axis."
},
{
"id": 140,
@ -1613,25 +1615,25 @@
{
"refId": "A",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=\"outlet\"})) or on() vector(0))",
"legendFormat": "Inside Outlet",
"legendFormat": "Outlet",
"instant": true
},
{
"refId": "B",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=\"inside_inlet\"})) or on() vector(0))",
"legendFormat": "Inside Inlet",
"legendFormat": "Inlet In",
"instant": true
},
{
"refId": "C",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=\"outside_inlet\"})) or on() vector(0))",
"legendFormat": "Outside Inlet",
"legendFormat": "Inlet Out",
"instant": true
},
{
"refId": "D",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=~\"interior|unknown\"})) or on() vector(0))",
"legendFormat": "Interior Fans",
"legendFormat": "Interior",
"instant": true
}
],

View File

@ -1290,7 +1290,9 @@ data:
"fields": "",
"values": false
},
"textMode": "name_and_value"
"textMode": "name_and_value",
"orientation": "horizontal",
"wideLayout": false
},
"links": [
{
@ -1373,25 +1375,25 @@ data:
{
"refId": "A",
"expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)) or on() vector(0)",
"legendFormat": "Tent Temp (\u00b0C)",
"legendFormat": "\u00b0C",
"instant": true
},
{
"refId": "B",
"expr": "max((max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)) * 9 / 5 + 32) or on() vector(0)",
"legendFormat": "Tent Temp (\u00b0F)",
"legendFormat": "\u00b0F",
"instant": true
},
{
"refId": "C",
"expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent)) or on() vector(0)",
"legendFormat": "Tent RH (%)",
"legendFormat": "RH%",
"instant": true
},
{
"refId": "D",
"expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa)) or on() vector(0)",
"legendFormat": "Tent Pressure (VPD kPa)",
"legendFormat": "VPD",
"instant": true
}
],
@ -1424,7 +1426,7 @@ data:
{
"matcher": {
"id": "byName",
"options": "Tent Temp (\u00b0C)"
"options": "\u00b0C"
},
"properties": [
{
@ -1436,7 +1438,7 @@ data:
{
"matcher": {
"id": "byName",
"options": "Tent Temp (\u00b0F)"
"options": "\u00b0F"
},
"properties": [
{
@ -1448,7 +1450,7 @@ data:
{
"matcher": {
"id": "byName",
"options": "Tent RH (%)"
"options": "RH%"
},
"properties": [
{
@ -1460,7 +1462,7 @@ data:
{
"matcher": {
"id": "byName",
"options": "Tent Pressure (VPD kPa)"
"options": "VPD"
},
"properties": [
{
@ -1493,7 +1495,7 @@ data:
"targetBlank": true
}
],
"description": "Current tent temperature in C/F, humidity, and pressure proxy (VPD in kPa)."
"description": "Current tent values on one row: temperature (C/F), humidity (RH), and pressure proxy (VPD)."
},
{
"id": 43,
@ -1513,22 +1515,22 @@ data:
{
"refId": "A",
"expr": "max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)",
"legendFormat": "Temperature (\u00b0C)"
"legendFormat": "C"
},
{
"refId": "B",
"expr": "(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius)) * 9 / 5 + 32",
"legendFormat": "Temperature (\u00b0F)"
"legendFormat": "F"
},
{
"refId": "C",
"expr": "max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent)",
"legendFormat": "Humidity (%)"
"legendFormat": "RH"
},
{
"refId": "D",
"expr": "max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa)",
"legendFormat": "Pressure (VPD kPa)"
"legendFormat": "VPD"
}
],
"fieldConfig": {
@ -1539,7 +1541,7 @@ data:
{
"matcher": {
"id": "byName",
"options": "Temperature (\u00b0F)"
"options": "F"
},
"properties": [
{
@ -1551,7 +1553,7 @@ data:
{
"matcher": {
"id": "byName",
"options": "Humidity (%)"
"options": "RH"
},
"properties": [
{
@ -1567,7 +1569,7 @@ data:
{
"matcher": {
"id": "byName",
"options": "Pressure (VPD kPa)"
"options": "VPD"
},
"properties": [
{
@ -1588,8 +1590,8 @@ data:
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi"
@ -1602,7 +1604,7 @@ data:
"targetBlank": true
}
],
"description": "Historical tent temperature (C/F), humidity, and pressure proxy (VPD kPa)."
"description": "Temperature scales on left axis, humidity and VPD on right axis."
},
{
"id": 140,
@ -1622,25 +1624,25 @@ data:
{
"refId": "A",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=\"outlet\"})) or on() vector(0))",
"legendFormat": "Inside Outlet",
"legendFormat": "Outlet",
"instant": true
},
{
"refId": "B",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=\"inside_inlet\"})) or on() vector(0))",
"legendFormat": "Inside Inlet",
"legendFormat": "Inlet In",
"instant": true
},
{
"refId": "C",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=\"outside_inlet\"})) or on() vector(0))",
"legendFormat": "Outside Inlet",
"legendFormat": "Inlet Out",
"instant": true
},
{
"refId": "D",
"expr": "round(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_fan_speed_level{fan_group=~\"interior|unknown\"})) or on() vector(0))",
"legendFormat": "Interior Fans",
"legendFormat": "Interior",
"instant": true
}
],