{ "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 1, "links": [ { "asDropdown": false, "icon": "external link", "includeVars": false, "keepTime": false, "tags": [], "targetBlank": true, "title": "Other Dashboards", "tooltip": "", "type": "dashboards", "url": "" } ], "liveNow": false, "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 2, "panels": [], "title": "Global Server Stats", "type": "row" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "locale" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 0, "y": 1 }, "id": 5, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.2.3", "targets": [ { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: -1h)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> last()\r\n |> map(fn: (r) => ({_value: r._value}))\r\n |> group(columns: [])\r\n |> sum()\r\n", "refId": "A" } ], "title": "Total Players Online (now)", "type": "stat" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "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": 1, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 0, "displayName": "${__field.labels.name}", "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "locale" }, "overrides": [ { "matcher": { "id": "byName", "options": "totalPlayerCombind" }, "properties": [ { "id": "displayName", "value": "Total players across all servers" }, { "id": "mappings", "value": [] }, { "id": "color", "value": { "fixedColor": "#ffffff", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 10, "w": 16, "x": 4, "y": 1 }, "id": 1, "options": { "legend": { "calcs": ["max", "mean", "last"], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Last", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> aggregateWindow(every: 5m, fn: mean, createEmpty: false)\r\n |> yield(name: \"mean\")", "refId": "A" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "hide": false, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> aggregateWindow(every: 5m, fn: mean, createEmpty: false)\r\n |> group(columns: [\"_measurement\"]) // Group by measurement to get a single result per measurement\r\n |> aggregateWindow(every: 5m, fn: sum, createEmpty: false)\r\n |> map(fn: (r) => ({ _time: r._time, totalPlayerCombind: r._value })) // Retain time and rename the column\r\n |> yield(name: \"totalPlayerCombind\")\r\n", "refId": "B" } ], "title": "Global Server Player Count (5m avg)", "type": "timeseries" }, { "datasource": { "type": "influxdb", "uid": "face5ed9-19c5-419c-ac67-e80ed8945e49" }, "gridPos": { "h": 10, "w": 4, "x": 20, "y": 1 }, "id": 17, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, "content": "Tracking historical data for Minecraft servers, this was inspired by [Minetrack](https://github.com/Cryptkeeper/Minetrack).
\nPlease contact me on Discord if there is any issues: `fascinated7`.\n\nWant to add a server? Open a PR [here](https://git.fascinated.cc/Fascinated/mc-tracker/pulls)\n\nSee other metrics [here](https://mc-tracker.fascinated.cc/dashboards)", "mode": "markdown" }, "pluginVersion": "10.2.3", "title": "Information", "type": "text" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "locale" }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 0, "y": 5 }, "id": 6, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.2.3", "targets": [ { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: -1mo)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> distinct(column: \"ip\")\r\n |> group()\r\n |> count()", "refId": "A" } ], "title": "Total Tracked Servers", "type": "stat" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 0, "y": 8 }, "id": 40, "interval": "1d", "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "/^_time$/", "values": false }, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.2.3", "targets": [ { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> group(columns: [\"_measurement\"]) // Group by server\r\n |> last(column: \"_time\") // Get the latest timestamp for each server\r\n |> group(columns: [\"_measurement\"]) // Group again to get each series\r\n |> last() // Get the last value with that timestamp for each server\r\n", "refId": "A" } ], "title": "Last Server Ping", "type": "stat" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 11 }, "id": 59, "panels": [], "title": "Player Count (Now)", "type": "row" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 0, "fieldMinMax": false, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "locale" }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 0, "y": 12 }, "id": 58, "maxPerRow": 6, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "limit": 1, "values": false }, "textMode": "auto", "wideLayout": true }, "pluginVersion": "10.2.3", "repeat": "server", "repeatDirection": "h", "targets": [ { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"name\"] == \"${server}\")\r\n |> last()\r\n", "refId": "Player Count" } ], "title": "Player Count Now (${server})", "type": "stat" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 24 }, "id": 3, "panels": [], "title": "Per Server Stats", "type": "row" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 15, "gradientMode": "opacity", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineStyle": { "fill": "solid" }, "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": 300000, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 0, "fieldMinMax": false, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] }, "unit": "locale" }, "overrides": [ { "matcher": { "id": "byName", "options": "1dAvg" }, "properties": [ { "id": "displayName", "value": "Average player count over 1 day" }, { "id": "custom.pointSize", "value": 10 }, { "id": "custom.hideFrom", "value": { "legend": true, "tooltip": false, "viz": false } }, { "id": "custom.showPoints", "value": "always" } ] }, { "matcher": { "id": "byName", "options": "7dAvg" }, "properties": [ { "id": "displayName", "value": "Average player count over 7 days" }, { "id": "custom.hideFrom", "value": { "legend": true, "tooltip": false, "viz": false } }, { "id": "custom.pointSize", "value": 10 }, { "id": "custom.showPoints", "value": "always" } ] }, { "matcher": { "id": "byName", "options": "playerCount" }, "properties": [ { "id": "displayName", "value": "Players Online" } ] }, { "matcher": { "id": "byName", "options": "highestPlayerCount" }, "properties": [ { "id": "displayName", "value": "Peak Player Count (All Time)" }, { "id": "custom.pointSize", "value": 10 }, { "id": "custom.showPoints", "value": "always" }, { "id": "custom.hideFrom", "value": { "legend": true, "tooltip": false, "viz": false } } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 25 }, "id": 4, "maxPerRow": 3, "options": { "legend": { "calcs": ["max", "min", "mean"], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "repeat": "server", "repeatDirection": "h", "targets": [ { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"name\"] == \"${server}\")\r\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: true)\r\n |> yield(name: \"mean\")", "refId": "Player Count" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "hide": true, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"name\"] == \"${server}\")\r\n |> aggregateWindow(every: 1d, fn: mean, createEmpty: false)\r\n |> map(fn: (r) => ({r with _value: r._value, _field: \"1dAvg\"}))\r\n |> yield(name: \"mean\")", "refId": "Player Count (1d avg)" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "hide": true, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"name\"] == \"${server}\")\r\n |> aggregateWindow(every: 1d, fn: mean, createEmpty: false)\r\n |> map(fn: (r) => ({r with _value: r._value, _field: \"7dAvg\"}))\r\n |> yield(name: \"mean\")", "refId": "Player Count (7d avg)" }, { "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "hide": false, "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: 0)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"_field\"] == \"playerCount\")\r\n |> filter(fn: (r) => r[\"name\"] == \"${server}\")\r\n |> map(fn: (r) => ({r with _value: r._value, _field: \"highestPlayerCount\"}))\r\n |> max()", "refId": "Player Count Peak (All time)" } ], "title": "Player Count (${server})", "type": "timeseries" } ], "refresh": "30s", "schemaVersion": 39, "tags": [], "templating": { "list": [ { "current": { "selected": true, "text": ["All"], "value": ["$__all"] }, "datasource": { "type": "influxdb", "uid": "a123f480-c065-4aa4-841e-6d00b4c98e2a" }, "definition": "from(bucket: \"mc-tracker\")\r\n |> range(start: -6h)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> group()\r\n |> distinct(column: \"name\")\r\n", "hide": 2, "includeAll": true, "multi": true, "name": "server", "options": [], "query": "from(bucket: \"mc-tracker\")\r\n |> range(start: -6h)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"playerCount\")\r\n |> group()\r\n |> distinct(column: \"name\")\r\n", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "type": "query" } ] }, "time": { "from": "now-12h", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Server Tracker", "uid": "c4d923ad", "version": 30, "weekStart": "" }