{ "editable": true, "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "panels": [], "title": "Now", "type": "row", "id": 1 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": null, "thresholds": { "mode": "absolute", "steps": [ { "color": "text", "value": null } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 0, "y": 1 }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_players_online{server=~\"$server\"}", "instant": true, "legendFormat": "{{server}}", "range": false, "refId": "A" } ], "title": "Players online", "type": "stat", "id": 2 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 2, "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "orange", "value": 18 }, { "color": "green", "value": 19.5 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 4, "y": 1 }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_tps{server=~\"$server\",window=\"1m\"}", "instant": true, "legendFormat": "{{server}}", "range": false, "refId": "A" } ], "title": "TPS (1m)", "type": "stat", "id": 3 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 2, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 25 }, { "color": "red", "value": 50 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 8, "y": 1 }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_mspt_ms{server=~\"$server\",quantile=\"p50\"}", "instant": true, "legendFormat": "{{server}}", "range": false, "refId": "A" } ], "title": "MSPT p50", "type": "stat", "id": 4 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 2, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 25 }, { "color": "red", "value": 50 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 12, "y": 1 }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_mspt_ms{server=~\"$server\",quantile=\"p95\"}", "instant": true, "legendFormat": "{{server}}", "range": false, "refId": "A" } ], "title": "MSPT p95", "type": "stat", "id": 5 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 2, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 25 }, { "color": "red", "value": 50 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 16, "y": 1 }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_mspt_ms{server=~\"$server\",quantile=\"p99\"}", "instant": true, "legendFormat": "{{server}}", "range": false, "refId": "A" } ], "title": "MSPT p99", "type": "stat", "id": 6 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "text", "value": null } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 20, "y": 1 }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_jvm_memory_bytes_used{server=~\"$server\",area=\"heap\"}", "instant": true, "legendFormat": "{{server}}", "range": false, "refId": "A" } ], "title": "Heap used", "type": "stat", "id": 7 }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }, "panels": [], "title": "Tick performance", "type": "row", "id": 8 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Exact percentiles off Paper's raw per-tick array. A p50 far below the mean means an idle server with rare spikes -- chase the spike, not the average.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" }, "thresholdsStyle": { "mode": "dashed" } }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 25 }, { "color": "red", "value": 50 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 6 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_mspt_ms{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 {{quantile}}", "range": true, "refId": "A" } ], "title": "Tick time percentiles", "type": "timeseries", "id": 9 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Caps at 20, so it cannot show headroom. MSPT is the honest number.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 6 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_tps{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 {{window}}", "range": true, "refId": "A" } ], "title": "TPS", "type": "timeseries", "id": 10 }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 }, "panels": [], "title": "Folia regions", "type": "row", "id": 11 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Folia and Canvas only. Folia has no single server tick, so the panels above stay empty there and these take their place; on Paper it is the other way round. Sampled at the locations of online players, so it is empty with nobody online.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 15 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_folia_region_tps{server=~\"$server\",statistic=\"avg\"}", "legendFormat": "{{server}} \u00b7 {{window}} avg", "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_folia_region_tps{server=~\"$server\",statistic=\"min\"}", "legendFormat": "{{server}} \u00b7 {{window}} worst region", "refId": "B" } ], "title": "Regional TPS (Folia)", "type": "timeseries", "id": 12 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Folia and Canvas only. Folia has no single server tick, so the panels above stay empty there and these take their place; on Paper it is the other way round. Regional MSPT needs a server that exposes per-region tick times, which today means Canvas; pure Folia reports regional TPS only.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" }, "thresholdsStyle": { "mode": "dashed" } }, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "orange", "value": 25 }, { "color": "red", "value": 50 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 15 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_folia_region_mspt_ms{server=~\"$server\",statistic=\"avg\"}", "legendFormat": "{{server}} \u00b7 {{window}} avg", "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_folia_region_mspt_ms{server=~\"$server\",statistic=\"max\"}", "legendFormat": "{{server}} \u00b7 {{window}} worst region", "refId": "B" } ], "title": "Regional tick time (Folia)", "type": "timeseries", "id": 13 }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 23 }, "panels": [], "title": "Memory and CPU", "type": "row", "id": 14 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Max is the 8G Xmx from compose.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 24 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_jvm_memory_bytes_used{server=~\"$server\",area=\"heap\"}", "instant": false, "legendFormat": "{{server}} \u00b7 used", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_jvm_memory_bytes_committed{server=~\"$server\",area=\"heap\"}", "instant": false, "legendFormat": "{{server}} \u00b7 committed", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_jvm_memory_bytes_max{server=~\"$server\",area=\"heap\"}", "instant": false, "legendFormat": "{{server}} \u00b7 max", "range": true, "refId": "C" } ], "title": "Heap", "type": "timeseries", "id": 15 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "System load is reported for the JVM's operating environment, so on a containerised server it reflects the container's cgroup rather than the machine.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 24 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_process_cpu_load_ratio{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 server process", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_system_cpu_load_ratio{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 host or container", "range": true, "refId": "B" } ], "title": "CPU load", "type": "timeseries", "id": 16 }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 32 }, "panels": [], "title": "JVM", "type": "row", "id": 17 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Seconds of GC per second. Sustained high values stall the tick loop.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 60, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "normal" } }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 33 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "rate(mc_jvm_gc_seconds_total{server=~\"$server\"}[$__rate_interval])", "instant": false, "legendFormat": "{{server}} \u00b7 {{gc}}", "range": true, "refId": "A" } ], "title": "GC time rate by collector", "type": "timeseries", "id": 18 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Thread budget matters more than count -- 12 threads on 8 cores once cost 1.3 TPS.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 33 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_jvm_threads_current{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 current", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_jvm_threads_daemon{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 daemon", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_jvm_threads_peak{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 peak", "range": true, "refId": "C" } ], "title": "Threads", "type": "timeseries", "id": 19 }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 41 }, "panels": [], "title": "Worlds", "type": "row", "id": 20 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Per-world, from Paper's O(1) counters. A rising floor here lifts MSPT with it.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 60, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "normal" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 42 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_world_entities{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 {{world}}", "range": true, "refId": "A" } ], "title": "Entities by world", "type": "timeseries", "id": 21 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 60, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "normal" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 42 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_world_chunks{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 {{world}}", "range": true, "refId": "A" } ], "title": "Loaded chunks by world", "type": "timeseries", "id": 22 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Hoppers and chests. Cheaper per unit than entities but they add up.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 60, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "normal" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 42 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_world_tile_entities{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 {{world}}", "range": true, "refId": "A" } ], "title": "Tile entities by world", "type": "timeseries", "id": 23 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Sampled on a slower cadence -- the only reading that walks the entity list. Empty when no chunks are loaded.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 60, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "normal" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 50 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "topk(10, mc_world_entities_by_type{server=~\"$server\"})", "instant": false, "legendFormat": "{{server}} \u00b7 {{type}} ({{world}})", "range": true, "refId": "A" } ], "title": "Top entity types", "type": "timeseries", "id": 24 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 60, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "normal" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 50 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_world_players{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 {{world}}", "range": true, "refId": "A" } ], "title": "Players by world", "type": "timeseries", "id": 25 }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 58 }, "panels": [], "title": "Players and events", "type": "row", "id": 26 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 59 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_players_online{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 online", "range": true, "refId": "A" } ], "title": "Players online", "type": "timeseries", "id": 27 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Empty when nobody is online: TickScope publishes ping only when at least one player was actually measured, so an idle server is not reported as 0 ms.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 59 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_player_ping_avg_ms{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 mean", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_player_ping_max_ms{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 worst", "range": true, "refId": "B" } ], "title": "Ping", "type": "timeseries", "id": 28 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Counters, not samples -- a join between two scrapes is still counted.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 59 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "rate(mc_events_total{server=~\"$server\"}[$__rate_interval])", "instant": false, "legendFormat": "{{server}} \u00b7 {{event}}", "range": true, "refId": "A" } ], "title": "Event rate", "type": "timeseries", "id": 29 }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 67 }, "panels": [], "title": "Exporter", "type": "row", "id": 30 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Time spent collecting TickScope snapshots. Main and entity scans run on separate cadences.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 68 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_collection_duration_seconds{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 main-thread collect", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_entity_collection_duration_seconds{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 entity-type scan", "range": true, "refId": "B" } ], "title": "Collection cost", "type": "timeseries", "id": 31 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 68 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_plugins{server=~\"$server\"}", "instant": false, "legendFormat": "{{server}} \u00b7 plugins", "range": true, "refId": "A" } ], "title": "Plugins loaded", "type": "timeseries", "id": 32 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Time spent collecting TickScope snapshots. Main and entity scans run on separate cadences.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 74 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "(time() - mc_collection_last_success_timestamp_seconds{server=~\"$server\"}) and (mc_collection_enabled{server=~\"$server\"} == 1)", "instant": false, "legendFormat": "{{server}} \u00b7 {{stage}}", "range": true, "refId": "A" } ], "title": "Collection age", "type": "timeseries", "id": 33 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Time spent collecting TickScope snapshots. Main and entity scans run on separate cadences.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 74 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "increase(mc_collection_failures_total{server=~\"$server\"}[$__rate_interval])", "instant": false, "legendFormat": "{{server}} \u00b7 {{stage}}", "range": true, "refId": "A" } ], "title": "Collection failures", "type": "timeseries", "id": 34 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Successful player pings / requested players in the last completed or expired batch. Zero requested players displays 0; regional API availability is reported separately by regional sample counts.", "fieldConfig": { "defaults": { "custom": { "axisSoftMin": 0, "fillOpacity": 12, "lineWidth": 2, "showPoints": "never", "spanNulls": true, "stacking": { "mode": "none" } }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 81 }, "options": { "legend": { "calcs": [ "mean", "max" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "expr": "mc_folia_player_samples_completed{server=~\"$server\"} / clamp_min(mc_folia_player_samples_expected{server=~\"$server\"}, 1)", "instant": false, "legendFormat": "{{server}}", "range": true, "refId": "A" } ], "title": "Folia player sample coverage", "type": "timeseries", "id": 35 } ], "refresh": "30s", "schemaVersion": 39, "tags": [ "minecraft", "paper", "prometheus", "tickscope" ], "time": { "from": "now-6h", "to": "now" }, "timezone": "browser", "title": "TickScope \u2014 Minecraft Server", "uid": "tickscope", "description": "TickScope metrics for Paper, Purpur, Folia and Canvas. Tick performance panels populate on Paper; the Folia regions row populates on Folia and Canvas.", "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "Prometheus data source containing TickScope metrics", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "templating": { "list": [ { "allValue": ".*", "current": { "selected": true, "text": "All", "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "label_values(mc_tickscope_info, server)", "description": "TickScope server-id", "includeAll": true, "label": "Server", "multi": true, "name": "server", "options": [], "query": { "query": "label_values(mc_tickscope_info, server)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "type": "query" } ] } }