Telemetry end-to-end

A package showing telemetry data acquisition end-to-end: Microcontroller firmware to cloud side data processing, using Drogue IoT and Apache Kafka in the process.

Page logo

You will need a Kubernetes instance, the kubectl and the helm tool in order to deploy this package. You will also need to add the Helm chart repository eclipse-iot to your local setup. Please refer to our pre-requisites page for details.

You might also want to install the Drogue IoT command line tool named drg.

While technically any Kubernetes cluster will do, this tutorial focuses on Minikube to keep things as simple as possible. When using Kind or any other Kubernetes cluster, some commands might need to be tweaked a bit.

Minikube

The following command starts up a Minikube cluster suitable for this package:

minikube start --cpus 4 --memory 8192 --disk-size 20gb --addons ingress

Be sure the run the load balancer tunnel, once the instance is started:

minikube tunnel # do not abort this command or close the terminal it is running in

Check access

Be sure that you are logged in to your Kubernetes cluster:

kubectl version

This should print out the version of the client, but must also print out the version of the server.

Example output
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.2", GitCommit:"8b5a19147530eaac9476b0ab82980b4088bbc1b2", GitTreeState:"clean", BuildDate:"2021-09-15T21:38:50Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.2", GitCommit:"8b5a19147530eaac9476b0ab82980b4088bbc1b2", GitTreeState:"clean", BuildDate:"2021-09-15T21:32:41Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}

Install the package

This package consists of multiple components. Some of them are installed in the Kubernetes cluster, while the IoT gateway and the device firmware are naturally installed in dedicated devices.

This page describes the installation of the cluster components, which is orchestrated using an overarching Helm chart.

Assuming you are using Minikube, or have full cluster access, you can simply install this be running the following Helm command:

DOMAIN=.$(minikube ip).nip.io
helm upgrade --install eclipse-iot-telemetry eclipse-iot/telemetry-e2e \
  --timeout 30m \
  --set global.domain=$DOMAIN

Be patient

Depending on your internet speed and overall I/O and CPU performance, this installation may take a bit. Normally it will finish in around 15 minutes.

Assuming you have the watch command, you can watch the progress using the following command:

watch kubectl get pods

Once it is ready

Once the installation is ready, the Helm command will print out some details on the installation.

This will also give you the URL to the web console and the command as well as the access credentials.

What is next?

Go to the next page and set up the IoT gateway.

Requirements
  • Kubernetes
    1.19.x
  • CPUs
    4
  • Memory
    8192 MiB
  • Disk
    20 GiB

Will require cluster admin privileges and an active Ingress controller.

You will also need a micro:bit v2 and a Raspberry Pi 3+ to get the most out of this package.