Skip to content

arkona-technologies/telemetry-template

Repository files navigation

Arkona Technologies Telemetry Template (version 2)

Telemetry Logo

Overview

Telemetry-template is a containerized software package for monitoring multiple Arkona Technologies BLADE//runner processors. This repository provides a Docker Compose setup to conveniently deploy the telemetry service, InfluxDB, and Grafana. The Docker Compose file provisions both the database and Grafana installation, eliminating the need for additional configuration.

If you, for somewhat reason, want an even simpler setup with influxdb 1.8, switch to "main" branch

Features

  • Convenient Setup: Use Docker Compose to easily set up the telemetry service, InfluxDB, and Grafana.
  • Integrated Database: The setup provisions InfluxDB, a powerful and efficient time-series database, for storing telemetry data.
  • Visualization with Grafana: Grafana is included in the setup, providing a user-friendly interface for visualizing and analyzing telemetry data.
  • Scalable Monitoring: Monitor multiple BLADE//runner processors seamlessly with the scalability of containerized deployments.
  • Added features in version 2 (compared to main branch):
    • Using influxDB version ^2.7
    • Setting up rsyslog, loki and promtail to provide syslog inspection via Grafana

Prerequisites

Before deploying the Docker Compose setup, ensure the following prerequisites are met:

  • Apt package manager, otherwise rsyslog has to be installed manually before setup
  • Make sure that the partition you use is big enough, especially if it's a directory used by the OS, including the users home directory in a non-separated linux installation (which is the default in many distros)
  • git installed (optional)
    • used to clone the repository which could also be done by downloading the zip file from the website

Installation

  1. Clone this repository to your local machine:

    git clone https://github.com/arkona-technologies/telemetry-template.git
  2. Go into the telemetry-template directory and open the wizard with ./wizard.sh

  3. Go to "5 Edit config files" -> .env to configure the provided .env file selecting the editor you want.

  4. Configure via .env file: Customize the .env file as needed, specifying parameters such as processor IPs, ports, and authentication details. Save and close the editor afterwards to get back to the wizard.

    BLADES=172.16.10.2,172.16.20.2
    
    DB_NAME=bladerunner
    DB_PASSWORD=blade__runner # at least 8 characters!
    DB_USER=arkona
    DB_PORT=8086
    DB_ORG=arkona
    DB_RETENTION=7d # can be n d/w (days/weeks)
    DB_TOKEN=
    
    GRAFANA_USER=arkona
    GRAFANA_PW=arkona
  5. Go to the main menu and select "Install"

    It will first look if docker or podman is available as a command. If not it will tell to install one of them via the wizard, when installed the command has to be run again. If docker or podman is installed, the command will try to setup rsyslog first, so please provide the sudo password when asked. Afterwards it will run a setup instance of influxDB to provide the mandatory authorization token and finally start the telemetry service, InfluxDB, Loki, Promtail and Grafana in detached mode.

Stack Overview

The wizard tries to enable a simple setup on a variety of systems, so if you run into issues, please provide feedback on which system you had trouble. Besides providing some overview it tries to cover essential setup steps like installing a missing docker or podman installation, setting lingering for users and more.

  1. Access Grafana at http://localhost:3000 in your browser. Log in with the supplied credentials.

  2. Create dashboards in Grafana to visualize telemetry data from BLADE//runner processors. Take a look at the supplied Dashboards as a guide.

Overview

Stack Overview

A brief excerpt of features

  • Filtered / Sorted Logging of all devices that are logging to the telemetry stack with Loki

  • Flexible alarming system with Grafana

  • Shareable and embeddable dashboards

    • e.g. to display in a manifold multiviewer head
      • currently you're bound to grafana version 9 for that, soon will be updated to support latest grafana versions
  • BLADE//runner specific images for use in grafana canvas panels, to use those, execute:

    ls ./grafana/images/* | xargs -I {} docker cp {} telemetry-template-grafana-1:/usr/share/grafana/public/img/icons/iot/

    from the telemetry directory (note: the name "telemetry-template-grafana-1" could differ)

Optional configuration

Influx commands

Hardware recommendations

As a very rough recommendation there are two scenarios:

Small installations like up to 8 blades with the default configuration can be monitored by a mid range PC.

  • roughly at least: {cpu: i5/Ryzen 5, ram: 16GB RAM, disk: SSD with 200GB space}.

Bigger installations like 40 blades or more** with the default configuration can be monitored by a higher range PC or server.

  • roughly at least: {cpu: i7/i9/Ryzen 7/Ryzen 9/,ram: 64GB RAM,disks: SSD raid10 with 500GB space}.
    • It scales better with more cores/threads than pure clock speed. Server CPUs with more cores (24+) are recommended.
    • More RAM is better as the system responds much better the more it can hold data in memory

**Provided numbers are to be handled with caution as they can differ due to setup and usage. Our lab has around 45 blades running, all being monitored on one server (32 core EPYC, 192GB RAM, SSD raid10, data stored for 7d plus downsampled data for a year plus some other data and services with a load of 30GB RAM used, 140GB RAM cached for influx, 30% CPU in average and ~300GB of data in influx.

Links

Further Reading

License

This project is licensed under the MIT License.

Contributing

Feel free to contribute by submitting issues or pull requests. Your feedback is valuable to us!

About

Template Repository for convenient Telemetry Setup

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages