Overview
Project summary
- What it is
- A local simracing telemetry pipeline with UDP input, a Grafana data source plugin and a dashboard.
- My role
- I built the Go processing path, Grafana plugin package, React configuration UI, provisioning and Docker Compose runtime.
- Core stack
- Go, React, Grafana plugin, Docker Compose, UDP simracing telemetry.
Pipeline
The local package exposes UDP port 33740 for simracing telemetry and runs Grafana alongside it. Go processes the incoming data, the data source plugin makes it available to Grafana, and the dashboard displays it.
Grafana integration
The Go backend processes incoming telemetry for the Grafana data source plugin. Grafana requests those values through the plugin. The plugin also has a React configuration UI inside Grafana.
Runtime path
From UDP telemetry to Grafana panels
Packaging decision
Docker Compose mounts the plugin and provisioning files, exposes Grafana on port 3000, maps the UDP telemetry port, and enables the local unsigned plugin.
I put the plugin, backend, provisioning, dashboard, port mappings and startup configuration in one Docker Compose definition. Starting it brings up the whole local runtime.
Runtime boundary
| Runtime part | Implementation detail | Note |
|---|---|---|
| UDP input | The local package exposes UDP port 33740. | UDP listener. |
| Grafana | The Docker Compose bundle exposes port 3000, mounts the plugin, loads the provisioning files and enables the unsigned plugin. | Grafana runtime. |
| Plugin UI | The Grafana data source plugin includes the React configuration UI. | React UI. |