observability
Guide for observability
Observability Stack
Local development observability using Prometheus and Grafana.
For instructions on generating load to see these metrics in action, see Load Testing Guide.
Location
loh-ops-tools/observability/Quick Start
cd loh-ops-tools/observability
docker compose up -dComponents
- Prometheus: Metrics collection (scrapes
/metricsevery 5s) - Grafana: Dashboard visualization (pre-provisioned)
- Node Exporter: Host metrics (CPU, Memory, Disk, Network)
Game Server Integration
The
api-game crate exposes metrics at GET /metrics:Usage in Code
use api_game::metrics;
// In game loop:
metrics::set_connected_players(count);
metrics::record_tick_duration(elapsed_ms);
metrics::increment_messages_processed();SRE Dashboard Panels
The pre-built
loh-sre-dashboard.json includes:- CPU Usage (%)
- Memory Usage
- Connected Players (live gauge)
- Game Tick Duration (p50/p99)
- Network I/O (RX/TX)
- Messages per Second
Files
observability/
├── docker-compose.yml
├── prometheus/
│ └── prometheus.yml
├── grafana/
│ ├── dashboards/
│ │ └── loh-sre-dashboard.json
│ └── provisioning/
│ ├── dashboards/dashboards.yml
│ └── datasources/datasources.yml
└── README.mdCleanup
docker compose down -v