Splunking F1: Part One

Here at Splunk, we are always on the lookout for new and exciting sources of data to get our hands on. When an opportunity to demonstrate Splunk to a prominent Formula One team came along, it really motivated us to search for a relevant data set to tailor the value of Splunk. The suggestion of Formula One racing simulators came from a conversation with an exemplary individual who I will refer to as Dave. Dave, a keen Formula One enthusiast, had identified a new capability in the F1 2016 PS4 game. After discovering telemetry data could be sent via UDP to third party applications, Dave had embarked on a personal project to consume and analyse this data in Splunk.

How it works

Racing simulators have evolved considerably in recent years, adding real-world variables such as fuel usage, damage, tyre properties, suspension settings and more. F1 2016 introduced the feature to expose such metrics via UDP to external devices such as D-BOX, motion platforms, steering wheels and LED devices. The game can be configured to broadcast real-time telemetry data every tenth of a second - equivalent to that of a real-world F1 car - to the local network subnet, or to send UDP traffic to a specific host and port. Each UDP packet sent includes a char array containing the telemetry data in binary format. Splunk as a machine data platform is well equipped to take advantage of the plethora of data on offer, thus providing the basis for an exciting new analytics project.

Any data can be brought into Splunk, but it needs to be in a textual, human readable format for us to comprehend it. To intercept and decode the UDP traffic, we implemented a simple Splunk modular input to listen on a socket, unpack the char array, reformat the data as CSV, and write it to Splunk via the Python SDK. CSV is particularly efficient as it minimises the raw event size and Splunk can easily learn the context of the dataset.

We were able to save significant time and effort by using the Splunk Add-on Builder. The tool helps developers configure data inputs, create a setup page, and ensure adherence to best practices, rather than having to manually edit and manage Splunk configuration files. When building modular inputs, it provides a series of helper classes which further simplify the effort involved.

All in all, including the copious amounts of "testing" of the F1 2016 game, we completed the data ingestion component of the project within a day. We will be publishing the TA on Splunkbase in the near future; in the meantime the source is available on Github.

Splunk Live! F1 Challenge London

As with many types of data in Splunk, you typically find that the same data can be used in a variety of different ways, and for different audiences - each use case defined by the lens we place on the data. Our project commenced as a straightforward demonstration of real-time ingestion of the F1 telemetry data, with a sequence of dashboards to analyse the race data. The opportunity then presented itself to use the F1 data for a different purpose at this year's SplunkLive! London and Paris events.

Stay tuned for part two of this blog to discover how the data unravelled the unlikely event of a tie at SplunkLive! London.

SplunkLive f1 challenge leaderboard

----------------------------------------------------
Thanks!
Jon Varley

Related Articles

Best Practices for Using Splunk Workload Management
Platform
2 Minute Read

Best Practices for Using Splunk Workload Management

Provides pointers on how to best use Splunk workload management
Google Cloud Platform Serverless Ingestion into Splunk
Platform
4 Minute Read

Google Cloud Platform Serverless Ingestion into Splunk

Collect data from GCP by using Splunk’s Google Cloud Platform Add-On. More about the benefits and the how-to of using a serverless push to Splunk option here.
Get in Command of Splunk Resources with Workload Management - Part 1
Platform
4 Minute Read

Get in Command of Splunk Resources with Workload Management - Part 1

In this series, I will share how Splunk Workload Management may be used to solve these challenges. In the first installment below, I will describe how to configure the feature.
The Insider's Guide to Splunk Enterprise Upgrades: Before, During, and After
Platform
4 Minute Read

The Insider's Guide to Splunk Enterprise Upgrades: Before, During, and After

Splunk technical smokejumper David Paper shares tips for a low-risk, fast-recovery Splunk Enterprise upgrade.
Configure Jupyter Notebook to Interact with Splunk Enterprise & the Splunk Machine Learning Toolkit
Platform
3 Minute Read

Configure Jupyter Notebook to Interact with Splunk Enterprise & the Splunk Machine Learning Toolkit

Configure Jupyter Notebook to interact with Splunk Enterprise and the Splunk Machine Learning Toolkit
End of Availability: Splunk-Built Apps and Add-ons
Platform
5 Minute Read

End of Availability: Splunk-Built Apps and Add-ons

Announcing the end of life and end of support for a number of Splunk apps and add-ons happening on June 16, 2019
Splunk Cloud DIY: Even More Self-Service Options to Manage Your Cloud Environment
Platform
2 Minute Read

Splunk Cloud DIY: Even More Self-Service Options to Manage Your Cloud Environment

Splunk Cloud has been rapidly evolving to deliver richer capabilities and meet your unique business needs, including easier-to-use self-service capabilities
Custom Anomaly Detection with Splunk IT Service Intelligence and Machine Learning Toolkit v3.2 - Part 2
Platform
5 Minute Read

Custom Anomaly Detection with Splunk IT Service Intelligence and Machine Learning Toolkit v3.2 - Part 2

Part 2 of a two-part series providing a detailed and technical walkthrough around customizing a custom Splunk ITSI Machine Learning workflow
Custom Anomaly Detection with Splunk IT Service Intelligence and Machine Learning Toolkit v3.2 - Part 1
Platform
7 Minute Read

Custom Anomaly Detection with Splunk IT Service Intelligence and Machine Learning Toolkit v3.2 - Part 1

Part 1 of a two-part series providing a detailed and technical walkthrough around customizing a custom Splunk ITSI Machine Learning workflow