monitoring(overview): replace power/climate summary row with six-panel layout

This commit is contained in:
Brad Stein 2026-04-03 22:16:02 -03:00
parent 7ef4c895ba
commit cdc3c081f5
3 changed files with 1214 additions and 564 deletions

View File

@ -1252,84 +1252,162 @@ def build_overview():
)
)
status_mapping = [
{
"type": "value",
"options": {
"0": {"text": "⚡ Charging"},
"1": {"text": "🔋 Discharging"},
},
}
]
panels.append(
stat_panel(
40,
"titan-db UPS Runtime",
HECATE_UPS_RUNTIME_DB,
{"h": 3, "w": 6, "x": 0, "y": 11},
unit="s",
decimals=0,
instant=True,
thresholds={
"mode": "absolute",
"steps": [
{"color": "red", "value": None},
{"color": "orange", "value": 600},
{"color": "yellow", "value": 1200},
{"color": "green", "value": 1800},
],
},
"UPS Current Load",
None,
{"h": 5, "w": 8, "x": 0, "y": 11},
unit="none",
decimals=1,
text_mode="name_and_value",
targets=[
{"refId": "A", "expr": HECATE_UPS_DRAW_WATTS_DB, "legendFormat": "titan-db Draw (W)", "instant": True},
{"refId": "B", "expr": HECATE_UPS_RUNTIME_DB, "legendFormat": "titan-db Discharge ETA", "instant": True},
{"refId": "C", "expr": HECATE_UPS_ON_BATTERY_DB, "legendFormat": "titan-db Status", "instant": True},
{"refId": "D", "expr": HECATE_UPS_DRAW_WATTS_TETHYS, "legendFormat": "tethys Draw (W)", "instant": True},
{"refId": "E", "expr": HECATE_UPS_RUNTIME_TETHYS, "legendFormat": "tethys Discharge ETA", "instant": True},
{"refId": "F", "expr": HECATE_UPS_ON_BATTERY_TETHYS, "legendFormat": "tethys Status", "instant": True},
],
field_overrides=[
{"matcher": {"id": "byName", "options": "titan-db Draw (W)"}, "properties": [{"id": "unit", "value": "watt"}]},
{"matcher": {"id": "byName", "options": "tethys Draw (W)"}, "properties": [{"id": "unit", "value": "watt"}]},
{"matcher": {"id": "byName", "options": "titan-db Discharge ETA"}, "properties": [{"id": "unit", "value": "s"}]},
{"matcher": {"id": "byName", "options": "tethys Discharge ETA"}, "properties": [{"id": "unit", "value": "s"}]},
{"matcher": {"id": "byName", "options": "titan-db Status"}, "properties": [{"id": "mappings", "value": status_mapping}]},
{"matcher": {"id": "byName", "options": "tethys Status"}, "properties": [{"id": "mappings", "value": status_mapping}]},
],
links=link_to("atlas-power"),
description="Per-UPS live snapshot: current draw, discharge ETA, and charging/discharging status.",
)
)
panels.append(
stat_panel(
timeseries_panel(
41,
"tethys UPS Runtime",
HECATE_UPS_RUNTIME_TETHYS,
{"h": 3, "w": 6, "x": 6, "y": 11},
unit="s",
decimals=0,
"UPS History (Power Draw)",
None,
{"h": 5, "w": 8, "x": 8, "y": 11},
unit="watt",
targets=[
{"refId": "A", "expr": HECATE_UPS_DRAW_WATTS_DB_SERIES, "legendFormat": "titan-db"},
{"refId": "B", "expr": HECATE_UPS_DRAW_WATTS_TETHYS_SERIES, "legendFormat": "tethys"},
{"refId": "C", "expr": HECATE_UPS_DRAW_WATTS_TOTAL_SERIES, "legendFormat": "combined"},
],
legend_display="table",
legend_placement="right",
links=link_to("atlas-power"),
thresholds={
"mode": "absolute",
"steps": [
{"color": "red", "value": None},
{"color": "orange", "value": 600},
{"color": "yellow", "value": 1200},
{"color": "green", "value": 1800},
],
},
)
)
panels.append(
stat_panel(
42,
"UPS Sources On Battery",
HECATE_UPS_ON_BATTERY,
{"h": 3, "w": 6, "x": 12, "y": 11},
"Current Climate",
None,
{"h": 5, "w": 8, "x": 16, "y": 11},
unit="none",
instant=True,
decimals=2,
text_mode="name_and_value",
targets=[
{"refId": "A", "expr": CLIMATE_TEMP_MAX, "legendFormat": "Tent Temp (°C)", "instant": True},
{"refId": "B", "expr": CLIMATE_PRESSURE_CURRENT, "legendFormat": "Tent Pressure (kPa)", "instant": True},
],
field_overrides=[
{"matcher": {"id": "byName", "options": "Tent Temp (°C)"}, "properties": [{"id": "unit", "value": "celsius"}]},
{"matcher": {"id": "byName", "options": "Tent Pressure (kPa)"}, "properties": [{"id": "unit", "value": "none"}]},
],
links=link_to("atlas-power"),
description="Current tent temperature and pressure.",
)
)
panels.append(
timeseries_panel(
43,
"Climate History",
None,
{"h": 5, "w": 8, "x": 0, "y": 16},
unit="celsius",
targets=[
{"refId": "A", "expr": CLIMATE_TEMP_SERIES, "legendFormat": "Temperature (°C)"},
{"refId": "B", "expr": CLIMATE_PRESSURE_SERIES, "legendFormat": "Pressure (kPa)"},
],
field_overrides=[
{
"matcher": {"id": "byName", "options": "Pressure (kPa)"},
"properties": [
{"id": "unit", "value": "none"},
{"id": "custom.axisPlacement", "value": "right"},
{"id": "custom.axisLabel", "value": "kPa"},
{"id": "decimals", "value": 2},
],
}
],
legend_display="table",
legend_placement="right",
links=link_to("atlas-power"),
)
)
panels.append(
stat_panel(
140,
"Fan Activity",
None,
{"h": 5, "w": 8, "x": 8, "y": 16},
unit="none",
decimals=1,
text_mode="name_and_value",
targets=[
{"refId": "A", "expr": CLIMATE_FAN_OUTLET_CURRENT, "legendFormat": "Outlet", "instant": True},
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_CURRENT, "legendFormat": "Inside Inlet", "instant": True},
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_CURRENT, "legendFormat": "Outside Inlet", "instant": True},
{"refId": "D", "expr": CLIMATE_FAN_INTERIOR_CURRENT, "legendFormat": "Interior", "instant": True},
],
thresholds={
"mode": "absolute",
"steps": [
{"color": "green", "value": None},
{"color": "yellow", "value": 1},
{"color": "red", "value": 2},
{"color": "yellow", "value": 7},
{"color": "red", "value": 9},
],
},
links=link_to("atlas-power"),
)
)
climate_panel = stat_panel(
43,
"Current Tent Temperature",
CLIMATE_TEMP_MAX,
{"h": 3, "w": 6, "x": 18, "y": 11},
unit="celsius",
decimals=1,
links=link_to("atlas-power"),
panels.append(
timeseries_panel(
141,
"Fan History (0-10)",
None,
{"h": 5, "w": 8, "x": 16, "y": 16},
unit="none",
max_value=10,
targets=[
{"refId": "A", "expr": CLIMATE_FAN_OUTLET_SERIES, "legendFormat": "Outlet"},
{"refId": "B", "expr": CLIMATE_FAN_INSIDE_INLET_SERIES, "legendFormat": "Inside Inlet"},
{"refId": "C", "expr": CLIMATE_FAN_OUTSIDE_INLET_SERIES, "legendFormat": "Outside Inlet"},
{"refId": "D", "expr": CLIMATE_FAN_INTERIOR_SERIES, "legendFormat": "Interior"},
],
legend_display="table",
legend_placement="right",
links=link_to("atlas-power"),
)
)
climate_panel["description"] = "Future climate collector metric (will read 0/no data until instrumentation is live)."
panels.append(climate_panel)
panels.append(
stat_panel(
44,
"One-off Job Pods >1h",
f"sum(({ONEOFF_JOB_POD_AGE_HOURS}) > bool 1) or on() vector(0)",
{"h": 3, "w": 6, "x": 0, "y": 14},
{"h": 3, "w": 6, "x": 0, "y": 21},
unit="none",
instant=True,
thresholds=count_thresholds,
@ -1341,7 +1419,7 @@ def build_overview():
45,
"Ariadne Attempts (24h)",
"sum(increase(ariadne_task_runs_total[24h]))",
{"h": 3, "w": 6, "x": 6, "y": 14},
{"h": 3, "w": 6, "x": 6, "y": 21},
unit="none",
decimals=0,
links=link_to("atlas-jobs"),
@ -1351,7 +1429,7 @@ def build_overview():
46,
"Platform Test Success Rate",
TEST_SUCCESS_RATE,
{"h": 3, "w": 6, "x": 12, "y": 14},
{"h": 3, "w": 6, "x": 12, "y": 21},
unit="percent",
decimals=2,
thresholds={
@ -1374,7 +1452,7 @@ def build_overview():
47,
"Platform Test Failures (24h)",
"sum(max_over_time(ariadne_ci_tests_total{repo=~\"ariadne|metis\",result=~\"failed|error\"}[24h]))",
{"h": 3, "w": 6, "x": 18, "y": 14},
{"h": 3, "w": 6, "x": 18, "y": 21},
unit="none",
decimals=0,
instant=True,
@ -1391,7 +1469,7 @@ def build_overview():
30,
"Mail Sent (1d)",
'max(postmark_outbound_sent{window="1d"})',
{"h": 3, "w": 4, "x": 0, "y": 17},
{"h": 3, "w": 4, "x": 0, "y": 24},
unit="none",
links=link_to("atlas-mail"),
)
@ -1402,7 +1480,7 @@ def build_overview():
"type": "stat",
"title": "Mail Bounces (1d)",
"datasource": PROM_DS,
"gridPos": {"h": 3, "w": 4, "x": 8, "y": 17},
"gridPos": {"h": 3, "w": 4, "x": 8, "y": 24},
"targets": [
{
"expr": 'max(postmark_outbound_bounce_rate{window="1d"})',
@ -1448,7 +1526,7 @@ def build_overview():
32,
"Mail Success Rate (1d)",
'clamp_min(100 - max(postmark_outbound_bounce_rate{window="1d"}), 0)',
{"h": 3, "w": 4, "x": 4, "y": 17},
{"h": 3, "w": 4, "x": 4, "y": 24},
unit="percent",
thresholds=mail_success_thresholds,
decimals=1,
@ -1460,7 +1538,7 @@ def build_overview():
33,
"Mail Limit Used (30d)",
"max(postmark_sending_limit_used_percent)",
{"h": 3, "w": 4, "x": 12, "y": 17},
{"h": 3, "w": 4, "x": 12, "y": 24},
unit="percent",
thresholds=mail_limit_thresholds,
decimals=1,
@ -1472,7 +1550,7 @@ def build_overview():
34,
"Postgres Connections Used",
POSTGRES_CONN_USED,
{"h": 3, "w": 4, "x": 16, "y": 17},
{"h": 3, "w": 4, "x": 16, "y": 24},
decimals=0,
text_mode="name_and_value",
legend="{{conn}}",
@ -1484,7 +1562,7 @@ def build_overview():
35,
"Postgres Hottest Connections",
POSTGRES_CONN_HOTTEST,
{"h": 3, "w": 4, "x": 20, "y": 17},
{"h": 3, "w": 4, "x": 20, "y": 24},
unit="none",
decimals=0,
text_mode="name_and_value",
@ -1502,7 +1580,7 @@ def build_overview():
11,
"Namespace CPU Share",
namespace_cpu_share_expr(cpu_scope),
{"h": 9, "w": 8, "x": 0, "y": 20},
{"h": 9, "w": 8, "x": 0, "y": 27},
links=namespace_scope_links("namespace_scope_cpu"),
description="Shares are normalized within the selected filter. Switching scope changes the denominator.",
)
@ -1512,7 +1590,7 @@ def build_overview():
12,
"Namespace GPU Share",
namespace_gpu_share_expr(gpu_scope),
{"h": 9, "w": 8, "x": 8, "y": 20},
{"h": 9, "w": 8, "x": 8, "y": 27},
links=namespace_scope_links("namespace_scope_gpu"),
description="Shares are normalized within the selected filter. Switching scope changes the denominator.",
)
@ -1522,7 +1600,7 @@ def build_overview():
13,
"Namespace RAM Share",
namespace_ram_share_expr(ram_scope),
{"h": 9, "w": 8, "x": 16, "y": 20},
{"h": 9, "w": 8, "x": 16, "y": 27},
links=namespace_scope_links("namespace_scope_ram"),
description="Shares are normalized within the selected filter. Switching scope changes the denominator.",
)
@ -1534,7 +1612,7 @@ def build_overview():
14,
"Worker Node CPU",
node_cpu_expr(worker_filter),
{"h": 12, "w": 12, "x": 0, "y": 36},
{"h": 12, "w": 12, "x": 0, "y": 43},
unit="percent",
legend="{{node}}",
legend_calcs=["last"],
@ -1548,7 +1626,7 @@ def build_overview():
15,
"Worker Node RAM",
node_mem_expr(worker_filter),
{"h": 12, "w": 12, "x": 12, "y": 36},
{"h": 12, "w": 12, "x": 12, "y": 43},
unit="percent",
legend="{{node}}",
legend_calcs=["last"],
@ -1563,7 +1641,7 @@ def build_overview():
16,
"Control plane CPU",
node_cpu_expr(CONTROL_ALL_REGEX),
{"h": 10, "w": 12, "x": 0, "y": 48},
{"h": 10, "w": 12, "x": 0, "y": 55},
unit="percent",
legend="{{node}}",
legend_display="table",
@ -1575,7 +1653,7 @@ def build_overview():
17,
"Control plane RAM",
node_mem_expr(CONTROL_ALL_REGEX),
{"h": 10, "w": 12, "x": 12, "y": 48},
{"h": 10, "w": 12, "x": 12, "y": 55},
unit="percent",
legend="{{node}}",
legend_display="table",
@ -1588,7 +1666,7 @@ def build_overview():
28,
"Node Pod Share",
'(sum(kube_pod_info{pod!="" , node!=""}) by (node) / clamp_min(sum(kube_pod_info{pod!="" , node!=""}), 1)) * 100',
{"h": 10, "w": 12, "x": 0, "y": 58},
{"h": 10, "w": 12, "x": 0, "y": 65},
)
)
panels.append(
@ -1596,7 +1674,7 @@ def build_overview():
29,
"Top Nodes by Pod Count",
'topk(12, sum(kube_pod_info{pod!="" , node!=""}) by (node))',
{"h": 10, "w": 12, "x": 12, "y": 58},
{"h": 10, "w": 12, "x": 12, "y": 65},
unit="none",
limit=12,
decimals=0,
@ -1618,7 +1696,7 @@ def build_overview():
18,
"Cluster Ingress Throughput",
NET_INGRESS_EXPR,
{"h": 7, "w": 8, "x": 0, "y": 29},
{"h": 7, "w": 8, "x": 0, "y": 36},
unit="Bps",
legend="Ingress (Traefik)",
legend_display="list",
@ -1631,7 +1709,7 @@ def build_overview():
19,
"Cluster Egress Throughput",
NET_EGRESS_EXPR,
{"h": 7, "w": 8, "x": 8, "y": 29},
{"h": 7, "w": 8, "x": 8, "y": 36},
unit="Bps",
legend="Egress (Traefik)",
legend_display="list",
@ -1644,7 +1722,7 @@ def build_overview():
20,
"Intra-Cluster Throughput",
NET_INTERNAL_EXPR,
{"h": 7, "w": 8, "x": 16, "y": 29},
{"h": 7, "w": 8, "x": 16, "y": 36},
unit="Bps",
legend="Internal traffic",
legend_display="list",
@ -1658,7 +1736,7 @@ def build_overview():
21,
"Root Filesystem Usage",
root_usage_expr(),
{"h": 16, "w": 12, "x": 0, "y": 68},
{"h": 16, "w": 12, "x": 0, "y": 75},
unit="percent",
legend="{{node}}",
legend_calcs=["last"],
@ -1673,7 +1751,7 @@ def build_overview():
22,
"Nodes Closest to Full Root Disks",
f"topk(12, {root_usage_expr()})",
{"h": 16, "w": 12, "x": 12, "y": 68},
{"h": 16, "w": 12, "x": 12, "y": 75},
unit="percent",
thresholds=PERCENT_THRESHOLDS,
links=link_to("atlas-storage"),

View File

@ -1073,246 +1073,53 @@
{
"id": 40,
"type": "stat",
"title": "titan-db UPS Runtime",
"title": "UPS Current Load",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"h": 5,
"w": 8,
"x": 0,
"y": 11
},
"targets": [
{
"refId": "A",
"expr": "max((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-db\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-db\"}) / 100) or on() vector(0)",
"legendFormat": "titan-db Draw (W)",
"instant": true
},
{
"refId": "B",
"expr": "max(hecate_ups_runtime_seconds{job=\"hecate-power\",instance=\"titan-db\"}) or on() vector(0)",
"refId": "A",
"legendFormat": "titan-db Discharge ETA",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 600
},
{
"color": "yellow",
"value": 1200
},
{
"color": "green",
"value": 1800
}
]
},
"unit": "s",
"custom": {
"displayMode": "auto"
},
"decimals": 0
},
"overrides": []
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
{
"refId": "C",
"expr": "max(hecate_ups_on_battery{job=\"hecate-power\",instance=\"titan-db\"}) or on() vector(0)",
"legendFormat": "titan-db Status",
"instant": true
},
"textMode": "value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 41,
"type": "stat",
"title": "tethys UPS Runtime",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"x": 6,
"y": 11
},
"targets": [
"refId": "D",
"expr": "max((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-24\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-24\"}) / 100) or on() vector(0)",
"legendFormat": "tethys Draw (W)",
"instant": true
},
{
"refId": "E",
"expr": "max(hecate_ups_runtime_seconds{job=\"hecate-power\",instance=\"titan-24\"}) or on() vector(0)",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 600
},
{
"color": "yellow",
"value": 1200
},
{
"color": "green",
"value": 1800
}
]
},
"unit": "s",
"custom": {
"displayMode": "auto"
},
"decimals": 0
},
"overrides": []
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 42,
"type": "stat",
"title": "UPS Sources On Battery",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"x": 12,
"y": 11
},
"targets": [
{
"expr": "sum(hecate_ups_on_battery{job=\"hecate-power\"}) or on() vector(0)",
"refId": "A",
"legendFormat": "tethys Discharge ETA",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 1
},
{
"color": "red",
"value": 2
}
]
},
"unit": "none",
"custom": {
"displayMode": "auto"
}
},
"overrides": []
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 43,
"type": "stat",
"title": "Current Tent Temperature",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"x": 18,
"y": 11
},
"targets": [
{
"expr": "max(atlas_climate_tent_temperature_celsius) or max(atlas_climate_temperature_celsius) or on() vector(0)",
"refId": "A"
"refId": "F",
"expr": "max(hecate_ups_on_battery{job=\"hecate-power\",instance=\"titan-24\"}) or on() vector(0)",
"legendFormat": "tethys Status",
"instant": true
}
],
"fieldConfig": {
@ -1334,7 +1141,427 @@
}
]
},
"unit": "celsius",
"unit": "none",
"custom": {
"displayMode": "auto"
},
"decimals": 1
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "titan-db Draw (W)"
},
"properties": [
{
"id": "unit",
"value": "watt"
}
]
},
{
"matcher": {
"id": "byName",
"options": "tethys Draw (W)"
},
"properties": [
{
"id": "unit",
"value": "watt"
}
]
},
{
"matcher": {
"id": "byName",
"options": "titan-db Discharge ETA"
},
"properties": [
{
"id": "unit",
"value": "s"
}
]
},
{
"matcher": {
"id": "byName",
"options": "tethys Discharge ETA"
},
"properties": [
{
"id": "unit",
"value": "s"
}
]
},
{
"matcher": {
"id": "byName",
"options": "titan-db Status"
},
"properties": [
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"0": {
"text": "\u26a1 Charging"
},
"1": {
"text": "\ud83d\udd0b Discharging"
}
}
}
]
}
]
},
{
"matcher": {
"id": "byName",
"options": "tethys Status"
},
"properties": [
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"0": {
"text": "\u26a1 Charging"
},
"1": {
"text": "\ud83d\udd0b Discharging"
}
}
}
]
}
]
}
]
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "name_and_value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
],
"description": "Per-UPS live snapshot: current draw, discharge ETA, and charging/discharging status."
},
{
"id": 41,
"type": "timeseries",
"title": "UPS History (Power Draw)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 8,
"y": 11
},
"targets": [
{
"refId": "A",
"expr": "((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-db\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-db\"}) / 100)",
"legendFormat": "titan-db"
},
{
"refId": "B",
"expr": "((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-24\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-24\"}) / 100)",
"legendFormat": "tethys"
},
{
"refId": "C",
"expr": "sum((hecate_ups_load_percent{job=\"hecate-power\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\"}) / 100)",
"legendFormat": "combined"
}
],
"fieldConfig": {
"defaults": {
"unit": "watt"
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
},
"tooltip": {
"mode": "multi"
}
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 42,
"type": "stat",
"title": "Current Climate",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 16,
"y": 11
},
"targets": [
{
"refId": "A",
"expr": "max(atlas_climate_tent_temperature_celsius) or max(atlas_climate_temperature_celsius) or on() vector(0)",
"legendFormat": "Tent Temp (\u00b0C)",
"instant": true
},
{
"refId": "B",
"expr": "max(atlas_climate_tent_pressure_kpa) or max(atlas_climate_pressure_kpa) or on() vector(0)",
"legendFormat": "Tent Pressure (kPa)",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "rgba(115, 115, 115, 1)",
"value": null
},
{
"color": "green",
"value": 1
}
]
},
"unit": "none",
"custom": {
"displayMode": "auto"
},
"decimals": 2
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Tent Temp (\u00b0C)"
},
"properties": [
{
"id": "unit",
"value": "celsius"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Tent Pressure (kPa)"
},
"properties": [
{
"id": "unit",
"value": "none"
}
]
}
]
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "name_and_value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
],
"description": "Current tent temperature and pressure."
},
{
"id": 43,
"type": "timeseries",
"title": "Climate History",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 0,
"y": 16
},
"targets": [
{
"refId": "A",
"expr": "(atlas_climate_tent_temperature_celsius or atlas_climate_temperature_celsius)",
"legendFormat": "Temperature (\u00b0C)"
},
{
"refId": "B",
"expr": "(atlas_climate_tent_pressure_kpa or atlas_climate_pressure_kpa)",
"legendFormat": "Pressure (kPa)"
}
],
"fieldConfig": {
"defaults": {
"unit": "celsius"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Pressure (kPa)"
},
"properties": [
{
"id": "unit",
"value": "none"
},
{
"id": "custom.axisPlacement",
"value": "right"
},
{
"id": "custom.axisLabel",
"value": "kPa"
},
{
"id": "decimals",
"value": 2
}
]
}
]
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
},
"tooltip": {
"mode": "multi"
}
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 140,
"type": "stat",
"title": "Fan Activity",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 8,
"y": 16
},
"targets": [
{
"refId": "A",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"outlet\"}) or max(atlas_climate_fan_activity_level{position=\"outlet\"}) or on() vector(0)",
"legendFormat": "Outlet",
"instant": true
},
{
"refId": "B",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0)",
"legendFormat": "Inside Inlet",
"instant": true
},
{
"refId": "C",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0)",
"legendFormat": "Outside Inlet",
"instant": true
},
{
"refId": "D",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"interior\"}) or max(atlas_climate_fan_activity_level{position=\"interior\"}) or on() vector(0)",
"legendFormat": "Interior",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 7
},
{
"color": "red",
"value": 9
}
]
},
"unit": "none",
"custom": {
"displayMode": "auto"
},
@ -1353,7 +1580,7 @@
"fields": "",
"values": false
},
"textMode": "value"
"textMode": "name_and_value"
},
"links": [
{
@ -1361,8 +1588,67 @@
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 141,
"type": "timeseries",
"title": "Fan History (0-10)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 16,
"y": 16
},
"targets": [
{
"refId": "A",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outlet\"} or atlas_climate_fan_activity_level{position=\"outlet\"})",
"legendFormat": "Outlet"
},
{
"refId": "B",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})",
"legendFormat": "Inside Inlet"
},
{
"refId": "C",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})",
"legendFormat": "Outside Inlet"
},
{
"refId": "D",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"interior\"} or atlas_climate_fan_activity_level{position=\"interior\"})",
"legendFormat": "Interior"
}
],
"description": "Future climate collector metric (will read 0/no data until instrumentation is live)."
"fieldConfig": {
"defaults": {
"unit": "none",
"max": 10
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
},
"tooltip": {
"mode": "multi"
}
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 44,
@ -1376,7 +1662,7 @@
"h": 3,
"w": 6,
"x": 0,
"y": 14
"y": 21
},
"targets": [
{
@ -1452,7 +1738,7 @@
"h": 3,
"w": 6,
"x": 6,
"y": 14
"y": 21
},
"targets": [
{
@ -1520,7 +1806,7 @@
"h": 3,
"w": 6,
"x": 12,
"y": 14
"y": 21
},
"targets": [
{
@ -1597,7 +1883,7 @@
"h": 3,
"w": 6,
"x": 18,
"y": 14
"y": 21
},
"targets": [
{
@ -1675,7 +1961,7 @@
"h": 3,
"w": 4,
"x": 0,
"y": 17
"y": 24
},
"targets": [
{
@ -1742,7 +2028,7 @@
"h": 3,
"w": 4,
"x": 8,
"y": 17
"y": 24
},
"targets": [
{
@ -1847,7 +2133,7 @@
"h": 3,
"w": 4,
"x": 4,
"y": 17
"y": 24
},
"targets": [
{
@ -1923,7 +2209,7 @@
"h": 3,
"w": 4,
"x": 12,
"y": 17
"y": 24
},
"targets": [
{
@ -1999,7 +2285,7 @@
"h": 3,
"w": 4,
"x": 16,
"y": 17
"y": 24
},
"targets": [
{
@ -2062,7 +2348,7 @@
"h": 3,
"w": 4,
"x": 20,
"y": 17
"y": 24
},
"targets": [
{
@ -2125,7 +2411,7 @@
"h": 9,
"w": 8,
"x": 0,
"y": 20
"y": 27
},
"targets": [
{
@ -2194,7 +2480,7 @@
"h": 9,
"w": 8,
"x": 8,
"y": 20
"y": 27
},
"targets": [
{
@ -2263,7 +2549,7 @@
"h": 9,
"w": 8,
"x": 16,
"y": 20
"y": 27
},
"targets": [
{
@ -2332,7 +2618,7 @@
"h": 12,
"w": 12,
"x": 0,
"y": 36
"y": 43
},
"targets": [
{
@ -2379,7 +2665,7 @@
"h": 12,
"w": 12,
"x": 12,
"y": 36
"y": 43
},
"targets": [
{
@ -2426,7 +2712,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 48
"y": 55
},
"targets": [
{
@ -2463,7 +2749,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 48
"y": 55
},
"targets": [
{
@ -2500,7 +2786,7 @@
"h": 10,
"w": 12,
"x": 0,
"y": 58
"y": 65
},
"targets": [
{
@ -2551,7 +2837,7 @@
"h": 10,
"w": 12,
"x": 12,
"y": 58
"y": 65
},
"targets": [
{
@ -2632,7 +2918,7 @@
"h": 7,
"w": 8,
"x": 0,
"y": 29
"y": 36
},
"targets": [
{
@ -2676,7 +2962,7 @@
"h": 7,
"w": 8,
"x": 8,
"y": 29
"y": 36
},
"targets": [
{
@ -2720,7 +3006,7 @@
"h": 7,
"w": 8,
"x": 16,
"y": 29
"y": 36
},
"targets": [
{
@ -2764,7 +3050,7 @@
"h": 16,
"w": 12,
"x": 0,
"y": 68
"y": 75
},
"targets": [
{
@ -2812,7 +3098,7 @@
"h": 16,
"w": 12,
"x": 12,
"y": 68
"y": 75
},
"targets": [
{

View File

@ -1082,246 +1082,53 @@ data:
{
"id": 40,
"type": "stat",
"title": "titan-db UPS Runtime",
"title": "UPS Current Load",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"h": 5,
"w": 8,
"x": 0,
"y": 11
},
"targets": [
{
"refId": "A",
"expr": "max((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-db\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-db\"}) / 100) or on() vector(0)",
"legendFormat": "titan-db Draw (W)",
"instant": true
},
{
"refId": "B",
"expr": "max(hecate_ups_runtime_seconds{job=\"hecate-power\",instance=\"titan-db\"}) or on() vector(0)",
"refId": "A",
"legendFormat": "titan-db Discharge ETA",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 600
},
{
"color": "yellow",
"value": 1200
},
{
"color": "green",
"value": 1800
}
]
},
"unit": "s",
"custom": {
"displayMode": "auto"
},
"decimals": 0
},
"overrides": []
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
{
"refId": "C",
"expr": "max(hecate_ups_on_battery{job=\"hecate-power\",instance=\"titan-db\"}) or on() vector(0)",
"legendFormat": "titan-db Status",
"instant": true
},
"textMode": "value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 41,
"type": "stat",
"title": "tethys UPS Runtime",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"x": 6,
"y": 11
},
"targets": [
"refId": "D",
"expr": "max((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-24\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-24\"}) / 100) or on() vector(0)",
"legendFormat": "tethys Draw (W)",
"instant": true
},
{
"refId": "E",
"expr": "max(hecate_ups_runtime_seconds{job=\"hecate-power\",instance=\"titan-24\"}) or on() vector(0)",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 600
},
{
"color": "yellow",
"value": 1200
},
{
"color": "green",
"value": 1800
}
]
},
"unit": "s",
"custom": {
"displayMode": "auto"
},
"decimals": 0
},
"overrides": []
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 42,
"type": "stat",
"title": "UPS Sources On Battery",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"x": 12,
"y": 11
},
"targets": [
{
"expr": "sum(hecate_ups_on_battery{job=\"hecate-power\"}) or on() vector(0)",
"refId": "A",
"legendFormat": "tethys Discharge ETA",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 1
},
{
"color": "red",
"value": 2
}
]
},
"unit": "none",
"custom": {
"displayMode": "auto"
}
},
"overrides": []
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 43,
"type": "stat",
"title": "Current Tent Temperature",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 3,
"w": 6,
"x": 18,
"y": 11
},
"targets": [
{
"expr": "max(atlas_climate_tent_temperature_celsius) or max(atlas_climate_temperature_celsius) or on() vector(0)",
"refId": "A"
"refId": "F",
"expr": "max(hecate_ups_on_battery{job=\"hecate-power\",instance=\"titan-24\"}) or on() vector(0)",
"legendFormat": "tethys Status",
"instant": true
}
],
"fieldConfig": {
@ -1343,7 +1150,427 @@ data:
}
]
},
"unit": "celsius",
"unit": "none",
"custom": {
"displayMode": "auto"
},
"decimals": 1
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "titan-db Draw (W)"
},
"properties": [
{
"id": "unit",
"value": "watt"
}
]
},
{
"matcher": {
"id": "byName",
"options": "tethys Draw (W)"
},
"properties": [
{
"id": "unit",
"value": "watt"
}
]
},
{
"matcher": {
"id": "byName",
"options": "titan-db Discharge ETA"
},
"properties": [
{
"id": "unit",
"value": "s"
}
]
},
{
"matcher": {
"id": "byName",
"options": "tethys Discharge ETA"
},
"properties": [
{
"id": "unit",
"value": "s"
}
]
},
{
"matcher": {
"id": "byName",
"options": "titan-db Status"
},
"properties": [
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"0": {
"text": "\u26a1 Charging"
},
"1": {
"text": "\ud83d\udd0b Discharging"
}
}
}
]
}
]
},
{
"matcher": {
"id": "byName",
"options": "tethys Status"
},
"properties": [
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"0": {
"text": "\u26a1 Charging"
},
"1": {
"text": "\ud83d\udd0b Discharging"
}
}
}
]
}
]
}
]
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "name_and_value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
],
"description": "Per-UPS live snapshot: current draw, discharge ETA, and charging/discharging status."
},
{
"id": 41,
"type": "timeseries",
"title": "UPS History (Power Draw)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 8,
"y": 11
},
"targets": [
{
"refId": "A",
"expr": "((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-db\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-db\"}) / 100)",
"legendFormat": "titan-db"
},
{
"refId": "B",
"expr": "((hecate_ups_load_percent{job=\"hecate-power\",instance=\"titan-24\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\",instance=\"titan-24\"}) / 100)",
"legendFormat": "tethys"
},
{
"refId": "C",
"expr": "sum((hecate_ups_load_percent{job=\"hecate-power\"} * hecate_ups_power_nominal_watts{job=\"hecate-power\"}) / 100)",
"legendFormat": "combined"
}
],
"fieldConfig": {
"defaults": {
"unit": "watt"
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
},
"tooltip": {
"mode": "multi"
}
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 42,
"type": "stat",
"title": "Current Climate",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 16,
"y": 11
},
"targets": [
{
"refId": "A",
"expr": "max(atlas_climate_tent_temperature_celsius) or max(atlas_climate_temperature_celsius) or on() vector(0)",
"legendFormat": "Tent Temp (\u00b0C)",
"instant": true
},
{
"refId": "B",
"expr": "max(atlas_climate_tent_pressure_kpa) or max(atlas_climate_pressure_kpa) or on() vector(0)",
"legendFormat": "Tent Pressure (kPa)",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "rgba(115, 115, 115, 1)",
"value": null
},
{
"color": "green",
"value": 1
}
]
},
"unit": "none",
"custom": {
"displayMode": "auto"
},
"decimals": 2
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Tent Temp (\u00b0C)"
},
"properties": [
{
"id": "unit",
"value": "celsius"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Tent Pressure (kPa)"
},
"properties": [
{
"id": "unit",
"value": "none"
}
]
}
]
},
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "center",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "name_and_value"
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
],
"description": "Current tent temperature and pressure."
},
{
"id": 43,
"type": "timeseries",
"title": "Climate History",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 0,
"y": 16
},
"targets": [
{
"refId": "A",
"expr": "(atlas_climate_tent_temperature_celsius or atlas_climate_temperature_celsius)",
"legendFormat": "Temperature (\u00b0C)"
},
{
"refId": "B",
"expr": "(atlas_climate_tent_pressure_kpa or atlas_climate_pressure_kpa)",
"legendFormat": "Pressure (kPa)"
}
],
"fieldConfig": {
"defaults": {
"unit": "celsius"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Pressure (kPa)"
},
"properties": [
{
"id": "unit",
"value": "none"
},
{
"id": "custom.axisPlacement",
"value": "right"
},
{
"id": "custom.axisLabel",
"value": "kPa"
},
{
"id": "decimals",
"value": 2
}
]
}
]
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
},
"tooltip": {
"mode": "multi"
}
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 140,
"type": "stat",
"title": "Fan Activity",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 8,
"y": 16
},
"targets": [
{
"refId": "A",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"outlet\"}) or max(atlas_climate_fan_activity_level{position=\"outlet\"}) or on() vector(0)",
"legendFormat": "Outlet",
"instant": true
},
{
"refId": "B",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"inside_inlet\"}) or on() vector(0)",
"legendFormat": "Inside Inlet",
"instant": true
},
{
"refId": "C",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"}) or max(atlas_climate_fan_activity_level{position=\"outside_inlet\"}) or on() vector(0)",
"legendFormat": "Outside Inlet",
"instant": true
},
{
"refId": "D",
"expr": "max(atlas_climate_fan_activity_level{fan_group=\"interior\"}) or max(atlas_climate_fan_activity_level{position=\"interior\"}) or on() vector(0)",
"legendFormat": "Interior",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 7
},
{
"color": "red",
"value": 9
}
]
},
"unit": "none",
"custom": {
"displayMode": "auto"
},
@ -1362,7 +1589,7 @@ data:
"fields": "",
"values": false
},
"textMode": "value"
"textMode": "name_and_value"
},
"links": [
{
@ -1370,8 +1597,67 @@ data:
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 141,
"type": "timeseries",
"title": "Fan History (0-10)",
"datasource": {
"type": "prometheus",
"uid": "atlas-vm"
},
"gridPos": {
"h": 5,
"w": 8,
"x": 16,
"y": 16
},
"targets": [
{
"refId": "A",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outlet\"} or atlas_climate_fan_activity_level{position=\"outlet\"})",
"legendFormat": "Outlet"
},
{
"refId": "B",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"inside_inlet\"} or atlas_climate_fan_activity_level{position=\"inside_inlet\"})",
"legendFormat": "Inside Inlet"
},
{
"refId": "C",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"outside_inlet\"} or atlas_climate_fan_activity_level{position=\"outside_inlet\"})",
"legendFormat": "Outside Inlet"
},
{
"refId": "D",
"expr": "(atlas_climate_fan_activity_level{fan_group=\"interior\"} or atlas_climate_fan_activity_level{position=\"interior\"})",
"legendFormat": "Interior"
}
],
"description": "Future climate collector metric (will read 0/no data until instrumentation is live)."
"fieldConfig": {
"defaults": {
"unit": "none",
"max": 10
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "table",
"placement": "right"
},
"tooltip": {
"mode": "multi"
}
},
"links": [
{
"title": "Open atlas-power dashboard",
"url": "/d/atlas-power",
"targetBlank": true
}
]
},
{
"id": 44,
@ -1385,7 +1671,7 @@ data:
"h": 3,
"w": 6,
"x": 0,
"y": 14
"y": 21
},
"targets": [
{
@ -1461,7 +1747,7 @@ data:
"h": 3,
"w": 6,
"x": 6,
"y": 14
"y": 21
},
"targets": [
{
@ -1529,7 +1815,7 @@ data:
"h": 3,
"w": 6,
"x": 12,
"y": 14
"y": 21
},
"targets": [
{
@ -1606,7 +1892,7 @@ data:
"h": 3,
"w": 6,
"x": 18,
"y": 14
"y": 21
},
"targets": [
{
@ -1684,7 +1970,7 @@ data:
"h": 3,
"w": 4,
"x": 0,
"y": 17
"y": 24
},
"targets": [
{
@ -1751,7 +2037,7 @@ data:
"h": 3,
"w": 4,
"x": 8,
"y": 17
"y": 24
},
"targets": [
{
@ -1856,7 +2142,7 @@ data:
"h": 3,
"w": 4,
"x": 4,
"y": 17
"y": 24
},
"targets": [
{
@ -1932,7 +2218,7 @@ data:
"h": 3,
"w": 4,
"x": 12,
"y": 17
"y": 24
},
"targets": [
{
@ -2008,7 +2294,7 @@ data:
"h": 3,
"w": 4,
"x": 16,
"y": 17
"y": 24
},
"targets": [
{
@ -2071,7 +2357,7 @@ data:
"h": 3,
"w": 4,
"x": 20,
"y": 17
"y": 24
},
"targets": [
{
@ -2134,7 +2420,7 @@ data:
"h": 9,
"w": 8,
"x": 0,
"y": 20
"y": 27
},
"targets": [
{
@ -2203,7 +2489,7 @@ data:
"h": 9,
"w": 8,
"x": 8,
"y": 20
"y": 27
},
"targets": [
{
@ -2272,7 +2558,7 @@ data:
"h": 9,
"w": 8,
"x": 16,
"y": 20
"y": 27
},
"targets": [
{
@ -2341,7 +2627,7 @@ data:
"h": 12,
"w": 12,
"x": 0,
"y": 36
"y": 43
},
"targets": [
{
@ -2388,7 +2674,7 @@ data:
"h": 12,
"w": 12,
"x": 12,
"y": 36
"y": 43
},
"targets": [
{
@ -2435,7 +2721,7 @@ data:
"h": 10,
"w": 12,
"x": 0,
"y": 48
"y": 55
},
"targets": [
{
@ -2472,7 +2758,7 @@ data:
"h": 10,
"w": 12,
"x": 12,
"y": 48
"y": 55
},
"targets": [
{
@ -2509,7 +2795,7 @@ data:
"h": 10,
"w": 12,
"x": 0,
"y": 58
"y": 65
},
"targets": [
{
@ -2560,7 +2846,7 @@ data:
"h": 10,
"w": 12,
"x": 12,
"y": 58
"y": 65
},
"targets": [
{
@ -2641,7 +2927,7 @@ data:
"h": 7,
"w": 8,
"x": 0,
"y": 29
"y": 36
},
"targets": [
{
@ -2685,7 +2971,7 @@ data:
"h": 7,
"w": 8,
"x": 8,
"y": 29
"y": 36
},
"targets": [
{
@ -2729,7 +3015,7 @@ data:
"h": 7,
"w": 8,
"x": 16,
"y": 29
"y": 36
},
"targets": [
{
@ -2773,7 +3059,7 @@ data:
"h": 16,
"w": 12,
"x": 0,
"y": 68
"y": 75
},
"targets": [
{
@ -2821,7 +3107,7 @@ data:
"h": 16,
"w": 12,
"x": 12,
"y": 68
"y": 75
},
"targets": [
{