Skip to content

The clab-mdt-linker enriches telemetry messages with the applied containerlab impairments

License

Notifications You must be signed in to change notification settings

hawkv6/clab-telemetry-linker

Repository files navigation

containerlab telemetry linker


GitHub Release


Overview

The clab-telemetry-linker service was developed to solve the missing performance measurement support issue in virtual XRd routers, leading to streaming telemetry messages with empty or fixed values. This service allows for the simulation of network impairments like delay, jitter, packet loss, and bandwidth limitations within a containerlab network. By utilizing the containerlab interface, the clab-telemetry-linker can adjust these impairments in the virtual network and populate the streaming telemetry with these values, plus or minus a random value. It can be used with Jalapeno or another similar tech stack using Telegraf, Kafka, and InfluxDB.

Functionality

The Cisco IOS-XRd devices deployed with containerlab transmit telemetry data (Cisco MDT / YANG PUSH) with empty/static values to Telegraf Ingress. The messages are then converted into JSON format and forwarded to Kafka, where they become available in the receiver topic for the clab-telemetry-linker. The data is then processed with the applied impairment values. After processing, the data is converted into Influx Line Protocol and sent to Kafka Publisher Topic. From there, each message is taken by Telegraf Egress and added to the InfluxDB. The following impairments can be linked:

  • delay
  • jitter (delay variation)
  • packet loss
  • bandwidth / rate

Usage

clab-telemetry-linker [command]

Commands

  • Set Impairments - set
  • Show Impairments - show
  • Delete Impairments - delete
  • Start Service - start
  • Print Version - version

Installation

Using Package Manager

For Debian-based systems, install the package using apt:

sudo apt install ./clab-telemetry-linker_{version}_amd64.deb

Using Binary

git clone https://github.com/hawkv6/clab-telemetry-linker
cd clab-telemetry-linker && make binary
sudo ./bin/clab-telemetry-linker

Getting Started

  1. Start the collector pipeline.

  2. Install the network.

  3. Install clab-telemetry-linker.

  4. Set the initial impairments using the set command.

  5. Start the service using the start command.

Additional Info

  • The default configuration file is located at $HOME/.clab-telemetry-linker/config.yaml
  • The default containerlab prefix is: clab-hawkv6 (can be modified in the config file)
  • More details about network configurations are available in network config documentation
  • Example telemetry messages can be found in the examples folder
  • clab-telemetry-linker forwards impairments to the relevant containerlab command. More information can be found here

About

The clab-mdt-linker enriches telemetry messages with the applied containerlab impairments

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published