summaryrefslogtreecommitdiff
path: root/bin/speedtest.py
blob: 2c9a5294e76cd82965ae143fc17b7aad6a65036c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/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"))