diff --git a/etc/grafana/dashboard.json b/etc/grafana/dashboard.json index 76627fb..767b2e5 100644 --- a/etc/grafana/dashboard.json +++ b/etc/grafana/dashboard.json @@ -1,1476 +1,1426 @@ { - "apiVersion": "dashboard.grafana.app/v2beta1", - "kind": "Dashboard", - "metadata": { - "name": "invpublic", - "generation": 144, - "creationTimestamp": "2025-06-20T09:06:05Z", - "labels": {}, - "annotations": {} - }, - "spec": { - "annotations": [ + "__inputs": [ + { + "name": "DS_GRAFANACLOUD-NERDVPN-PROM", + "label": "grafanacloud-nerdvpn-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__elements": {}, + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "12.3.0-18686767985.patch2" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "state-timeline", + "name": "State timeline", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ { - "kind": "AnnotationQuery", - "spec": { - "builtIn": true, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "query": { - "group": "grafana", - "kind": "DataQuery", - "spec": {}, - "version": "v0" - } - } + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" } - ], - "cursorSync": "Off", - "editable": true, - "elements": { - "panel-1": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "invidious_companion_total", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "The total number of backends", - "range": false, - "useBackend": false - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [] - } - }, - "description": "The total number of backends", - "id": 1, - "links": [], - "title": "Backends", - "vizConfig": { - "group": "stat", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-10": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [], - "queryOptions": {}, - "transformations": [] - } - }, - "description": "", - "id": 10, - "links": [], - "title": "Information", - "transparent": true, - "vizConfig": { - "group": "text", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "
No identifiable visitor data was used to create this status page.\n
All information were gathered by only using the built-in metrics endpoint of each invidious-companion, which only returns numbers and nothing more.
\nYou can check the source code of invidious companion for yourself here: https://github.com/iv-org/invidious-companion/blob/master/src/lib/helpers/metrics.ts
\nPlease note that I closely monitor the health of my instance and each backed via Prometheus alertmanager. So if anything goes full-scale wrong, I'll know soon enough and will give my best to fix it.
", - "mode": "html" - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-11": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "disableTextWrap": false, - "editorMode": "code", - "exemplar": false, - "expr": "avg (\n (\n sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[1h])\n /\n (\n (sum_over_time(invidious_companion_innertube_failed_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[1h]))\n + sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[1h])\n )\n ) * 100\n)\n", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "The average playback rate on my instance", - "range": true, - "useBackend": false - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [] - } - }, - "description": "The average playback rate on my instance", - "id": 11, - "links": [], - "title": "Overall Playback success rate", - "vizConfig": { - "group": "stat", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "max": 100, - "min": 0, - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": 0 - }, - { - "color": "yellow", - "value": 40 - }, - { - "color": "green", - "value": 70 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": true, - "textMode": "value", - "wideLayout": true - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-12": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "disableTextWrap": false, - "editorMode": "code", - "exemplar": false, - "expr": "avg by (instance) (\n (\n sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[3h])\n /\n (\n (sum_over_time(invidious_companion_innertube_failed_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[3h]))\n + sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[3h])\n )\n ) * 100\n)\n", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "{{instance}}", - "range": true, - "useBackend": false - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [ - { - "kind": "renameByRegex", - "spec": { - "id": "renameByRegex", - "options": { - "regex": "invidious-companion-(.*)$", - "renamePattern": "$1" - } - } - } - ] - } - }, - "description": "", - "id": 12, - "links": [], - "title": "Backend stability (3hrs avg)", - "vizConfig": { - "group": "stat", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "max": 100, - "min": 0, - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": 0 - }, - { - "color": "yellow", - "value": 40 - }, - { - "color": "green", - "value": 70 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": true, - "text": {}, - "textMode": "value_and_name", - "wideLayout": true - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-13": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "editorMode": "code", - "expr": "invidious_companion_healthy{container!~\"invidious-companion-[0-9]$\"}", - "legendFormat": "{{container}}", - "range": true - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [ - { - "kind": "renameByRegex", - "spec": { - "id": "renameByRegex", - "options": { - "regex": "invidious-companion-(.*)$", - "renamePattern": "$1" - } - } - } - ] - } - }, - "description": "", - "id": 13, - "links": [], - "title": "Backend uptime", - "vizConfig": { - "group": "state-timeline", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-GrYlRd" - }, - "custom": { - "axisPlacement": "auto", - "fillOpacity": 60, - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineWidth": 0, - "spanNulls": false - }, - "mappings": [ - { - "options": { - "0": { - "color": "red", - "index": 0, - "text": "Down" - }, - "1": { - "color": "green", - "index": 1, - "text": "Up" - } - }, - "type": "value" - } - ], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - } - ] - }, - "unit": "bool" - }, - "overrides": [] - }, - "options": { - "alignValue": "left", - "legend": { - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "mergeValues": true, - "rowHeight": 0.8, - "showValue": "never", - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "asc" - } - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-14": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "disableTextWrap": false, - "editorMode": "builder", - "expr": "invidious_companion_network_load_percent", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "Network load", - "range": true, - "useBackend": false - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [] - } - }, - "description": "max available bandwidth: 2 Gbps", - "id": 14, - "links": [], - "title": "Network load (%)", - "vizConfig": { - "group": "timeseries", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 30, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "#EAB839", - "value": 60 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-2": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "invidious_companion_healthy_total", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "The number of healthy backends", - "range": false, - "useBackend": false - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [] - } - }, - "description": "The number of healthy backends", - "id": 2, - "links": [], - "title": "Up", - "vizConfig": { - "group": "stat", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": 0 - }, - { - "color": "orange", - "value": 5 - }, - { - "color": "yellow", - "value": 7 - }, - { - "color": "green", - "value": 9 - } - ] - } - }, - "overrides": [] - }, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-3": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "invidious_companion_unhealthy_total", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "The number of unhealthy backends", - "range": false, - "useBackend": false - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [] - } - }, - "description": "The number of unhealthy backends", - "id": 3, - "links": [], - "title": "Down", - "vizConfig": { - "group": "stat", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "yellow", - "value": 6 - }, - { - "color": "orange", - "value": 8 - }, - { - "color": "red", - "value": 10 - } - ] - } - }, - "overrides": [] - }, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-4": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "disableTextWrap": false, - "editorMode": "code", - "exemplar": false, - "expr": "avg by (instance) (\n (invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"})\n /\n ((invidious_companion_innertube_failed_request_total{instance!=\"invidious.nerdvpn.de\"}) + invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"})\n) * 100\n", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "__auto", - "range": true, - "useBackend": false - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [ - { - "kind": "renameByRegex", - "spec": { - "id": "renameByRegex", - "options": { - "regex": "invidious-companion-(.*)$", - "renamePattern": "$1" - } - } - } - ] - } - }, - "description": "", - "id": 4, - "links": [], - "title": "Playback success rate by backend", - "vizConfig": { - "group": "timeseries", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "right", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "area" - } - }, - "max": 100, - "min": 0, - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": 0 - }, - { - "color": "yellow", - "value": 40 - }, - { - "color": "green", - "value": 70 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-6": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "editorMode": "code", - "expr": "rate(invidious_companion_innertube_failed_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[$__rate_interval])\n\n", - "interval": "1m", - "legendFormat": "{{instance}}", - "range": true - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [ - { - "kind": "renameByRegex", - "spec": { - "id": "renameByRegex", - "options": { - "regex": "invidious-companion-(.*)$", - "renamePattern": "$1" - } - } - } - ] - } - }, - "description": "", - "id": 6, - "links": [], - "title": "Error rate by backend", - "vizConfig": { - "group": "timeseries", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "right", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "linearThreshold": 1, - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "fieldMinMax": false, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-7": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "editorMode": "code", - "expr": "avg(\n invidious_companion_healthy_total\n /\n invidious_companion_total\n) * 100\n", - "legendFormat": "Instance health", - "range": true - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [] - } - }, - "description": "", - "id": 7, - "links": [], - "title": "Instance overall health", - "vizConfig": { - "group": "timeseries", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "stepAfter", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "area" - } - }, - "fieldMinMax": false, - "max": 100, - "min": 0, - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": 0 - }, - { - "color": "yellow", - "value": 50 - }, - { - "color": "green", - "value": 70 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-8": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "editorMode": "code", - "expr": "rate(invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[$__rate_interval]) + rate(invidious_companion_innertube_failed_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[$__rate_interval])", - "interval": "60s", - "legendFormat": "{{instance}}", - "range": true - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [ - { - "kind": "renameByRegex", - "spec": { - "id": "renameByRegex", - "options": { - "regex": "invidious-companion-(.*)$", - "renamePattern": "$1" - } - } - } - ] - } - }, - "description": "", - "id": 8, - "links": [], - "title": "Load (absolute) by backend", - "vizConfig": { - "group": "timeseries", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "right", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - }, - "panel-9": { - "kind": "Panel", - "spec": { - "data": { - "kind": "QueryGroup", - "spec": { - "queries": [ - { - "kind": "PanelQuery", - "spec": { - "hidden": false, - "query": { - "group": "prometheus", - "kind": "DataQuery", - "spec": { - "editorMode": "code", - "expr": "rate(invidious_companion_innertube_successful_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[$__rate_interval]) + rate(invidious_companion_innertube_failed_request_total{instance!=\"invidious.nerdvpn.de\", instance!~\"invidious-companion-[0-9]$\"}[$__rate_interval])", - "interval": "60s", - "legendFormat": "{{instance}}", - "range": true - }, - "version": "v0" - }, - "refId": "A" - } - } - ], - "queryOptions": {}, - "transformations": [ - { - "kind": "renameByRegex", - "spec": { - "id": "renameByRegex", - "options": { - "regex": "invidious-companion-(.*)$", - "renamePattern": "$1" - } - } - } - ] - } - }, - "description": "", - "id": 9, - "links": [], - "title": "Load (relative) by backend", - "vizConfig": { - "group": "timeseries", - "kind": "VizConfig", - "spec": { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "right", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "percent" - }, - "thresholdsStyle": { - "mode": "line" - } - }, - "decimals": 1, - "noValue": "0", - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": 0 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - } - }, - "version": "12.2.0-16890666601.patch1" - } - } - } - }, - "layout": { - "kind": "GridLayout", - "spec": { - "items": [ - { - "kind": "GridLayoutItem", - "spec": { - "element": { - "kind": "ElementReference", - "name": "panel-10" - }, - "height": 7, - "width": 24, - "x": 0, - "y": 0 - } - } - ] - } - }, - "links": [], - "liveNow": false, - "preload": false, - "tags": [], - "timeSettings": { - "autoRefresh": "", - "autoRefreshIntervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "fiscalYearStartMonth": 0, - "from": "now-6h", - "hideTimepicker": false, - "timezone": "browser", - "to": "now", - "weekStart": "monday" - }, - "title": "Invidious.NerdVPN.de Instance Health", - "variables": [] + ] }, - "status": {} + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "panels": [ + { + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 10, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "No identifiable visitor data was used to create this status page.\n
All information were gathered by only using the built-in metrics endpoint of each invidious-companion, which only returns numbers and nothing more.
\nYou can check the source code of invidious companion for yourself here: https://github.com/iv-org/invidious-companion/blob/master/src/lib/helpers/metrics.ts
\nPlease note that I closely monitor the health of my instance and each backed via Prometheus alertmanager. So if anything goes full-scale wrong, I'll know soon enough and will give my best to fix it.
", + "mode": "html" + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "title": "Information", + "transparent": true, + "type": "text" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 5, + "panels": [], + "title": "Backends", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "description": "The total number of backends", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 2, + "x": 0, + "y": 8 + }, + "id": 1, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "invidious_companion_total", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "The total number of backends", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Backends", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "description": "The number of healthy backends", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": 0 + }, + { + "color": "orange", + "value": 4 + }, + { + "color": "yellow", + "value": 6 + }, + { + "color": "green", + "value": 8 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 2, + "x": 2, + "y": 8 + }, + "id": 2, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "invidious_companion_healthy_total", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "The number of healthy backends", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Up", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "description": "The number of unhealthy backends", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "yellow", + "value": 6 + }, + { + "color": "orange", + "value": 8 + }, + { + "color": "red", + "value": 10 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 2, + "x": 4, + "y": 8 + }, + "id": 3, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "invidious_companion_unhealthy_total", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "The number of unhealthy backends", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Down", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "max": 100, + "min": 0, + "noValue": "0", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": 0 + }, + { + "color": "yellow", + "value": 40 + }, + { + "color": "green", + "value": 70 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 28, + "w": 3, + "x": 6, + "y": 8 + }, + "id": 12, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": true, + "text": {}, + "textMode": "value_and_name", + "wideLayout": true + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "disableTextWrap": false, + "editorMode": "code", + "exemplar": false, + "expr": "avg by (instance) (\n (\n sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[3h])\n /\n (\n (sum_over_time(invidious_companion_innertube_failed_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[3h]))\n + sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[3h])\n )\n ) * 100\n)\n", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "legendFormat": "{{instance}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Backend stability (3hrs avg)", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "invidious-companion-(.*)$", + "renamePattern": "$1" + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "right", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "area" + } + }, + "mappings": [], + "max": 100, + "min": 0, + "noValue": "0", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": 0 + }, + { + "color": "yellow", + "value": 40 + }, + { + "color": "green", + "value": 70 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 14, + "w": 15, + "x": 9, + "y": 8 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "disableTextWrap": false, + "editorMode": "code", + "exemplar": false, + "expr": "avg by (instance) (\n (invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"})\n /\n ((invidious_companion_innertube_failed_request_total{instance!=\"overall\"}) + invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"})\n) * 100\n", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Playback success rate by backend", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "invidious-companion-(.*)$", + "renamePattern": "$1" + } + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "description": "The average playback rate on my instance", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "max": 100, + "min": 0, + "noValue": "0", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": 0 + }, + { + "color": "yellow", + "value": 40 + }, + { + "color": "green", + "value": 70 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 0, + "y": 13 + }, + "id": 11, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": true, + "textMode": "value", + "wideLayout": true + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "disableTextWrap": false, + "editorMode": "code", + "exemplar": false, + "expr": "avg (\n (\n sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[1h])\n /\n (\n (sum_over_time(invidious_companion_innertube_failed_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[1h]))\n + sum_over_time(invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[1h])\n )\n ) * 100\n)\n", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "legendFormat": "The average playback rate on my instance", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Overall Playback success rate", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "stepAfter", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "area" + } + }, + "fieldMinMax": false, + "mappings": [], + "max": 100, + "min": 0, + "noValue": "0", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": 0 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "green", + "value": 70 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 0, + "y": 19 + }, + "id": 7, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "editorMode": "code", + "expr": "avg(\n invidious_companion_healthy_total\n /\n invidious_companion_total\n) * 100\n", + "legendFormat": "Instance health", + "range": true, + "refId": "A" + } + ], + "title": "Instance overall health", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "right", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "linearThreshold": 1, + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 1, + "fieldMinMax": false, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "gridPos": { + "h": 14, + "w": 15, + "x": 9, + "y": 22 + }, + "id": 6, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "editorMode": "code", + "expr": "rate(invidious_companion_innertube_failed_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[5m])\n", + "interval": "1m", + "legendFormat": "{{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "Error rate by backend", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "invidious-companion-(.*)$", + "renamePattern": "$1" + } + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "description": "max available bandwidth: 2 Gbps", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 30, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "#EAB839", + "value": 60 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 0, + "y": 24 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "invidious_companion_network_load_percent", + "fullMetaSearch": false, + "includeNullMetadata": true, + "legendFormat": "Network load", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Network load (%)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "description": "Percentage of Anubis DENY policy results and failed challenges", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "dark-red", + "mode": "fixed" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "hidden", + "axisSoftMax": 1, + "axisSoftMin": 0, + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 30, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": 0 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 0, + "y": 30 + }, + "id": 16, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "editorMode": "code", + "expr": "(\n 1 -\n (\n sum(anubis_challenges_validated{instance=\"max\"})\n + sum(anubis_policy_results{instance=\"max\", action=\"ALLOW\"})\n )\n /\n (\n sum(anubis_challenges_issued{instance=\"max\"})\n + sum(anubis_policy_results{instance=\"max\", action=\"DENY\"})\n )\n) or vector(0)\n", + "format": "time_series", + "legendFormat": "Blocked requests", + "range": true, + "refId": "A" + } + ], + "title": "Anubis: Blocked requests (%)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-GrYlRd" + }, + "custom": { + "axisPlacement": "auto", + "fillOpacity": 60, + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineWidth": 0, + "spanNulls": false + }, + "mappings": [ + { + "options": { + "0": { + "color": "red", + "index": 0, + "text": "Down" + }, + "1": { + "color": "green", + "index": 1, + "text": "Up" + } + }, + "type": "value" + } + ], + "noValue": "0", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + } + ] + }, + "unit": "bool" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 36 + }, + "id": 13, + "options": { + "alignValue": "left", + "legend": { + "displayMode": "list", + "placement": "right", + "showLegend": false + }, + "mergeValues": true, + "rowHeight": 0.8, + "showValue": "never", + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "asc" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "editorMode": "code", + "expr": "invidious_companion_healthy{container!~\"invidious-companion-[0-9]$\"}", + "legendFormat": "{{container}}", + "range": true, + "refId": "A" + } + ], + "title": "Backend uptime", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "invidious-companion-(.*)$", + "renamePattern": "$1" + } + } + ], + "type": "state-timeline" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "right", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 1, + "mappings": [], + "noValue": "0", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 12, + "x": 0, + "y": 46 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "editorMode": "code", + "expr": "rate(invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[5m]) + rate(invidious_companion_innertube_failed_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[5m])", + "interval": "60s", + "legendFormat": "{{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "Load (absolute) by backend", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "invidious-companion-(.*)$", + "renamePattern": "$1" + } + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "right", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "percent" + }, + "thresholdsStyle": { + "mode": "line" + } + }, + "decimals": 1, + "mappings": [], + "noValue": "0", + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": 0 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 46 + }, + "id": 9, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.0-18686767985.patch2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_GRAFANACLOUD-NERDVPN-PROM}" + }, + "editorMode": "code", + "expr": "rate(invidious_companion_innertube_successful_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[5m]) + rate(invidious_companion_innertube_failed_request_total{instance!=\"overall\", instance!~\"invidious-companion-[0-9]$\"}[5m])", + "interval": "60s", + "legendFormat": "{{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "Load (relative) by backend", + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "invidious-companion-(.*)$", + "renamePattern": "$1" + } + } + ], + "type": "timeseries" + } + ], + "preload": false, + "schemaVersion": 42, + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": {}, + "timezone": "browser", + "title": "Invidious Instance Health", + "uid": "invpublic", + "version": 2, + "weekStart": "monday" }