#!/home/mcrute/.local/bin/python3 import json import subprocess from urllib import request def bits_per_second(bytes, seconds): return round(((bytes/seconds) * 8)) r = subprocess.run( ["/usr/bin/iperf3", "-J", "-c", "23.149.16.1"], capture_output=True) results = json.loads(r.stdout) sent_seconds = results["end"]["sum_sent"]["seconds"] sent_bytes = results["end"]["sum_sent"]["bytes"] received_seconds = results["end"]["sum_received"]["seconds"] received_bytes = results["end"]["sum_received"]["bytes"] req = request.Request( "http://monitoring-1.sea1.crute.me:9091/metrics/job/wave_bandwidth_monitor", method="POST") req.add_header("Content-Type", "text/plain") request.urlopen(req, data="bandwidth_sent_bps {}\n".format( bits_per_second(sent_bytes, sent_seconds)).encode("us-ascii")) request.urlopen(req, data="bandwidth_received_bps {}\n".format( bits_per_second(received_bytes, received_seconds)).encode("us-ascii"))