#!/usr/bin/python3 import os import subprocess as sp import requests import time import json def addinfluxrecord(downspeed,upspeed,pktloss,jitter,latencyavg,minlatency,maxlatency): data = f"Down value={downspeed}\nUp value={upspeed}\nPacketLoss value={pktloss}\nJitter value={jitter}\nLatencyAvg value={latencyavg}\nLatencyLow value={minlatency}\nLatencyHigh value={maxlatency}" print(data) headers = {'Content-Type': 'application/x-www-form-urlencoded'} response = requests.post( influxuri, data=data, headers=headers, auth=(infdbuser,infdbpass) ) return response infdbuser = os.environ["INFLUX_USER"] infdbpass = os.environ["INFLUX_PASSWORD"] influxuri = os.environ["INFLUX_URI"] while(True): response = sp.getstatusoutput(f"speedtest --accept-license --format=json")[1] print(response) respjson = json.loads(response.split("\n")[1]) print(response) downspeed = respjson['download']['bandwidth'] * 8 / 1024 / 1024 upspeed = respjson['upload']['bandwidth'] * 8 / 1024 / 1024 pktloss = respjson['packetLoss'] jitter = respjson['ping']['jitter'] latencyavg=respjson['ping']['latency'] minlatency=respjson['ping']['low'] maxlatency=respjson['ping']['high'] result = addinfluxrecord(downspeed,upspeed,pktloss,jitter,latencyavg,minlatency,maxlatency) print(result) time.sleep(300)