Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
#!/usr/bin/env python
import datetime
import speedtest
from influxdb import InfluxDBClient
# influx configuration - edit these
ifuser = "grafana"
ifpass = "<yourpassword>"
ifdb = "home"
ifhost = "127.0.0.1"
ifport = 8086
measurement_name = "speedtest"
# take a timestamp for this measurement
time = datetime.datetime.utcnow()
# run a single-threaded speedtest using default server
s = speedtest.Speedtest()
s.get_best_server()
s.download(threads=1)
s.upload(threads=1)
res = s.results.dict()
# format the data as a single measurement for influx
body = [
{
"measurement": measurement_name,
"time": time,
"fields": {
"download": res["download"],
"upload": res["upload"],
"ping": res["ping"]
}
}
]
# connect to influx
ifclient = InfluxDBClient(ifhost,ifport,ifuser,ifpass,ifdb)
# write the measurement
ifclient.write_points(body)
@aglerj

This comment has been minimized.

Copy link

aglerj commented May 23, 2020

for supporting python v3 I had to update this item #!/usr/bin/env python

to #!/usr/bin/env python3

maybe add a comment?

@j-n-s-k-n-r

This comment has been minimized.

Copy link

j-n-s-k-n-r commented May 27, 2020

Hey,

i always get the following error when running the script. I run the script with sudo ./speedtest.py

Traceback (most recent call last):
  File "./speedtest.py", line 4, in <module>
    import speedtest
  File "/home/pi/speedtest.py", line 19, in <module>
    s = speedtest.Speedtest()
AttributeError: 'module' object has no attribute 'Speedtest'

I have followed the instructions so far.

My Python version is 2.7.16
Hardware: RPi 2 with Debian Buster

Cheers
Jonas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.