Device Performance Telemetry
Performance Telemetry helps you understand hardware limitations affecting your players. Identify devices with high crash rates, memory pressure, or FPS issues.
Tracking Performance Data
Section titled “Tracking Performance Data”The SDK tracks performance automatically — no setup required. Three lifecycle events feed the dashboard:
| Event | When | Captures |
|---|---|---|
session_start | SDK init | device_model, cpu_cores, gpu_name, total_ram |
session_ping | Every 60s during play | fps, ram_bytes, scene (live snapshot) |
session_end | On window close | min/avg/max_fps, max_ram, duration |
session_ping (since SDK v1.6.0) feeds the FPS over Time and Peak RAM over Time charts. They show mid-session telemetry even when session_end doesn’t fire (crashes, mobile backgrounding, browser tab kill).
The Dashboard auto-buckets by date range: 1d → 5min, 7d → 1h, 30d → 6h, 90d → 1d.
Dashboard Metrics
Section titled “Dashboard Metrics”| Metric | Source | Description |
|---|---|---|
| Total Sessions | session_end | Sessions that closed cleanly |
| Overall Avg FPS | session_end | Weighted by session count |
| Unique Devices | session_end | Distinct device models |
| Devices with Issues | session_end | Avg FPS < 30 or crash rate > 2% |
| FPS over Time chart | session_ping | Avg + P10 (frame-time spikes) |
| Peak RAM over Time chart | session_ping | Max RAM per bucket — spot leaks |
| Per-Device Table | session_end | Avg/Min/Max FPS, RAM, crash rate |
Finding Problem Hardware
Section titled “Finding Problem Hardware”Devices with >10% crash rates are flagged in red. Common patterns:
| Issue | Indicators | Solution |
|---|---|---|
| Low Memory | >90% memory usage before crash | Reduce texture quality on older devices |
| GPU Driver Bug | Specific model crashes on specific OS | Force OpenGL instead of Vulkan |
| Thermal Throttling | FPS drops over time | Reduce draw calls, add frame rate cap |
API Reference
Section titled “API Reference”Per-Device Aggregate (session_end):
curl "https://api.questdata.io/v1/stats/performance?from=2026-01-01&to=2026-04-01" \ -H "x-game-api-key: YOUR_API_KEY"FPS/RAM Timeseries (session_ping):
curl "https://api.questdata.io/v1/stats/performance/timeseries?from=2026-04-25&to=2026-04-26&bucket=1+hour" \ -H "x-game-api-key: YOUR_API_KEY"Response:
{ "points": [ { "bucket": "2026-04-26T12:00:00.000Z", "avg_fps": 119.8, "p10_fps": 95.0, "max_ram_mb": 357.3, "sample_count": 12 } ]}bucket accepts any Postgres interval (5 minutes, 1 hour, 1 day, …). p10_fps is the 10th percentile — useful for spotting frame-time spikes that average FPS hides.