diff --git a/operations/observability/mixins/IDE/dashboards/components/ssh-gateway.json b/operations/observability/mixins/IDE/dashboards/components/ssh-gateway.json index f6e78ae0484f9f..4e0644ceb44970 100644 --- a/operations/observability/mixins/IDE/dashboards/components/ssh-gateway.json +++ b/operations/observability/mixins/IDE/dashboards/components/ssh-gateway.json @@ -24,24 +24,11 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 64, - "iteration": 1653896685834, + "id": 66, + "iteration": 1655363716055, "links": [], "liveNow": true, "panels": [ - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 15, - "panels": [], - "title": "All clusters", - "type": "row" - }, { "datasource": { "type": "prometheus", @@ -54,7 +41,7 @@ "mode": "palette-classic" }, "custom": { - "axisLabel": "", + "axisLabel": "attempt/second", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", @@ -81,7 +68,6 @@ "mode": "off" } }, - "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -100,16 +86,20 @@ "overrides": [] }, "gridPos": { - "h": 7, - "w": 6, + "h": 8, + "w": 12, "x": 0, - "y": 1 + "y": 0 }, - "id": 4, + "id": 2, "options": { "legend": { - "calcs": [], - "displayMode": "hidden", + "calcs": [ + "max", + "mean", + "min" + ], + "displayMode": "table", "placement": "bottom" }, "tooltip": { @@ -124,13 +114,13 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "sum(gitpod_ws_proxy_ssh_connection_count{cluster=~\"(eu|us).*\"})", - "legendFormat": "All Clusters", + "expr": "sum(rate(gitpod_ws_proxy_ssh_attempt_total{error_type!~\"OTHERS|WS_ID_INVALID\"}[2m]))", + "legendFormat": "rate", "range": true, "refId": "A" } ], - "title": "SSH connections", + "title": "Attempts", "type": "timeseries" }, { @@ -138,13 +128,14 @@ "type": "prometheus", "uid": "${datasource}" }, + "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { - "axisLabel": "", + "axisLabel": "attempt/second", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", @@ -171,7 +162,6 @@ "mode": "off" } }, - "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", @@ -190,137 +180,21 @@ "overrides": [] }, "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 1 - }, - "id": 6, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "rate(sum(gitpod_ws_proxy_ssh_attempt_total{cluster=~\"(eu|us).*\", status=\"success\"}[$__interval]))", - "legendFormat": "All clusters", - "range": true, - "refId": "A" - } - ], - "title": "SSH connection rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "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": [ - { - "matcher": { - "id": "byName", - "options": "MISS_KEY" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AUTH_FAILED" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 6, + "h": 8, + "w": 12, "x": 12, - "y": 1 + "y": 0 }, - "id": 8, + "id": 3, "options": { "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "calcs": [ + "max", + "mean", + "min" + ], + "displayMode": "table", + "placement": "right" }, "tooltip": { "mode": "single", @@ -334,15 +208,13 @@ "uid": "${datasource}" }, "editorMode": "code", - "exemplar": false, - "expr": "sum(gitpod_ws_proxy_ssh_attempt_total{cluster=~\"(eu|us).*\", error_type!~\"(OTHERS|WS_NOTFOUND)\", status=\"failed\"}) by (error_type)", - "instant": false, - "legendFormat": "{{label_name}}", + "expr": "sum by (error_type) (rate(gitpod_ws_proxy_ssh_attempt_total{error_type=~\"OTHERS|WS_ID_INVALID\"}[2m]))", + "legendFormat": "__auto", "range": true, "refId": "A" } ], - "title": "SSH error number (main)", + "title": "Suspicious attempts", "type": "timeseries" }, { @@ -359,7 +231,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, - "drawStyle": "line", + "drawStyle": "bars", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { @@ -396,158 +268,24 @@ "value": 80 } ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "MISS_KEY" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] }, - { - "matcher": { - "id": "byName", - "options": "AUTH_FAILED" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 18, - "y": 1 - }, - "id": 9, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "rate(sum(gitpod_ws_proxy_ssh_attempt_total{cluster=~\"(eu|us).*\", error_type=~\"(OTHERS|WS_NOTFOUND)\", status=\"failed\"}[$__interval]) by (error_type))", - "instant": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "A" - } - ], - "title": "SSH error rate (other)", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 2, - "panels": [], - "title": "Per clusters", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "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" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } + "unit": "percentunit" }, "overrides": [] }, "gridPos": { - "h": 7, - "w": 6, + "h": 8, + "w": 12, "x": 0, - "y": 9 + "y": 8 }, - "id": 10, + "id": 5, "options": { "legend": { - "calcs": [], - "displayMode": "hidden", + "calcs": [ + "mean" + ], + "displayMode": "table", "placement": "bottom" }, "tooltip": { @@ -555,8 +293,6 @@ "sort": "none" } }, - "repeat": "cluster", - "repeatDirection": "v", "targets": [ { "datasource": { @@ -564,13 +300,13 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "sum(gitpod_ws_proxy_ssh_connection_count{cluster=\"$cluster\"})", - "legendFormat": "All Clusters", + "expr": "sum(rate(gitpod_ws_proxy_ssh_attempt_total{error_type!~\"WS_ID_INVALID|OTHERS\",status=\"failed\"}[2m]))/sum(rate(gitpod_ws_proxy_ssh_attempt_total{error_type!~\"WS_ID_INVALID|OTHERS\"}[2m]))", + "legendFormat": "total ratio", "range": true, "refId": "A" } ], - "title": "$cluster: SSH connections", + "title": "Failures", "type": "timeseries" }, { @@ -587,7 +323,7 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, - "drawStyle": "line", + "drawStyle": "bars", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { @@ -611,7 +347,6 @@ "mode": "off" } }, - "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", @@ -625,276 +360,31 @@ "value": 80 } ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 9 - }, - "id": 13, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "repeat": "cluster", - "repeatDirection": "v", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "rate(sum(gitpod_ws_proxy_ssh_attempt_total{cluster=\"$cluster\", status=\"success\"}[$__interval]))", - "legendFormat": "All clusters", - "range": true, - "refId": "A" - } - ], - "title": "$cluster: SSH connection rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "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": "percentunit" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "MISS_KEY" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AUTH_FAILED" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - } - ] + "overrides": [] }, "gridPos": { - "h": 7, - "w": 6, + "h": 8, + "w": 12, "x": 12, - "y": 9 - }, - "id": 11, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "repeat": "cluster", - "repeatDirection": "v", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(gitpod_ws_proxy_ssh_attempt_total{cluster=\"$cluster\", error_type!~\"(OTHERS|WS_NOTFOUND)\", status=\"failed\"}) by (error_type)", - "instant": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "A" - } - ], - "title": "$cluster: SSH error number (main)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "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": [ - { - "matcher": { - "id": "byName", - "options": "MISS_KEY" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AUTH_FAILED" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 18, - "y": 9 + "y": 8 }, - "id": 12, + "id": 6, "options": { "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "calcs": [ + "mean" + ], + "displayMode": "table", + "placement": "right" }, "tooltip": { "mode": "single", "sort": "none" } }, - "repeat": "cluster", - "repeatDirection": "v", "targets": [ { "datasource": { @@ -902,15 +392,13 @@ "uid": "${datasource}" }, "editorMode": "code", - "exemplar": false, - "expr": "rate(sum(gitpod_ws_proxy_ssh_attempt_total{cluster=\"$cluster\", error_type=~\"(OTHERS|WS_NOTFOUND)\", status=\"failed\"}[$__interval]) by (error_type))", - "instant": false, - "legendFormat": "{{label_name}}", + "expr": "sum by (error_type) (rate(gitpod_ws_proxy_ssh_attempt_total{error_type!~\"WS_ID_INVALID|OTHERS\",status=\"failed\"}[2m]))/sum(rate(gitpod_ws_proxy_ssh_attempt_total{error_type!~\"WS_ID_INVALID|OTHERS\"}[2m]))", + "legendFormat": "__auto", "range": true, "refId": "A" } ], - "title": "$cluster: SSH error rate (other)", + "title": "Errors", "type": "timeseries" } ], @@ -936,32 +424,6 @@ "regex": "", "skipUrlSync": false, "type": "datasource" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(gitpod_ws_proxy_ssh_connection_count, cluster)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "cluster", - "options": [], - "query": { - "query": "label_values(gitpod_ws_proxy_ssh_connection_count, cluster)", - "refId": "StandardVariableQuery" - }, - "refresh": 2, - "regex": "(?:eu|us).*", - "skipUrlSync": false, - "sort": 1, - "type": "query" } ] }, @@ -973,6 +435,6 @@ "timezone": "", "title": "SSH Gateway Overview", "uid": "3oan1Zr7k", - "version": 11, + "version": 6, "weekStart": "" }