diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 667fe34..b896e93 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.3 +version: 0.2.4 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/helm/dashboards/econet-exporter.json b/helm/dashboards/econet-exporter.json index dcd2a2c..9c64ebf 100644 --- a/helm/dashboards/econet-exporter.json +++ b/helm/dashboards/econet-exporter.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": { "type": "grafana", "uid": "-- Grafana --" }, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -19,7 +22,11 @@ "liveNow": false, "refresh": "30s", "schemaVersion": 39, - "tags": ["econet", "rheem", "water-heater"], + "tags": [ + "econet", + "rheem", + "water-heater" + ], "templating": { "list": [ { @@ -37,7 +44,10 @@ }, { "current": {}, - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "definition": "label_values(econet_device_info, econet_friendly_name)", "hide": 0, "includeAll": true, @@ -56,7 +66,10 @@ } ] }, - "time": { "from": "now-24h", "to": "now" }, + "time": { + "from": "now-24h", + "to": "now" + }, "timepicker": {}, "timezone": "", "title": "EcoNet Water Heater", @@ -66,45 +79,93 @@ "panels": [ { "collapsed": false, - "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, "id": 1, "title": "Overview", "type": "row", "panels": [] }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "thresholds" }, + "color": { + "mode": "thresholds" + }, "mappings": [ - { "options": { "0": { "color": "red", "index": 1, "text": "Offline" } }, "type": "value" }, - { "options": { "1": { "color": "green", "index": 0, "text": "Online" } }, "type": "value" } + { + "options": { + "0": { + "color": "red", + "index": 1, + "text": "Offline" + } + }, + "type": "value" + }, + { + "options": { + "1": { + "color": "green", + "index": 0, + "text": "Online" + } + }, + "type": "value" + } ], "thresholds": { "mode": "absolute", "steps": [ - { "color": "red", "value": null }, - { "color": "green", "value": 1 } + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 1 + } ] } }, "overrides": [] }, - "gridPos": { "h": 4, "w": 4, "x": 0, "y": 1 }, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 1 + }, "id": 2, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, "textMode": "auto" }, "pluginVersion": "11.0.0", "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_connected{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", @@ -115,38 +176,81 @@ "type": "stat" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "thresholds" }, + "color": { + "mode": "thresholds" + }, "mappings": [ - { "options": { "0": { "color": "blue", "index": 1, "text": "Idle" } }, "type": "value" }, - { "options": { "1": { "color": "orange", "index": 0, "text": "Heating" } }, "type": "value" } + { + "options": { + "0": { + "color": "blue", + "index": 1, + "text": "Idle" + } + }, + "type": "value" + }, + { + "options": { + "1": { + "color": "orange", + "index": 0, + "text": "Heating" + } + }, + "type": "value" + } ], "thresholds": { "mode": "absolute", "steps": [ - { "color": "blue", "value": null }, - { "color": "orange", "value": 1 } + { + "color": "blue", + "value": null + }, + { + "color": "orange", + "value": 1 + } ] } }, "overrides": [] }, - "gridPos": { "h": 4, "w": 4, "x": 4, "y": 1 }, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 1 + }, "id": 3, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, "textMode": "value_and_name" }, "pluginVersion": "11.0.0", "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_running{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", @@ -157,29 +261,57 @@ "type": "stat" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "fixed", "fixedColor": "purple" }, + "color": { + "mode": "fixed", + "fixedColor": "purple" + }, "mappings": [], - "thresholds": { "mode": "absolute", "steps": [{ "color": "purple", "value": null }] } + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "purple", + "value": null + } + ] + } }, "overrides": [] }, - "gridPos": { "h": 4, "w": 4, "x": 8, "y": 1 }, + "gridPos": { + "h": 4, + "w": 4, + "x": 8, + "y": 1 + }, "id": 4, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, "textMode": "name" }, "pluginVersion": "11.0.0", "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name, econet_mode) (econet_mode{econet_friendly_name=~\"$device\"}) == 1", "instant": true, "legendFormat": "{{econet_mode}}", @@ -190,37 +322,65 @@ "type": "stat" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "thresholds" }, + "color": { + "mode": "thresholds" + }, "mappings": [], "unit": "fahrenheit", "thresholds": { "mode": "absolute", "steps": [ - { "color": "blue", "value": null }, - { "color": "green", "value": 110 }, - { "color": "orange", "value": 130 } + { + "color": "blue", + "value": null + }, + { + "color": "green", + "value": 110 + }, + { + "color": "orange", + "value": 130 + } ] } }, "overrides": [] }, - "gridPos": { "h": 4, "w": 4, "x": 12, "y": 1 }, + "gridPos": { + "h": 4, + "w": 4, + "x": 12, + "y": 1 + }, "id": 5, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, "textMode": "auto" }, "pluginVersion": "11.0.0", "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "avg by (econet_friendly_name) (econet_setpoint_fahrenheit{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", @@ -231,10 +391,15 @@ "type": "stat" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "thresholds" }, + "color": { + "mode": "thresholds" + }, "mappings": [], "max": 100, "min": 0, @@ -242,26 +407,49 @@ "thresholds": { "mode": "absolute", "steps": [ - { "color": "red", "value": null }, - { "color": "orange", "value": 25 }, - { "color": "green", "value": 60 } + { + "color": "red", + "value": null + }, + { + "color": "orange", + "value": 25 + }, + { + "color": "green", + "value": 60 + } ] } }, "overrides": [] }, - "gridPos": { "h": 4, "w": 4, "x": 16, "y": 1 }, + "gridPos": { + "h": 4, + "w": 4, + "x": 16, + "y": 1 + }, "id": 6, "options": { "orientation": "auto", - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, "showThresholdLabels": false, "showThresholdMarkers": true }, "pluginVersion": "11.0.0", "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "avg by (econet_friendly_name) (econet_hot_water_availability_percent{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", @@ -272,36 +460,61 @@ "type": "gauge" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "thresholds" }, + "color": { + "mode": "thresholds" + }, "mappings": [], "unit": "short", "thresholds": { "mode": "absolute", "steps": [ - { "color": "green", "value": null }, - { "color": "red", "value": 1 } + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 1 + } ] } }, "overrides": [] }, - "gridPos": { "h": 4, "w": 4, "x": 20, "y": 1 }, + "gridPos": { + "h": 4, + "w": 4, + "x": 20, + "y": 1 + }, "id": 7, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, "textMode": "auto" }, "pluginVersion": "11.0.0", "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_alert_count{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", @@ -313,17 +526,27 @@ }, { "collapsed": false, - "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 5 + }, "id": 10, "title": "Temperature & Hot Water", "type": "row", "panels": [] }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "palette-classic" }, + "color": { + "mode": "palette-classic" + }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", @@ -333,51 +556,130 @@ "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", - "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, "lineInterpolation": "stepAfter", "lineWidth": 2, "pointSize": 5, - "scaleDistribution": { "type": "linear" }, + "scaleDistribution": { + "type": "linear" + }, "showPoints": "never", "spanNulls": true, - "stacking": { "group": "A", "mode": "none" }, - "thresholdsStyle": { "mode": "off" } + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "unit": "fahrenheit" }, "overrides": [ { - "matcher": { "id": "byRegexp", "options": ".*min.*" }, - "properties": [{ "id": "custom.lineStyle", "value": { "dash": [10, 10], "fill": "dash" } }, { "id": "color", "value": { "mode": "fixed", "fixedColor": "blue" } }] + "matcher": { + "id": "byRegexp", + "options": ".*min.*" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + }, + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "blue" + } + } + ] }, { - "matcher": { "id": "byRegexp", "options": ".*max.*" }, - "properties": [{ "id": "custom.lineStyle", "value": { "dash": [10, 10], "fill": "dash" } }, { "id": "color", "value": { "mode": "fixed", "fixedColor": "red" } }] + "matcher": { + "id": "byRegexp", + "options": ".*max.*" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + }, + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "red" + } + } + ] } ] }, - "gridPos": { "h": 8, "w": 12, "x": 0, "y": 6 }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 6 + }, "id": 11, "options": { - "legend": { "calcs": ["lastNotNull", "min", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, - "tooltip": { "mode": "multi", "sort": "desc" } + "legend": { + "calcs": [ + "lastNotNull", + "min", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "avg by (econet_friendly_name) (econet_setpoint_fahrenheit{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}} setpoint", "refId": "A" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "min by (econet_friendly_name) (econet_setpoint_min_fahrenheit{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}} min", "refId": "B" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_setpoint_max_fahrenheit{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}} max", "refId": "C" @@ -387,10 +689,15 @@ "type": "timeseries" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "palette-classic" }, + "color": { + "mode": "palette-classic" + }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", @@ -400,15 +707,26 @@ "drawStyle": "line", "fillOpacity": 20, "gradientMode": "opacity", - "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, "lineInterpolation": "smooth", "lineWidth": 2, "pointSize": 5, - "scaleDistribution": { "type": "linear" }, + "scaleDistribution": { + "type": "linear" + }, "showPoints": "never", "spanNulls": true, - "stacking": { "group": "A", "mode": "none" }, - "thresholdsStyle": { "mode": "off" } + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "max": 100, @@ -417,15 +735,34 @@ }, "overrides": [] }, - "gridPos": { "h": 8, "w": 12, "x": 12, "y": 6 }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 6 + }, "id": 12, "options": { - "legend": { "calcs": ["lastNotNull", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true }, - "tooltip": { "mode": "multi", "sort": "desc" } + "legend": { + "calcs": [ + "lastNotNull", + "min" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "avg by (econet_friendly_name) (econet_hot_water_availability_percent{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" @@ -436,17 +773,27 @@ }, { "collapsed": false, - "gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 14 + }, "id": 20, "title": "Energy & Water", "type": "row", "panels": [] }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "palette-classic" }, + "color": { + "mode": "palette-classic" + }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", @@ -456,30 +803,60 @@ "drawStyle": "bars", "fillOpacity": 60, "gradientMode": "none", - "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, - "scaleDistribution": { "type": "linear" }, + "scaleDistribution": { + "type": "linear" + }, "showPoints": "never", "spanNulls": true, - "stacking": { "group": "A", "mode": "none" }, - "thresholdsStyle": { "mode": "off" } + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "unit": "kwatth" }, "overrides": [] }, - "gridPos": { "h": 8, "w": 8, "x": 0, "y": 15 }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 15 + }, "id": 21, "options": { - "legend": { "calcs": ["lastNotNull", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, - "tooltip": { "mode": "multi", "sort": "desc" } + "legend": { + "calcs": [ + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_energy_usage_kwh * on(econet_serial) group_left(econet_friendly_name) econet_device_info{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" @@ -489,10 +866,15 @@ "type": "timeseries" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "palette-classic" }, + "color": { + "mode": "palette-classic" + }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", @@ -502,30 +884,60 @@ "drawStyle": "bars", "fillOpacity": 60, "gradientMode": "none", - "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, - "scaleDistribution": { "type": "linear" }, + "scaleDistribution": { + "type": "linear" + }, "showPoints": "never", "spanNulls": true, - "stacking": { "group": "A", "mode": "none" }, - "thresholdsStyle": { "mode": "off" } + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "unit": "currencyUSD" }, "overrides": [] }, - "gridPos": { "h": 8, "w": 8, "x": 8, "y": 15 }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 15 + }, "id": 22, "options": { - "legend": { "calcs": ["lastNotNull", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, - "tooltip": { "mode": "multi", "sort": "desc" } + "legend": { + "calcs": [ + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_energy_cost_dollars * on(econet_serial) group_left(econet_friendly_name) econet_device_info{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" @@ -535,10 +947,15 @@ "type": "timeseries" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "palette-classic" }, + "color": { + "mode": "palette-classic" + }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", @@ -548,30 +965,60 @@ "drawStyle": "bars", "fillOpacity": 60, "gradientMode": "none", - "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, - "scaleDistribution": { "type": "linear" }, + "scaleDistribution": { + "type": "linear" + }, "showPoints": "never", "spanNulls": true, - "stacking": { "group": "A", "mode": "none" }, - "thresholdsStyle": { "mode": "off" } + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "unit": "volgal" }, "overrides": [] }, - "gridPos": { "h": 8, "w": 8, "x": 16, "y": 15 }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 15 + }, "id": 23, "options": { - "legend": { "calcs": ["lastNotNull", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, - "tooltip": { "mode": "multi", "sort": "desc" } + "legend": { + "calcs": [ + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_water_usage_gallons * on(econet_serial) group_left(econet_friendly_name) econet_device_info{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" @@ -582,45 +1029,97 @@ }, { "collapsed": false, - "gridPos": { "h": 1, "w": 24, "x": 0, "y": 23 }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 23 + }, "id": 30, "title": "Device Health", "type": "row", "panels": [] }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "thresholds" }, - "custom": { "fillOpacity": 80, "lineWidth": 0 }, + "color": { + "mode": "thresholds" + }, + "custom": { + "fillOpacity": 80, + "lineWidth": 0 + }, "mappings": [ - { "options": { "0": { "color": "blue", "index": 1, "text": "Idle" } }, "type": "value" }, - { "options": { "1": { "color": "orange", "index": 0, "text": "Heating" } }, "type": "value" } + { + "options": { + "0": { + "color": "blue", + "index": 1, + "text": "Idle" + } + }, + "type": "value" + }, + { + "options": { + "1": { + "color": "orange", + "index": 0, + "text": "Heating" + } + }, + "type": "value" + } ], "thresholds": { "mode": "absolute", "steps": [ - { "color": "blue", "value": null }, - { "color": "orange", "value": 1 } + { + "color": "blue", + "value": null + }, + { + "color": "orange", + "value": 1 + } ] } }, "overrides": [] }, - "gridPos": { "h": 8, "w": 12, "x": 0, "y": 24 }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 24 + }, "id": 31, "options": { "alignValue": "left", - "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, "mergeValues": true, "rowHeight": 0.9, "showValue": "auto", - "tooltip": { "mode": "single", "sort": "none" } + "tooltip": { + "mode": "single", + "sort": "none" + } }, "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "max by (econet_friendly_name) (econet_running{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" @@ -630,10 +1129,15 @@ "type": "state-timeline" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "palette-classic" }, + "color": { + "mode": "palette-classic" + }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", @@ -643,30 +1147,59 @@ "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", - "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, "lineInterpolation": "linear", "lineWidth": 2, "pointSize": 5, - "scaleDistribution": { "type": "linear" }, + "scaleDistribution": { + "type": "linear" + }, "showPoints": "never", "spanNulls": true, - "stacking": { "group": "A", "mode": "none" }, - "thresholdsStyle": { "mode": "off" } + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "unit": "dB" }, "overrides": [] }, - "gridPos": { "h": 8, "w": 6, "x": 12, "y": 24 }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 24 + }, "id": 32, "options": { - "legend": { "calcs": ["lastNotNull"], "displayMode": "list", "placement": "bottom", "showLegend": true }, - "tooltip": { "mode": "multi", "sort": "desc" } + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "avg by (econet_friendly_name) (econet_wifi_signal_db{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" @@ -676,27 +1209,61 @@ "type": "timeseries" }, { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "fieldConfig": { "defaults": { - "color": { "mode": "thresholds" }, - "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, "mappings": [], - "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } }, "overrides": [] }, - "gridPos": { "h": 8, "w": 6, "x": 18, "y": 24 }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 24 + }, "id": 33, "options": { "cellHeight": "sm", - "footer": { "countRows": false, "fields": "", "reducer": ["sum"], "show": false }, + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, "showHeader": true }, "pluginVersion": "11.0.0", "targets": [ { - "datasource": { "type": "prometheus", "uid": "${datasource}" }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "expr": "econet_device_info{econet_friendly_name=~\"$device\"}", "format": "table", "instant": true, @@ -708,7 +1275,13 @@ { "id": "organize", "options": { - "excludeByName": { "Time": true, "Value": true, "__name__": true, "job": true, "instance": true }, + "excludeByName": { + "Time": true, + "Value": true, + "__name__": true, + "job": true, + "instance": true + }, "indexByName": {}, "renameByName": { "econet_friendly_name": "Name", @@ -719,6 +1292,10 @@ "econet_mode": "Mode" } } + }, + { + "id": "transpose", + "options": {} } ], "type": "table"