speedtestlog/logspeedtest.py
paradizelost 06da5ef71a
All checks were successful
/ Plan (push) Successful in 3m6s
Update logspeedtest.py
2024-12-04 09:12:00 -06:00

36 lines
1.4 KiB
Python

#!/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)