I am speed

This commit is contained in:
Sean Corrigan 2020-11-07 16:46:13 -05:00
commit 94be2715a2
3 changed files with 93 additions and 0 deletions

Binary file not shown.

35
influxlite.py Normal file
View File

@ -0,0 +1,35 @@
## Sean Corrigan 2020
# Easy lite API to use in my other scripts
# to send data to my influx server.
from influxdb import InfluxDBClient
def createFields(datadict):
data = []
for i,v in datadict.items():
data.append("\"{}\": {}\n".format(i,v))
return ''.join(data)
def uploadData(host, database, measurementname, datadict, nickname = 'pythontestscript', port=8086): ## Push data to Influx server
fields = createFields(datadict)
bind_params = {'host': servernickname}
json_body = [
{
"measurement": measurementname,
"tags": {
"host": servernickname,
},
"fields": {
createFields(datadict),
}
}
]
client = InfluxDBClient(host, port, database) # Init connection to Influx Server
client.write_points(json_body) # Write Speedtest results
if if __name__ == "__main__":
uploadData(host='192.168.0.13', database='telegraf', )

58
speedbeta.py Normal file
View File

@ -0,0 +1,58 @@
# Sean Corrigan 2020
# Script sends data to influx in bits/sec
import speedtest
import json
from influxdb import InfluxDBClient
serverip = "192.168.0.13"
serverport = 8086
serverdatabase = "telegraf"
servernickname = 'Yoo01pn.ddns.net'
def speed(): # Actual Speedtest using speedtest-cli
servers = ['19249'] # If you want to test against a specific server eg. ['13030'] or [] for closest server
threads = 4
# Choose the amount of threads to use for the test
test = speedtest.Speedtest()
test.get_servers(servers)
test.get_best_server()
test.download(threads=threads)
test.upload(threads=threads)
test.results.share()
results = test.results.dict()
result = {}
result["UploadSpeed"] = results["upload"]
result["DownloadSpeed"] = results["download"]
result["Ping"] = results["ping"]
print(results["share"]) # Show share link
return(result)
def uploadInfluxdata(host='192.168.0.13', port=8086): # Main upload section
query = 'select Float_value from cpu_load_short;'
query_where = 'select Int_value from cpu_load_short where host=$host;'
bind_params = {'host': servernickname}
testdata = speed()
json_body = [
{
"measurement": "PythonSpeedTest",
"tags": {
"host": servernickname,
},
"fields": {
"Upload": testdata["UploadSpeed"],
"Download": testdata["DownloadSpeed"],
"Ping": testdata["Ping"]
}
}
]
client = InfluxDBClient(host, port, database = serverdatabase) # Init connection to Influx Server
client.write_points(json_body) # Write Speedtest results
uploadInfluxdata()