Python script to parse the output of OVHcloud VAC traffic statistics into the InfluxDB line protocol. Intended to be run via Telegraf's exec input plugin.
OVHcloud Python module (pip install ovh). Other requirements are listed in requirements.txt.
Configure Telegraf as shown below. Make sure to have the following environnement variables set:
OVH_APP_KEY
OVH_APP_SECRET
OVH_CONSUMER_KEY
These can be generated on OVHcloud's portal. If needed you can build a docker container with the provided Dockerfile.
/etc/telegraf/telegraf.conf
[[inputs.exec]]
commands = ["python3 /usr/src/app/vac-traffic.py 192.0.2.1/32 198.51.100.1/32"]
data_format = "influx"
interval = "1h"
timeout = "600s"
$ python3 ./vac-traffic.py 192.0.2.1/32 198.51.100.1/32
ovh-vac-traffic,subnet=192.0.2.1/32 bps_passed=147733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704274200000000000
ovh-vac-traffic,subnet=192.0.2.1/32 bps_passed=141733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704274500000000000
ovh-vac-traffic,subnet=192.0.2.1/32 bps_passed=143733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704274800000000000
ovh-vac-traffic,subnet=192.0.2.1/32 bps_passed=13733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704275100000000000
ovh-vac-traffic,subnet=192.0.2.1/32 bps_passed=147733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704275400000000000
ovh-vac-traffic,subnet=192.0.2.1/32 bps_passed=117433,bps_dropped=0,pps_passed=260,pps_dropped=0 1704275700000000000
ovh-vac-traffic,subnet=198.51.100.1/32 bps_passed=127733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704276000000000000
ovh-vac-traffic,subnet=198.51.100.1/32 bps_passed=147733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704276300000000000
ovh-vac-traffic,subnet=198.51.100.1/32 bps_passed=137733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704276600000000000
ovh-vac-traffic,subnet=198.51.100.1/32 bps_passed=147733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704276900000000000
ovh-vac-traffic,subnet=198.51.100.1/32 bps_passed=47733,bps_dropped=0,pps_passed=240,pps_dropped=0 1704277200000000000
ovh-vac-traffic,subnet=198.51.100.1/32 bps_passed=147733,bps_dropped=0,pps_passed=260,pps_dropped=0 1704277500000000000
Example Influxdbv2 output configuration in telegraf :
[[outputs.influxdb_v2]]
urls = ["http://influxdb:8086"]
token = "redacted"
organization = "ovh"
bucket = "network-poll"