Skip to content

Latest commit

 

History

History
 
 

flight-telemetry

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ADB-S Flight Telemetry Stream Processing Demo

Reads a ADB-S telemetry stream from ADB-S Exchange on all commercial aircraft flying anywhere in the world. There is typically 5,000 - 6,000 aircraft at any point in time. This is then filtered, aggregated and certain features are enriched and displayed in Grafana service provides real-time information about flights.

The demo will calculate following metrics and publish them in Grafana

  • Filter out planes outside of defined airports
  • Sliding over last 1 minute to detect, whether the plane is ascending, descending or staying in the same level
  • Based on the plane type and phase of the flight provides information about maximum noise levels nearby to the airport and estimated C02 emissions for a region

Package Level Structure

At the highest level, the source code is organized into three packages

  • com.hazelcast.jet.demo The main class (FlightTelemetry) with the main method and the domain model classes resides in this package.
  • com.hazelcast.jet.demo.types The enum classes reside in this package.
  • com.hazelcast.jet.demo.util The utility helper classes reside in this package.

Prerequisites

Docker must be running for this demo to work.

This demo application will output it's results to a Graphite database for visualization with Grafana.

You can easily start a Graphite and Grafana setup with Docker with the provided docker-compose.yml and Makefile script.

You use following command to run the Graphite and Grafana Docker image:

$ make up

When you are done with the demo, to stop the container, run the following command:

$ make down

In case you need to log into running docker container shell, run the following command:

$ make shell

In case you need to view the container log , run the following command:

$ make tail

Building the Application

To build and package the application, run:

mvn clean package

Running the Application

After building the application, run the application with:

mvn exec:java

Then navigate to with your browser localhost to open up the Grafana application. To log into Grafana use admin/admin username/password pair. You need to select Flight Telemetry dashboard to see the metrics that are emitted from the Flight Telemetry application.

Note: The ADB-S data stream publishes ~3 MB of data per update. We are polling it every 10 seconds by default, so you might need a decent internet connection for demo to work properly. Otherwise you might see some delay on the charts/output.

Supporting ADB-S Exchange

This demo uses data provided by ADB-S Exchange. Please consider supporting ADB-S Exchange by a donation or by hosting a feeder.

IMPORTANT

For this demo to work, you need an API key in src/main/java/com/hazelcast/jet/demo/FlightDataSource.java.

Follow the instructions here to obtain one.