Forza Horizon telemetry
Collect, store and display telemetry data from Forza Horizon.
Based on the TIG stack
The TIG Stack is an acronym for a platform of open source tools formed by:
- Telegraf: a server agent for collecting and reporting metrics
- InfluxDB: high-performance time series database
- Grafana: visualization of InfluxDB data
Previously was TIC (Telegraf/InfluxDB/Chronograf) but the last one has been replaced
with Grafana in the latest version.
A python script is also necessary as a "proxy" to convert the udp datastream from the game into one
of the supported telegraf input formats
(json in this case, may change in the future).
Requirements
- a copy of Forza Horizon 4 or 5 (PC or XOne)
- docker and docker-compose
How to use
- clone this repository
- run
docker-compose up
- enable data-out feature in game settings, pointing to the host that runs docker, port
9999
- open Grafana in your browser at
localhost:3000
and setup the database connection:
- Data source type:
InfluxDB
- Query Language:
InfluxQL
- Connection URL:
http://influxdb:8086
- Username: the
INFLUXDB_ADMIN_USER
in docker-compose.yml
- Password: the
INFLUXDB_ADMIN_PASSWORD
in docker-compose.yml
- Database:
horizon
- create a new dashboard or import the one included in this repo
Roadmap / improvements
- split data in different InfluxDB measurements/tables
replace the external python script with a telegraf input plugin (python container)
- make a telegraf aggregator plugin to compact data (game send 60 packets/seconds)
- make a telegraf processor plugin to manipulate data (ex. convert car_ordinal in car_model_name)
try Grafana widgets and eventually replace Chronograf (Grafana container)
add support for Forza Motorsport 7 (FM7 no longer included in Game Pass)
add support for Forza Horizon 5 (already works, FH5 uses the same format as FH4)
References