diff --git a/monitoring/grafana/dashboards/gameserver/pterodactyl-server.json b/monitoring/grafana/dashboards/gameserver/pterodactyl-server.json index 51d1fe4..ec9b6bf 100644 --- a/monitoring/grafana/dashboards/gameserver/pterodactyl-server.json +++ b/monitoring/grafana/dashboards/gameserver/pterodactyl-server.json @@ -1,970 +1,244 @@ { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": false, - "fiscalYearStartMonth": 0, - "gnetId": 16575, - "graphTooltip": 0, - "links": [], - "liveNow": false, + "uid": "pterodactyl-server", + "title": "Gameserver", + "description": "Zustand, Spieler und Auslastung je Gameserver (management #0002). Neu gebaut am 2026-08-20: Die vorherige Fassung fragte pterodactyl_server_cpu_absolute und zehn weitere Metriken des loens2-Exporters ab - der hat nie funktioniert (Client-API mit Application-Key ueber http), das Dashboard war seit jeher leer. Jetzt auf dem Exporter, der die Panel-Datenbank liest, plus den Recording Rules gameserver:*, die den Join Container-UUID -> Klarname vorwegnehmen.", + "tags": ["gameserver", "pterodactyl"], + "timezone": "browser", + "schemaVersion": 41, + "editable": true, + "time": { "from": "now-6h", "to": "now" }, + "refresh": "1m", "panels": [ { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 14, - "panels": [], - "title": "CPU & Uptime", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": 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": "percent", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 1 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, + "type": "stat", + "title": "Server", + "gridPos": { "h": 4, "w": 6, "x": 0, "y": 0 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, "targets": [ { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_cpu_absolute{server_name=~\"$server\"}", - "legendFormat": "Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "instant": true, + "expr": "count(pterodactyl_server_info)" } ], - "title": "CPU usage", - "type": "timeseries" + "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "colorMode": "none", "graphMode": "none" }, + "fieldConfig": { "defaults": { "unit": "short" }, "overrides": [] } }, { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "green", - "mode": "fixed" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "ms", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 1 - }, - "id": 22, - "options": { - "displayMode": "gradient", - "maxVizHeight": 300, - "minVizHeight": 16, - "minVizWidth": 8, - "namePlacement": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "valueMode": "color" - }, - "pluginVersion": "10.3.1", + "type": "stat", + "title": "laufend", + "gridPos": { "h": 4, "w": 6, "x": 6, "y": 0 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, "targets": [ { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_uptime_milliseconds {server_name=~\"$server\"}", - "interval": "", - "legendFormat": "Name: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "instant": true, + "expr": "sum(pterodactyl_server_status)" } ], - "title": "Uptime", - "type": "bargauge" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 16, - "panels": [], - "title": "Memory", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, + "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "colorMode": "value", "graphMode": "none" }, "fieldConfig": { "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": 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", - "unitScale": true + "unit": "short", + "thresholds": { "mode": "absolute", "steps": [ { "color": "text", "value": null }, { "color": "green", "value": 1 } ] } }, "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_memory_mebibyte {server_name=~\"$server\"} / pterodactyl_server_max_memory_mebibyte {server_name=~\"$server\"}", - "legendFormat": "Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" - } - ], - "title": "Memory usage percent", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": 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": "mbytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 8 - }, - "id": 6, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_memory_mebibyte {server_name=~\"$server\"}", - "legendFormat": "Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" - } - ], - "title": "Memory usage mebibytes", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 18, - "panels": [], - "title": "Disk", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": 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", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 15 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_disk_mebibyte {server_name=~\"$server\"} / pterodactyl_server_max_disk_mebibyte {server_name=~\"$server\"}", - "legendFormat": "Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" - } - ], - "title": "Disk usage percent", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": 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": "mbytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 15 - }, - "id": 10, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_disk_mebibyte {server_name=~\"$server\"}", - "legendFormat": "Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" - } - ], - "title": "Disk usage mebibytes", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 21 - }, - "id": 20, - "panels": [], - "title": "Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": 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": "decmbytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 22 - }, - "id": 12, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_network_rx_mebibyte {server_name=~\"$server\"}", - "legendFormat": "RX: Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "pterodactyl_server_network_tx_mebibyte {server_name=~\"$server\"}", - "hide": false, - "legendFormat": "TX: Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "B" - } - ], - "title": "Network usage", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": 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": "MBs", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 22 - }, - "id": 24, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.0.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "increase(pterodactyl_server_network_rx_mebibyte {server_name=~\"$server\"}[$__interval])", - "legendFormat": "RX: Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "expr": "increase(pterodactyl_server_network_mebibyte {server_name=~\"$server\"}[$__interval])", - "hide": false, - "legendFormat": "TX: Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "B" - } - ], - "title": "Network traffic", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 28 - }, - "id": 26, - "panels": [], - "title": "Backup", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red" - }, - { - "color": "green", - "value": 1 - } - ] - }, - "unit": "dateTimeAsLocalNoDateIfToday", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 29 - }, - "id": 28, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "editorMode": "code", - "exemplar": false, - "expr": "pterodactyl_server_most_recent_backup_time{server_name=~\"$server\"}*1000", - "instant": false, - "legendFormat": "Server: {{server_name}}, ID: {{id}}", - "range": true, - "refId": "A" - } - ], - "title": "Most Recent Backup Time", - "type": "stat" - } - ], - "refresh": "1m", - "schemaVersion": 39, - "tags": [], - "templating": { - "list": [ - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "belof8d814dtse" - }, - "definition": "label_values(pterodactyl_server_io, server_name)", - "hide": 0, - "includeAll": true, - "label": "Server", - "multi": true, - "name": "server", - "options": [], - "query": { - "query": "label_values(pterodactyl_server_io, server_name)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" } - ] - }, - "time": { - "from": "now-6h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Pterodactyl Server", - "uid": "UJnT34C7k", - "version": 1, - "weekStart": "" -} \ No newline at end of file + }, + { + "type": "stat", + "title": "Spieler online", + "description": "Nur Server, deren Abfrage geantwortet hat. Der Vergleich > -1 filtert NaN heraus - ein gestoppter Server liefert NaN und wuerde die Summe sonst unbrauchbar machen.", + "gridPos": { "h": 4, "w": 6, "x": 12, "y": 0 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "targets": [ + { + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "instant": true, + "expr": "sum(pterodactyl_server_players > -1)" + } + ], + "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "colorMode": "value", "graphMode": "none" }, + "fieldConfig": { + "defaults": { + "unit": "short", + "thresholds": { "mode": "absolute", "steps": [ { "color": "text", "value": null }, { "color": "blue", "value": 1 } ] } + }, + "overrides": [] + } + }, + { + "type": "stat", + "title": "Abfrage fehlgeschlagen", + "description": "Server, deren Spielabfrage nicht antwortet. Bei gestoppten Servern normal; bei einem laufenden Server ein Hinweis auf ein Problem.", + "gridPos": { "h": 4, "w": 6, "x": 18, "y": 0 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "targets": [ + { + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "instant": true, + "expr": "count(pterodactyl_server_query_success == 0) or vector(0)" + } + ], + "options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "colorMode": "background", "graphMode": "none" }, + "fieldConfig": { + "defaults": { + "unit": "short", + "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 1 } ] } + }, + "overrides": [] + } + }, + { + "type": "table", + "title": "Server im Einzelnen", + "description": "Zustand mit Spiel, Version und Port. Die Zusatzangaben kommen ueber einen Join auf pterodactyl_server_info - status allein traegt nur server_id und server_name.", + "gridPos": { "h": 8, "w": 24, "x": 0, "y": 4 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "targets": [ + { + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "instant": true, + "format": "table", + "expr": "pterodactyl_server_status * on(server_id) group_left(game, version, port) pterodactyl_server_info" + } + ], + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { "Time": true, "__name__": true, "host": true, "instance": true, "job": true, "server_id": true }, + "renameByName": { + "server_name": "Server", + "game": "Spiel", + "version": "Version", + "port": "Port", + "Value": "Zustand" + } + } + } + ], + "fieldConfig": { + "defaults": {}, + "overrides": [ + { + "matcher": { "id": "byName", "options": "Zustand" }, + "properties": [ + { + "id": "mappings", + "value": [ + { "type": "value", "options": { "0": { "text": "gestoppt", "color": "text", "index": 0 }, "1": { "text": "läuft", "color": "green", "index": 1 } } } + ] + }, + { "id": "custom.cellOptions", "value": { "type": "color-text" } } + ] + } + ] + } + }, + { + "type": "timeseries", + "title": "Spieler", + "gridPos": { "h": 8, "w": 12, "x": 0, "y": 12 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "targets": [ + { + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "legendFormat": "{{server_name}}", + "expr": "pterodactyl_server_players > -1" + } + ], + "fieldConfig": { + "defaults": { "unit": "short", "min": 0, "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, "showPoints": "never" } }, + "overrides": [] + }, + "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi" } } + }, + { + "type": "timeseries", + "title": "CPU-Kerne", + "description": "Aus der Recording Rule gameserver:cpu_cores - sie nimmt den Join Container-UUID -> Klarname vorweg, weil cAdvisor die Gameserver nur unter ihrer UUID kennt.", + "gridPos": { "h": 8, "w": 12, "x": 12, "y": 12 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "targets": [ + { + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "legendFormat": "{{server_name}}", + "expr": "gameserver:cpu_cores" + } + ], + "fieldConfig": { + "defaults": { "unit": "short", "min": 0, "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, "showPoints": "never" } }, + "overrides": [] + }, + "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi" } } + }, + { + "type": "timeseries", + "title": "Arbeitsspeicher", + "description": "Belegung und, wo gesetzt, das Limit. Nicht jeder Server hat eines - dann fehlt die gestrichelte Linie.", + "gridPos": { "h": 8, "w": 12, "x": 0, "y": 20 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "targets": [ + { + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "legendFormat": "{{server_name}}", + "expr": "gameserver:memory_working_set_bytes" + }, + { + "refId": "B", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "legendFormat": "{{server_name}} — Limit", + "expr": "gameserver:memory_limit_bytes" + } + ], + "fieldConfig": { + "defaults": { "unit": "bytes", "min": 0, "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, "showPoints": "never" } }, + "overrides": [ + { + "matcher": { "id": "byRegexp", "options": ".*Limit" }, + "properties": [ + { "id": "custom.fillOpacity", "value": 0 }, + { "id": "custom.lineStyle", "value": { "dash": [8, 6], "fill": "dash" } } + ] + } + ] + }, + "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi" } } + }, + { + "type": "timeseries", + "title": "Netzwerk", + "description": "Eingehend positiv, ausgehend negativ aufgetragen.", + "gridPos": { "h": 8, "w": 12, "x": 12, "y": 20 }, + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "targets": [ + { + "refId": "A", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "legendFormat": "{{server_name}} — ein", + "expr": "gameserver:network_receive_bytes_per_second" + }, + { + "refId": "B", + "datasource": { "type": "prometheus", "uid": "belof8d814dtse" }, + "legendFormat": "{{server_name}} — aus", + "expr": "- gameserver:network_transmit_bytes_per_second" + } + ], + "fieldConfig": { + "defaults": { "unit": "Bps", "custom": { "drawStyle": "line", "lineWidth": 1, "fillOpacity": 15, "showPoints": "never" } }, + "overrides": [] + }, + "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi" } } + } + ] +}