From 28756ceda83825ca8b4a653283ec89ac5ae4fa7b Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Mon, 13 Apr 2026 06:22:41 -0300 Subject: [PATCH] monitoring: align ups and climate cards to postgres two-stat pattern --- scripts/dashboards_render_atlas.py | 146 ++--- .../monitoring/dashboards/atlas-overview.json | 508 +++--------------- .../grafana-dashboard-overview.yaml | 508 +++--------------- 3 files changed, 196 insertions(+), 966 deletions(-) diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index e6f63eb7..367e28f2 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -1157,96 +1157,6 @@ def canvas_metric_grid_panel( return panel -def overview_two_value_panel( - panel_id, - title, - grid, - *, - left_target, - right_target, - field_overrides=None, - links=None, - description=None, - thresholds=None, -): - """Return a dedicated two-value overview canvas panel.""" - - top = 10 - size = 30 - width = 146 - height = 42 - left_x = 12 - right_x = 168 - - targets = [ - {"refId": "A", "expr": left_target["expr"], "legendFormat": left_target["legend"], "instant": True}, - {"refId": "B", "expr": right_target["expr"], "legendFormat": right_target["legend"], "instant": True}, - ] - - def metric_element(name, field, color_field, left): - return { - "type": "metric-value", - "name": name, - "constraint": {"horizontal": "left", "vertical": "top"}, - "placement": {"left": left, "top": top, "width": width, "height": height}, - "background": {"color": {"fixed": "transparent"}}, - "border": {"color": {"fixed": "transparent"}}, - "config": { - "align": "center", - "valign": "middle", - "size": size, - "color": {"field": color_field, "fixed": "text"}, - "text": {"mode": "field", "field": field, "fixed": ""}, - }, - "links": [], - } - - panel = { - "id": panel_id, - "type": "canvas", - "title": title, - "datasource": PROM_DS, - "gridPos": grid, - "targets": targets, - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": thresholds - or { - "mode": "absolute", - "steps": [ - {"color": "rgba(115, 115, 115, 1)", "value": None}, - {"color": "green", "value": 1}, - ], - }, - "color": {"mode": "thresholds"}, - }, - "overrides": field_overrides or [], - }, - "options": { - "inlineEditing": False, - "showAdvancedTypes": True, - "panZoom": False, - "infinitePan": False, - "root": { - "type": "frame", - "name": f"{title} frame", - "elements": [ - metric_element("Left value", left_target["legend"], left_target["legend"], left_x), - metric_element("Right value", right_target["legend"], right_target["legend"], right_x), - ], - "background": {"color": {"fixed": "transparent"}}, - "border": {"color": {"fixed": "transparent"}}, - }, - }, - } - if links: - panel["links"] = links - if description: - panel["description"] = description - return panel - - def table_panel( panel_id, title, @@ -1833,12 +1743,20 @@ def build_overview(): ], } panels.append( - overview_two_value_panel( + stat_panel( 40, f"{ANANKE_UPS_DB_NAME} UPS Current", + ( + 'label_replace(' + + ANANKE_UPS_DRAW_WATTS_DB + + ', "metric", "Draw", "__name__", ".*") or label_replace(' + + ANANKE_UPS_RUNTIME_DB + + ', "metric", "Runtime", "__name__", ".*")' + ), {"h": 3, "w": 6, "x": 0, "y": 7}, - left_target={"expr": ANANKE_UPS_DRAW_WATTS_DB, "legend": "Draw"}, - right_target={"expr": ANANKE_UPS_RUNTIME_DB, "legend": "Runtime"}, + text_mode="name_and_value", + legend="{{metric}}", + instant=True, field_overrides=[ {"matcher": {"id": "byName", "options": "Draw"}, "properties": [{"id": "unit", "value": "watt"}]}, {"matcher": {"id": "byName", "options": "Runtime"}, "properties": [{"id": "unit", "value": "s"}]}, @@ -1847,12 +1765,20 @@ def build_overview(): ) ) panels.append( - overview_two_value_panel( + stat_panel( 144, f"{ANANKE_UPS_TETHYS_NAME} UPS Current", + ( + 'label_replace(' + + ANANKE_UPS_DRAW_WATTS_TETHYS + + ', "metric", "Draw", "__name__", ".*") or label_replace(' + + ANANKE_UPS_RUNTIME_TETHYS + + ', "metric", "Runtime", "__name__", ".*")' + ), {"h": 3, "w": 6, "x": 0, "y": 10}, - left_target={"expr": ANANKE_UPS_DRAW_WATTS_TETHYS, "legend": "Draw"}, - right_target={"expr": ANANKE_UPS_RUNTIME_TETHYS, "legend": "Runtime"}, + text_mode="name_and_value", + legend="{{metric}}", + instant=True, field_overrides=[ {"matcher": {"id": "byName", "options": "Draw"}, "properties": [{"id": "unit", "value": "watt"}]}, {"matcher": {"id": "byName", "options": "Runtime"}, "properties": [{"id": "unit", "value": "s"}]}, @@ -1878,12 +1804,20 @@ def build_overview(): ) ) panels.append( - overview_two_value_panel( + stat_panel( 42, "Current Enclosure Temperature", + ( + 'label_replace(' + + CLIMATE_TEMP_MAX + + ', "metric", "°C", "__name__", ".*") or label_replace(' + + CLIMATE_TEMP_FAHRENHEIT_MAX + + ', "metric", "°F", "__name__", ".*")' + ), {"h": 3, "w": 6, "x": 0, "y": 13}, - left_target={"expr": CLIMATE_TEMP_MAX, "legend": "°C"}, - right_target={"expr": CLIMATE_TEMP_FAHRENHEIT_MAX, "legend": "°F"}, + text_mode="name_and_value", + legend="{{metric}}", + instant=True, field_overrides=[ {"matcher": {"id": "byName", "options": "°C"}, "properties": [{"id": "unit", "value": "celsius"}]}, {"matcher": {"id": "byName", "options": "°F"}, "properties": [{"id": "unit", "value": "fahrenheit"}]}, @@ -1892,12 +1826,20 @@ def build_overview(): ) ) panels.append( - overview_two_value_panel( + stat_panel( 143, "Current Enclosure Climate", + ( + 'label_replace(' + + CLIMATE_HUMIDITY_MAX + + ', "metric", "%RH", "__name__", ".*") or label_replace(' + + CLIMATE_PRESSURE_CURRENT + + ', "metric", "kPa", "__name__", ".*")' + ), {"h": 3, "w": 6, "x": 0, "y": 16}, - left_target={"expr": CLIMATE_HUMIDITY_MAX, "legend": "%RH"}, - right_target={"expr": CLIMATE_PRESSURE_CURRENT, "legend": "kPa"}, + text_mode="name_and_value", + legend="{{metric}}", + instant=True, field_overrides=[ {"matcher": {"id": "byName", "options": "%RH"}, "properties": [{"id": "unit", "value": "suffix:%RH"}]}, {"matcher": {"id": "byName", "options": "kPa"}, "properties": [{"id": "unit", "value": "suffix:kPa"}]}, diff --git a/services/monitoring/dashboards/atlas-overview.json b/services/monitoring/dashboards/atlas-overview.json index 8841629b..191714e5 100644 --- a/services/monitoring/dashboards/atlas-overview.json +++ b/services/monitoring/dashboards/atlas-overview.json @@ -1072,7 +1072,7 @@ }, { "id": 40, - "type": "canvas", + "type": "stat", "title": "Pyrphoros UPS Current", "datasource": { "type": "prometheus", @@ -1086,20 +1086,17 @@ }, "targets": [ { + "expr": "label_replace(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), \"metric\", \"Draw\", \"__name__\", \".*\") or label_replace(max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0), \"metric\", \"Runtime\", \"__name__\", \".*\")", "refId": "A", - "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": "Draw", - "instant": true - }, - { - "refId": "B", - "expr": "max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0)", - "legendFormat": "Runtime", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1114,8 +1111,9 @@ } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1146,104 +1144,17 @@ ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Pyrphoros UPS Current frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Draw", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Draw", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Runtime", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Runtime", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ { @@ -1255,7 +1166,7 @@ }, { "id": 144, - "type": "canvas", + "type": "stat", "title": "Statera UPS Current", "datasource": { "type": "prometheus", @@ -1269,20 +1180,17 @@ }, "targets": [ { + "expr": "label_replace(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), \"metric\", \"Draw\", \"__name__\", \".*\") or label_replace(max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0), \"metric\", \"Runtime\", \"__name__\", \".*\")", "refId": "A", - "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": "Draw", - "instant": true - }, - { - "refId": "B", - "expr": "max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0)", - "legendFormat": "Runtime", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1297,8 +1205,9 @@ } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1329,104 +1238,17 @@ ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Statera UPS Current frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Draw", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Draw", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Runtime", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Runtime", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ { @@ -1492,7 +1314,7 @@ }, { "id": 42, - "type": "canvas", + "type": "stat", "title": "Current Enclosure Temperature", "datasource": { "type": "prometheus", @@ -1506,20 +1328,17 @@ }, "targets": [ { + "expr": "label_replace(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) or on() vector(0), \"metric\", \"\u00b0C\", \"__name__\", \".*\") or label_replace(max((max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) * 9 / 5 + 32) or on() vector(0), \"metric\", \"\u00b0F\", \"__name__\", \".*\")", "refId": "A", - "expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) or on() vector(0)", - "legendFormat": "\u00b0C", - "instant": true - }, - { - "refId": "B", - "expr": "max((max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) * 9 / 5 + 32) or on() vector(0)", - "legendFormat": "\u00b0F", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1534,8 +1353,9 @@ } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1566,104 +1386,17 @@ ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Current Enclosure Temperature frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "\u00b0C", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "\u00b0C", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "\u00b0F", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "\u00b0F", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ { @@ -1675,7 +1408,7 @@ }, { "id": 143, - "type": "canvas", + "type": "stat", "title": "Current Enclosure Climate", "datasource": { "type": "prometheus", @@ -1689,20 +1422,17 @@ }, "targets": [ { + "expr": "label_replace(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent != 0)) or on() vector(0), \"metric\", \"%RH\", \"__name__\", \".*\") or label_replace(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa != 0)) or on() vector(0), \"metric\", \"kPa\", \"__name__\", \".*\")", "refId": "A", - "expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent != 0)) or on() vector(0)", - "legendFormat": "%RH", - "instant": true - }, - { - "refId": "B", - "expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa != 0)) or on() vector(0)", - "legendFormat": "kPa", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1717,8 +1447,9 @@ } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1749,104 +1480,17 @@ ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Current Enclosure Climate frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "%RH", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "%RH", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "kPa", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "kPa", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ { diff --git a/services/monitoring/grafana-dashboard-overview.yaml b/services/monitoring/grafana-dashboard-overview.yaml index 9d82f43f..5a416496 100644 --- a/services/monitoring/grafana-dashboard-overview.yaml +++ b/services/monitoring/grafana-dashboard-overview.yaml @@ -1081,7 +1081,7 @@ data: }, { "id": 40, - "type": "canvas", + "type": "stat", "title": "Pyrphoros UPS Current", "datasource": { "type": "prometheus", @@ -1095,20 +1095,17 @@ data: }, "targets": [ { + "expr": "label_replace(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), \"metric\", \"Draw\", \"__name__\", \".*\") or label_replace(max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0), \"metric\", \"Runtime\", \"__name__\", \".*\")", "refId": "A", - "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": "Draw", - "instant": true - }, - { - "refId": "B", - "expr": "max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0)", - "legendFormat": "Runtime", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1123,8 +1120,9 @@ data: } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1155,104 +1153,17 @@ data: ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Pyrphoros UPS Current frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Draw", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Draw", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Runtime", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Runtime", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ { @@ -1264,7 +1175,7 @@ data: }, { "id": 144, - "type": "canvas", + "type": "stat", "title": "Statera UPS Current", "datasource": { "type": "prometheus", @@ -1278,20 +1189,17 @@ data: }, "targets": [ { + "expr": "label_replace(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), \"metric\", \"Draw\", \"__name__\", \".*\") or label_replace(max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0), \"metric\", \"Runtime\", \"__name__\", \".*\")", "refId": "A", - "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": "Draw", - "instant": true - }, - { - "refId": "B", - "expr": "max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0)", - "legendFormat": "Runtime", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1306,8 +1214,9 @@ data: } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1338,104 +1247,17 @@ data: ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Statera UPS Current frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Draw", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Draw", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "Runtime", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "Runtime", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ { @@ -1501,7 +1323,7 @@ data: }, { "id": 42, - "type": "canvas", + "type": "stat", "title": "Current Enclosure Temperature", "datasource": { "type": "prometheus", @@ -1515,20 +1337,17 @@ data: }, "targets": [ { + "expr": "label_replace(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) or on() vector(0), \"metric\", \"\u00b0C\", \"__name__\", \".*\") or label_replace(max((max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) * 9 / 5 + 32) or on() vector(0), \"metric\", \"\u00b0F\", \"__name__\", \".*\")", "refId": "A", - "expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) or on() vector(0)", - "legendFormat": "\u00b0C", - "instant": true - }, - { - "refId": "B", - "expr": "max((max without (job,instance,pod,service,endpoint,namespace) (typhon_temperature_celsius != 0)) * 9 / 5 + 32) or on() vector(0)", - "legendFormat": "\u00b0F", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1543,8 +1362,9 @@ data: } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1575,104 +1395,17 @@ data: ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Current Enclosure Temperature frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "\u00b0C", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "\u00b0C", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "\u00b0F", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "\u00b0F", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ { @@ -1684,7 +1417,7 @@ data: }, { "id": 143, - "type": "canvas", + "type": "stat", "title": "Current Enclosure Climate", "datasource": { "type": "prometheus", @@ -1698,20 +1431,17 @@ data: }, "targets": [ { + "expr": "label_replace(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent != 0)) or on() vector(0), \"metric\", \"%RH\", \"__name__\", \".*\") or label_replace(max(max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa != 0)) or on() vector(0), \"metric\", \"kPa\", \"__name__\", \".*\")", "refId": "A", - "expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_relative_humidity_percent != 0)) or on() vector(0)", - "legendFormat": "%RH", - "instant": true - }, - { - "refId": "B", - "expr": "max(max without (job,instance,pod,service,endpoint,namespace) (typhon_vpd_kpa != 0)) or on() vector(0)", - "legendFormat": "kPa", + "legendFormat": "{{metric}}", "instant": true } ], "fieldConfig": { "defaults": { + "color": { + "mode": "thresholds" + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -1726,8 +1456,9 @@ data: } ] }, - "color": { - "mode": "thresholds" + "unit": "none", + "custom": { + "displayMode": "auto" } }, "overrides": [ @@ -1758,104 +1489,17 @@ data: ] }, "options": { - "inlineEditing": false, - "showAdvancedTypes": true, - "panZoom": false, - "infinitePan": false, - "root": { - "type": "frame", - "name": "Current Enclosure Climate frame", - "elements": [ - { - "type": "metric-value", - "name": "Left value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 12, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "%RH", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "%RH", - "fixed": "" - } - }, - "links": [] - }, - { - "type": "metric-value", - "name": "Right value", - "constraint": { - "horizontal": "left", - "vertical": "top" - }, - "placement": { - "left": 168, - "top": 10, - "width": 146, - "height": 42 - }, - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - }, - "config": { - "align": "center", - "valign": "middle", - "size": 30, - "color": { - "field": "kPa", - "fixed": "text" - }, - "text": { - "mode": "field", - "field": "kPa", - "fixed": "" - } - }, - "links": [] - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "background": { - "color": { - "fixed": "transparent" - } - }, - "border": { - "color": { - "fixed": "transparent" - } - } - } + "fields": "", + "values": false + }, + "textMode": "name_and_value" }, "links": [ {