From 0408d207c107aeda7893798e5f6426f338b8f220 Mon Sep 17 00:00:00 2001 From: mxssl Date: Tue, 20 Dec 2022 17:57:07 +0300 Subject: [PATCH] add grafana dshackle dashboard for providers --- dashboard/README.md | 9 + dashboard/alerts/dshackle.yml | 1 - dashboard/dshackle.json | 2021 ++++++++++----------------------- 3 files changed, 639 insertions(+), 1392 deletions(-) create mode 100644 dashboard/README.md diff --git a/dashboard/README.md b/dashboard/README.md new file mode 100644 index 00000000..15f5c220 --- /dev/null +++ b/dashboard/README.md @@ -0,0 +1,9 @@ +# Grafana dshackle dashboard + +## How to add this dashboard to your Grafana instance + +1. Copy the content of the `dshackle.json` file +2. Go to `Dashboards` -> `Import` +3. Use the `Import via panel json` option + +Additional monitoring docs are available in the [dshackle repo](https://github.com/p2p-org/dshackle/blob/master/docs/06-monitoring.adoc). diff --git a/dashboard/alerts/dshackle.yml b/dashboard/alerts/dshackle.yml index 02be3142..4cf625e9 100644 --- a/dashboard/alerts/dshackle.yml +++ b/dashboard/alerts/dshackle.yml @@ -58,4 +58,3 @@ groups: severity: critical annotations: summary: "ETH Node is not syncing on host (instance {{ $labels.instance }})" - diff --git a/dashboard/dshackle.json b/dashboard/dshackle.json index 52dd2d44..0b89ecfd 100644 --- a/dashboard/dshackle.json +++ b/dashboard/dshackle.json @@ -1,9 +1,61 @@ { + "__inputs": [ + { + "name": "DS_PROMETHEUS", + "label": "prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__elements": {}, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "9.1.5" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph (old)", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], "annotations": { "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -21,12 +73,15 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 4, - "iteration": 1647500182961, + "id": null, "links": [], "liveNow": false, "panels": [ { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "gridPos": { "h": 1, "w": 24, @@ -36,10 +91,22 @@ "id": 4, "panels": [], "repeat": "chain", + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "refId": "A" + } + ], "title": "CHAIN: $chain", "type": "row" }, { + "datasource": { + "uid": "$datasource" + }, "fieldConfig": { "defaults": { "color": { @@ -207,9 +274,12 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "8.3.5", + "pluginVersion": "9.1.5", "targets": [ { + "datasource": { + "uid": "$datasource" + }, "exemplar": true, "expr": "dshackle_upstreams_availability{instance=~\"$instance\", chain=~\"$chain\"}", "format": "time_series", @@ -223,6 +293,9 @@ "type": "stat" }, { + "datasource": { + "uid": "$datasource" + }, "fieldConfig": { "defaults": { "color": { @@ -231,7 +304,8 @@ "custom": { "align": "center", "displayMode": "auto", - "filterable": false + "filterable": false, + "inspect": false }, "mappings": [], "thresholds": { @@ -267,9 +341,12 @@ }, "showHeader": true }, - "pluginVersion": "8.3.5", + "pluginVersion": "9.1.5", "targets": [ { + "datasource": { + "uid": "$datasource" + }, "exemplar": true, "expr": "dshackle_upstreams_lag{instance=~\"$instance\", chain=~\"$chain\"}", "format": "table", @@ -303,1245 +380,667 @@ "type": "table" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, "fieldConfig": { "defaults": { - "unit": "reqps" + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "left", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { - "h": 9, + "h": 12, "w": 12, "x": 0, "y": 9 }, - "hiddenSeries": false, - "id": 42, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "rate(dshackle_request_jsonrpc_request_total{chain=~\"$chain\", instance=~\"$instance\"}[1m])", - "interval": "", - "legendFormat": "Total", - "refId": "A" - }, - { - "exemplar": true, - "expr": "rate(dshackle_request_jsonrpc_err_total{instance=~\"$instance\", chain=~\"$chain\"}[1m])", - "hide": false, - "interval": "", - "legendFormat": "Failed", - "refId": "B" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC total request / failed requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "reqps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "unit": "reqps" - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 9 - }, - "hiddenSeries": false, "id": 96, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [ + "mean", + "max", + "min" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "9.1.2", "targets": [ { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", "exemplar": true, - "expr": "rate(dshackle_request_grpc_request_total{chain=~\"$chain\", instance=~\"$instance\"}[1m])", + "expr": "rate(dshackle_request_grpc_request_total{chain=~\"$chain\", instance=~\"$instance\"}[$__rate_interval])", "interval": "", - "legendFormat": "Total", + "legendFormat": "{{type}} ok", + "range": true, "refId": "A" }, { + "datasource": { + "uid": "$datasource" + }, + "editorMode": "code", "exemplar": true, - "expr": "rate(dshackle_request_grpc_err_total{instance=~\"$instance\", chain=~\"$chain\"}[1m])", + "expr": "rate(dshackle_request_grpc_err_total{instance=~\"$instance\", chain=~\"$chain\"}[$__rate_interval])", "hide": false, "interval": "", - "legendFormat": "Failed", + "legendFormat": "{{type}} failed", + "range": true, "refId": "B" } ], - "thresholds": [], - "timeRegions": [], - "title": "GRPC total request / failed requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "reqps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false - } + "title": "GRPC total request / failed requests by type", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "fieldConfig": { "defaults": { - "unit": "reqps" + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 18 - }, - "hiddenSeries": false, - "id": 137, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum by (method) (rate(dshackle_request_jsonrpc_request_total{chain=~\"$chain\", instance=~\"$instance\"}[1m]))", - "interval": "", - "legendFormat": "{{ method }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC OK requests by method", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "reqps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fieldConfig": { - "defaults": { - "unit": "reqps" - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, + "h": 12, "w": 12, - "x": 0, - "y": 28 + "x": 12, + "y": 9 }, - "hiddenSeries": false, - "id": 139, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 104, "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "datasource": { "type": "prometheus", - "uid": "lQ3xLXW7k" + "uid": "${DS_PROMETHEUS}" }, - "exemplar": true, - "expr": "sum by (method) (rate(dshackle_request_jsonrpc_err_total{chain=~\"$chain\", instance=~\"$instance\"}[1m]))", - "interval": "", - "legendFormat": "{{ method }}", - "refId": "A" + "editorMode": "code", + "expr": "rate(dshackle_request_grpc_native_request_err_total{chain=~\"$chain\", instance=~\"$instance\"}[$__rate_interval])", + "hide": false, + "legendFormat": "{{method}} error", + "range": true, + "refId": "B" } ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC Error requests by method", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "reqps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false - } + "title": "gRPC errors by method", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "fieldConfig": { "defaults": { - "unit": "reqps" + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { - "h": 9, + "h": 10, "w": 12, - "x": 12, - "y": 28 + "x": 0, + "y": 21 }, - "hiddenSeries": false, - "id": 141, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 102, "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "datasource": { "type": "prometheus", - "uid": "lQ3xLXW7k" + "uid": "${DS_PROMETHEUS}" }, - "exemplar": true, - "expr": "sum by (method) (rate(dshackle_request_jsonrpc_fail_total{chain=~\"$chain\", instance=~\"$instance\"}[1m]))", - "interval": "", - "legendFormat": "{{ method }}", + "editorMode": "code", + "expr": "rate(dshackle_request_grpc_native_request_total{chain=~\"$chain\", instance=~\"$instance\"}[$__rate_interval])", + "legendFormat": "{{method}} success", + "range": true, "refId": "A" } ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC Failed requests by method", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "reqps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false - } + "title": "gRPC request by method", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 37 + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "hiddenSeries": false, - "id": 43, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "rate(dshackle_request_jsonrpc_call_seconds_sum{chain=~\"$chain\",instance=~\"$instance\"}[1m]) / rate(dshackle_request_jsonrpc_call_seconds_count{chain=~\"$chain\",instance=~\"$instance\"}[1m])", - "interval": "", - "legendFormat": "{{ instance }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC Response time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "s", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "fieldConfig": { "defaults": { - "unit": "reqps" + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 10, - "w": 24, - "x": 0, - "y": 46 - }, - "hiddenSeries": false, - "id": 133, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "rate(dshackle_upstream_rpc_err_total{chain=~\"$chain\", instance=~\"$instance\"}[1m])", - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Upstreams Errors", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "reqps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 56 - }, - "hiddenSeries": false, - "id": 97, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "histogram_quantile(0.50, dshackle_upstream_rpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"})", - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC upstream conn seconds 50 percentile", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "s", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, "w": 12, "x": 12, - "y": 56 + "y": 21 }, - "hiddenSeries": false, - "id": 24, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 103, "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "exemplar": true, - "expr": "histogram_quantile(0.75, dshackle_upstream_rpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"})", - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC upstream conn seconds 75 percentile", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "s", - "logBase": 1, - "min": "0", - "show": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.95, rate(dshackle_request_grpc_native_response_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "hide": false, + "legendFormat": "{{method}} 0.95", + "range": true, + "refId": "C" }, { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 65 - }, - "hiddenSeries": false, - "id": 41, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "histogram_quantile(0.90, dshackle_upstream_rpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"})", - "interval": "", - "legendFormat": "{{ upstream }}", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.9, rate(dshackle_request_grpc_native_response_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "legendFormat": "{{method}} 0.9", + "range": true, "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC upstream conn seconds 90 percentile", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "s", - "logBase": 1, - "min": "0", - "show": true }, { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.5, rate(dshackle_request_grpc_native_response_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "hide": false, + "legendFormat": "{{method}} 0.5", + "range": true, + "refId": "B" } ], - "yaxis": { - "align": false - } + "title": "gRPC response latency by method", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 65 + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "hiddenSeries": false, - "id": 98, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "histogram_quantile(0.99, dshackle_upstream_rpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"})", - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "JSON RPC upstream conn seconds 99 percentile", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "s", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "fieldConfig": { "defaults": { - "unit": "reqps" + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 10, - "w": 24, - "x": 0, - "y": 74 - }, - "hiddenSeries": false, - "id": 132, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "rate(dshackle_upstream_ws_err_total{chain=~\"$chain\", instance=~\"$instance\"}[1m])", - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "WS Upstreams Errors", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "reqps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, "w": 12, "x": 0, - "y": 84 + "y": 31 }, - "hiddenSeries": false, - "id": 134, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 105, "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "exemplar": true, - "expr": "histogram_quantile(0.50, dshackle_upstream_ws_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"})", - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "WS upstream conn seconds 50 percentile", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "s", - "logBase": 1, - "min": "0", - "show": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.95, rate(dshackle_upstream_ws_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "hide": false, + "legendFormat": "{{upstream}} 0.95", + "range": true, + "refId": "C" }, { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.9, rate(dshackle_upstream_ws_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "legendFormat": "{{upstream}} 0.9", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.5, rate(dshackle_upstream_grpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "hide": false, + "legendFormat": "{{upstream}} 0.5", + "range": true, + "refId": "B" } ], - "yaxis": { - "align": false - } + "title": "WS upstreams latency", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "fill": 1, - "fillGradient": 0, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, "gridPos": { - "h": 9, + "h": 10, "w": 12, "x": 12, - "y": 84 + "y": 31 }, - "hiddenSeries": false, - "id": 135, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 106, "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "exemplar": true, - "expr": "histogram_quantile(0.75, dshackle_upstream_ws_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"})", - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "WS upstream conn seconds 75 percentile", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "format": "s", - "logBase": 1, - "min": "0", - "show": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.95, rate(dshackle_upstream_rpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "hide": false, + "legendFormat": "{{upstream}} 0.95", + "range": true, + "refId": "C" }, { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "min": "0", - "show": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.9, rate(dshackle_upstream_rpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "legendFormat": "{{upstream}} 0.9", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.5, rate(dshackle_upstream_grpc_conn_seconds_bucket{instance=~\"$instance\",chain=~\"$chain\"}[$__rate_interval]))", + "hide": false, + "legendFormat": "{{upstream}} 0.5", + "range": true, + "refId": "B" } ], - "yaxis": { - "align": false - } + "title": "RPC upstreams latency", + "type": "timeseries" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, + "datasource": { + "uid": "$datasource" + }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 9, "w": 24, "x": 0, - "y": 93 + "y": 41 }, "hiddenSeries": false, "id": 71, @@ -1563,7 +1062,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "8.3.5", + "pluginVersion": "9.1.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -1573,6 +1072,9 @@ "steppedLine": false, "targets": [ { + "datasource": { + "uid": "$datasource" + }, "exemplar": true, "expr": "dshackle_upstreams_lag{instance=~\"$instance\", chain=~\"$chain\"}", "interval": "", @@ -1613,270 +1115,10 @@ "yaxis": { "align": false } - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "center", - "displayMode": "auto", - "filterable": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 0, - "y": 102 - }, - "id": 145, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "lQ3xLXW7k" - }, - "exemplar": false, - "expr": "sum by (method) (dshackle_request_jsonrpc_err_total{chain=~\"$chain\", instance=~\"$instance\"})", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "title": "Error Requests Total Count", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "__name__": true, - "chain": true, - "instance": true, - "job": true - }, - "indexByName": {}, - "renameByName": { - "Value": "Number of Error requests", - "Value #A": "Blocks Behind", - "upstream": "Upstream" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "center", - "displayMode": "auto", - "filterable": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 12, - "y": 102 - }, - "id": 147, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "lQ3xLXW7k" - }, - "exemplar": false, - "expr": "sum by (method) (dshackle_request_jsonrpc_fail_total{chain=~\"$chain\", instance=~\"$instance\"})", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "title": "Failed Requests Total Count", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "__name__": true, - "chain": true, - "instance": true, - "job": true - }, - "indexByName": {}, - "renameByName": { - "Value": "Number of Error requests", - "Value #A": "Blocks Behind", - "upstream": "Upstream" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "center", - "displayMode": "auto", - "filterable": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 16, - "w": 24, - "x": 0, - "y": 117 - }, - "id": 143, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Number of OK requests" - } - ] - }, - "pluginVersion": "8.3.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "lQ3xLXW7k" - }, - "exemplar": false, - "expr": "sum by (method) (dshackle_request_jsonrpc_request_total{chain=~\"$chain\", instance=~\"$instance\"})", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "{{ upstream }}", - "refId": "A" - } - ], - "title": "OK Requests Total Count", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "__name__": true, - "chain": true, - "instance": true, - "job": true - }, - "indexByName": {}, - "renameByName": { - "Value": "Number of OK requests", - "Value #A": "Blocks Behind", - "upstream": "Upstream" - } - } - } - ], - "type": "table" } ], - "refresh": "10s", - "schemaVersion": 34, + "refresh": "5s", + "schemaVersion": 37, "style": "dark", "tags": [], "templating": { @@ -1884,8 +1126,11 @@ { "current": { "selected": false, - "text": "Prometheus", - "value": "Prometheus" + "text": "prometheus", + "value": "prometheus" + }, + "datasource": { + "uid": "$datasource" }, "hide": 0, "includeAll": false, @@ -1900,19 +1145,18 @@ "type": "datasource" }, { - "current": { - "selected": false, - "text": "dshackle-01", - "value": "dshackle-01" + "current": {}, + "datasource": { + "uid": "$datasource" }, - "definition": "label_values(dshackle_request_jsonrpc_err_total{},instance)", + "definition": "label_values(dshackle_request_grpc_request_total{},instance)", "hide": 0, "includeAll": false, "multi": false, "name": "instance", "options": [], "query": { - "query": "label_values(dshackle_request_jsonrpc_err_total{},instance)", + "query": "label_values(dshackle_request_grpc_request_total{},instance)", "refId": "StandardVariableQuery" }, "refresh": 1, @@ -1925,14 +1169,9 @@ "useTags": false }, { - "current": { - "selected": true, - "text": [ - "ETH" - ], - "value": [ - "ETH" - ] + "current": {}, + "datasource": { + "uid": "$datasource" }, "definition": "label_values(dshackle_upstreams_availability,chain)", "hide": 0, @@ -1961,8 +1200,8 @@ }, "timepicker": {}, "timezone": "", - "title": "Dshackle Stats 2", + "title": "Dshackle Stats", "uid": "qkG2pqWnp", - "version": 1, + "version": 15, "weekStart": "" -} +} \ No newline at end of file