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.
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
clab-telemetry-linker [command]
- Set Impairments -
set
- Show Impairments -
show
- Delete Impairments -
delete
- Start Service -
start
- Print Version -
version
For Debian-based systems, install the package using apt
:
sudo apt install ./clab-telemetry-linker_{version}_amd64.deb
git clone https://github.com/hawkv6/clab-telemetry-linker
cd clab-telemetry-linker && make binary
sudo ./bin/clab-telemetry-linker
-
Start the collector pipeline.
- For more information, visit the hawkv6 deployment documentation.
-
Install the network.
- Detailed instructions can be found in the hawkv6 testnetwork documentation.
-
Install
clab-telemetry-linker
. -
Set the initial impairments using the
set
command. -
Start the service using the
start
command.
- 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