ORB-2.3: Grafana Dashboard
| # | Panel | Type | Metrics used | |---|-------|------|-------------| | 1 | Project Count by Status | Pie chart | `orbit_project_count` | | 2 | Active Sessions Over Time | Time series | `orbit_active_sessions`, `orbit_websocket_connections` | | 3 | API Request Rate | Stacked bar | `rate(orbit_api_requests_total[5m])` by method | | 4 | API Requests by Path (Top 10) | Bar gauge | `topk(10, increase(orbit_api_requests_total[1h]))` by path | | 5 | Query Latency (p50/p95/p99) | Time series | `histogram_quantile` on `or
Full Public Reader
ORB-2.3: Grafana Dashboard
Status: COMPLETE
What was done
Created a Grafana dashboard JSON for visualizing Orbit server metrics.
### File created
- `deploy/grafana/orbit-dashboard.json`
Dashboard panels (6 total)
| # | Panel | Type | Metrics used |
|---|---|---|---|
| 1 | Project Count by Status | Pie chart | `orbit_project_count` |
| 2 | Active Sessions Over Time | Time series | `orbit_active_sessions`, `orbit_websocket_connections` |
| 3 | API Request Rate | Stacked bar | `rate(orbit_api_requests_total[5m])` by method |
| 4 | API Requests by Path (Top 10) | Bar gauge | `topk(10, increase(orbit_api_requests_total[1h]))` by path |
| 5 | Query Latency (p50/p95/p99) | Time series | `histogram_quantile` on `orbit_query_latency_seconds_bucket` |
| 6 | Orbit Overview | Stat panel | All four core metrics at a glance |
### Dashboard metadata
- UID: `orbit-server-dashboard`
- Tags: `orbit`, `trajectory`, `observability`
- Schema version: 39
- Datasource variable: `${DS_PROMETHEUS}` (auto-selects Prometheus)
- Default time range: last 6 hours
### Usage
Import via Grafana UI: Dashboards > Import > Upload JSON file.
### Validation
- Valid JSON (verified with `json.load`)
- 6 panels, all referencing `orbit_*` metrics
- Datasource templated for portability
Promotion Decision
Attach run IDs, datasets, metrics, and reproduction commands.
Source Anchor
Comp-Core/apps/trajectory/trajectory-orbit/ORB-2.3-COMPLETE.md
Detected Structure
Method · Evaluation