DustBowl.Games

Prometheus Scrape Config & Grafana Dashboard Generator

Configure node exporters, game server telemetry targets, and Alertmanager thresholds. Export production-ready Prometheus scrape configs (prometheus.yml) and turnkey Grafana dashboard JSON models with dark tactical visualizations for CS2, Minecraft, DayZ, and Rust.

PROMETHEUS GRAFANA JSON WARDEN COMPATIBLE
Game Preset:

Telemetry Target & Scrape Parameters

Define Prometheus endpoints, scrape intervals, and exporter port bindings.

Prometheus Exporter Endpoints
9100
9225
Telemetry Components
Alertmanager Triggers
24
85
90
Grafana Panels 10
Tracked Metrics 5
Scrape Rate 15s
Alert Threshold < 24.0 TPS/Hz
Target: /var/lib/grafana/dashboards/gameserver.json Grafana v10+ schema JSON model with dark tactical theme
{
  "annotations": {
    "list": []
  },
  "editable": true,
  "fiscalYearStartMonth": 0,
  "graphTooltip": 1,
  "id": null,
  "links": [],
  "liveNow": false,
  "panels": [
    {
      "id": 1,
      "title": "Rust Dedicated Active Players",
      "type": "stat",
      "description": "Current active connected player concurrency.",
      "gridPos": {
        "h": 4,
        "w": 6,
        "x": 0,
        "y": 0
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "rust_server_fps{instance=~\u0022$instance\u0022}",
          "legendFormat": "{{instance}}",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "short",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 2,
      "title": "Server Tickrate / FPS",
      "type": "stat",
      "description": "Real-time game engine execution frequency.",
      "gridPos": {
        "h": 4,
        "w": 6,
        "x": 6,
        "y": 0
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "rust_server_players{instance=~\u0022$instance\u0022}",
          "legendFormat": "{{instance}}",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "players",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 3,
      "title": "Host CPU Saturation",
      "type": "stat",
      "description": "Total system CPU utilization across all physical and virtual cores.",
      "gridPos": {
        "h": 4,
        "w": 6,
        "x": 12,
        "y": 0
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "100 - (avg(rate(node_cpu_seconds_total{mode=\u0022idle\u0022, instance=~\u0022$instance\u0022}[2m])) * 100)",
          "legendFormat": "CPU Load",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "percent",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 4,
      "title": "Host Memory Utilization",
      "type": "stat",
      "description": "Percentage of host physical memory actively allocated.",
      "gridPos": {
        "h": 4,
        "w": 6,
        "x": 18,
        "y": 0
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "(1 - (node_memory_MemAvailable_bytes{instance=~\u0022$instance\u0022} / node_memory_MemTotal_bytes{instance=~\u0022$instance\u0022})) * 100",
          "legendFormat": "RAM Used",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "percent",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 5,
      "title": "Tickrate \u0026 Frame Stability Over Time",
      "type": "timeseries",
      "description": "Continuous history of game loop execution rate. Flat lines indicate stable performance.",
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 0,
        "y": 4
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "rust_server_players{instance=~\u0022$instance\u0022}",
          "legendFormat": "Tickrate (Hz / FPS)",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "players",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 6,
      "title": "Concurrent Player Population",
      "type": "timeseries",
      "description": "Player concurrency trends over the selected time window.",
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 12,
        "y": 4
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "rust_server_fps{instance=~\u0022$instance\u0022}",
          "legendFormat": "Players",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "short",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 7,
      "title": "System \u0026 Process Memory Allocation",
      "type": "timeseries",
      "description": "Physical memory bytes consumed by operating system and game daemon.",
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 0,
        "y": 12
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "node_memory_MemTotal_bytes{instance=~\u0022$instance\u0022} - node_memory_MemAvailable_bytes{instance=~\u0022$instance\u0022}",
          "legendFormat": "Used Memory",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "bytes",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 8,
      "title": "rust_server_entities Tracking",
      "type": "timeseries",
      "description": "Total world entities (colliders, building blocks, deployables).",
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 12,
        "y": 12
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "rust_server_entities{instance=~\u0022$instance\u0022}",
          "legendFormat": "rust_server_entities",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "entities",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 9,
      "title": "Network Traffic (Ingress / Egress)",
      "type": "timeseries",
      "description": "Real-time inbound gameplay and query bandwidth.",
      "gridPos": {
        "h": 7,
        "w": 12,
        "x": 0,
        "y": 20
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "rate(node_network_receive_bytes_total{device=~\u0022eth.*|ens.*\u0022, instance=~\u0022$instance\u0022}[1m]) * 8",
          "legendFormat": "RX {{device}}",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "bps",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    },
    {
      "id": 10,
      "title": "Network Outbound Egress",
      "type": "timeseries",
      "description": "Real-time outbound player replication bandwidth.",
      "gridPos": {
        "h": 7,
        "w": 12,
        "x": 12,
        "y": 20
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "prometheus"
          },
          "editorMode": "code",
          "expr": "rate(node_network_transmit_bytes_total{device=~\u0022eth.*|ens.*\u0022, instance=~\u0022$instance\u0022}[1m]) * 8",
          "legendFormat": "TX {{device}}",
          "range": true,
          "refId": "A"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "bps",
          "color": {
            "mode": "palette-classic"
          },
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "yellow",
                "value": 70
              },
              {
                "color": "red",
                "value": 85
              }
            ]
          }
        },
        "overrides": []
      }
    }
  ],
  "refresh": "10s",
  "schemaVersion": 39,
  "style": "dark",
  "tags": [
    "dustbowl",
    "gameserver",
    "rust",
    "production"
  ],
  "templating": {
    "list": [
      {
        "current": {
          "selected": false,
          "value": "198.51.100.25:9100",
          "text": "198.51.100.25:9100"
        },
        "hide": 0,
        "includeAll": false,
        "label": "Instance",
        "multi": false,
        "name": "instance",
        "options": [],
        "query": "label_values(node_cpu_seconds_total, instance)",
        "type": "query"
      }
    ]
  },
  "time": {
    "from": "now-6h",
    "to": "now"
  },
  "timepicker": {
    "refresh_intervals": [
      "5s",
      "10s",
      "30s",
      "1m",
      "5m",
      "15m",
      "30m",
      "1h",
      "2h",
      "1d"
    ]
  },
  "timezone": "browser",
  "title": "DustBowl Rust Dedicated Operations",
  "uid": "db-rust-ops",
  "version": 1
}
Pre-configured Grafana Visual Panels (10)
#1 Rust Dedicated Active Players (stat)
#2 Server Tickrate / FPS (stat)
#3 Host CPU Saturation (stat)
#4 Host Memory Utilization (stat)
#5 Tickrate & Frame Stability Over Time (timeseries)
#6 Concurrent Player Population (timeseries)
#7 System & Process Memory Allocation (timeseries)
#8 rust_server_entities Tracking (timeseries)
#9 Network Traffic (Ingress / Egress) (timeseries)
#10 Network Outbound Egress (timeseries)

Multiplayer Game Server Prometheus & Grafana Architecture

Why Aligning Scrape Intervals Matters

Multiplayer game engines operate on discrete tick loops (e.g. 20 Hz for Minecraft, 30 Hz for Rust, 64/128 Hz for CS2). Prometheus scrape intervals should typically be set to 15 seconds. Finer intervals (5 seconds) generate excessive query thread load on game daemons, while 60-second intervals can miss transient 500ms lag spikes and save hitches entirely.

Distinguishing CPU Saturation from Core Starvation

Many game server processes (like Rust and DayZ) are bottlenecked on a single primary simulation thread. A host CPU utilization of 25% on an 8-core machine may look safe, but if one CPU core is pegged at 100%, the server will drop ticks. The generated Grafana panels track per-core utilization and thread queue lengths.

Alertmanager Runbook Integration

The generated Alertmanager rules categorize anomalies by severity: warning for transient tick drops and high memory usage, and critical for process crashes or imminent out-of-memory terminations. These alerts route directly into Discord, Slack, or PagerDuty.

DustBowl Warden Managed Telemetry

In DustBowl Warden, Prometheus scrape targets and Grafana dashboards deploy automatically alongside your server clusters with zero manual configuration required.

Connection interrupted

We are restoring your session

Your account remains secure while we reconnect you.

Attempt in progress

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

Check your connection, then try again or review our system status.

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

The server rejected this session. Reload to continue securely.

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

Connection status and recovery controls.