Add print for log debug

This commit is contained in:
Luc VOISE 2020-10-16 17:20:32 +02:00
commit 870c7ddcf9
2 changed files with 15 additions and 11 deletions

View File

@ -23,6 +23,7 @@ The variables available are:
- INFLUX_DB_TAGS = *comma seperated list of tags. See below for options* - INFLUX_DB_TAGS = *comma seperated list of tags. See below for options*
- SPEEDTEST_INTERVAL = 60 - SPEEDTEST_INTERVAL = 60
- SPEEDTEST_FAIL_INTERVAL = 5 - SPEEDTEST_FAIL_INTERVAL = 5
- SPEEDTEST_SERVER_ID = *id from https://c.speedtest.net/speedtest-servers-static.php*
### Variable Notes ### Variable Notes
- Intervals are in minutes. *Script will convert it to seconds.* - Intervals are in minutes. *Script will convert it to seconds.*
@ -58,7 +59,7 @@ Be aware that this script will automatically accept the license and GDPR stateme
1. Build the container. 1. Build the container.
`docker build -t breadlysm/speedtest-to-influxdb ./` `docker build -t sky007fr/speedtest-to-influxdb ./`
2. Run the container. 2. Run the container.
``` ```
@ -70,13 +71,14 @@ Be aware that this script will automatically accept the license and GDPR stateme
-e 'INFLUX_DB_DATABASE'='speedtest' \ -e 'INFLUX_DB_DATABASE'='speedtest' \
-e 'SPEEDTEST_INTERVAL'='1800' \ -e 'SPEEDTEST_INTERVAL'='1800' \
-e 'SPEEDTEST_FAIL_INTERVAL'='60' \ -e 'SPEEDTEST_FAIL_INTERVAL'='60' \
breadlysm/speedtest-to-influxdb -e 'SPEEDTEST_SERVER_ID'='12746' \
sky007fr/speedtest-to-influxdb
``` ```
### No Container ### No Container
1. Clone the repo 1. Clone the repo
`git clone https://github.com/breadlysm/speedtest-to-influxdb.git` `git clone https://github.com/sky007fr/speedtest-to-influxdb.git`
2. Configure the .env file in the repo or set the environment variables on your device. 2. Configure the .env file in the repo or set the environment variables on your device.
@ -94,4 +96,4 @@ Be aware that this script will automatically accept the license and GDPR stateme
This script looks to have been originally written by https://github.com/aidengilmartin/speedtest-to-influxdb/blob/master/main.py and I forked it from https://github.com/martinfrancois/speedtest-to-influxdb. They did the hard work, I've continued to modify it though to fit my needs. This script looks to have been originally written by https://github.com/aidengilmartin/speedtest-to-influxdb/blob/master/main.py and I forked it from https://github.com/breadlysm/speedtest-to-influxdb. They did the hard work, I've continued to modify it though to fit my needs.

16
main.py
View File

@ -74,8 +74,8 @@ def tag_selection(data):
return options return options
def format_for_influx(cliout): def format_for_influx(data):
data = json.loads(cliout)
# There is additional data in the speedtest-cli output but it is likely not necessary to store. # There is additional data in the speedtest-cli output but it is likely not necessary to store.
influx_data = [ influx_data = [
{ {
@ -132,14 +132,16 @@ def main():
speedtest = subprocess.run( speedtest = subprocess.run(
["speedtest", "--accept-license", "--accept-gdpr", "-f", "json"], capture_output=True) ["speedtest", "--accept-license", "--accept-gdpr", "-f", "json"], capture_output=True)
print("Automatic server choice") print("Automatic server choice")
else : else:
speedtest = subprocess.run( speedtest = subprocess.run(
["speedtest", "--accept-license", "--accept-gdpr", "-f", "json", "--server-id=" + SERVER_ID], capture_output=True) ["speedtest", "--accept-license", "--accept-gdpr", "-f", "json", "--server-id=" + SERVER_ID], capture_output=True)
print("Manual server choice : ID = " + SERVER_ID) print("Manual server choice : ID = " + SERVER_ID)
if speedtest.returncode == 0: # Speedtest was successful. if speedtest.returncode == 0: # Speedtest was successful.
data = format_for_influx(speedtest.stdout)
print("Speedtest Successful :") print("Speedtest Successful :")
print(speedtest.stdout) data_json = json.loads(speedtest.stdout)
print("time: " + str(data_json['timestamp']) + " - ping: " + str(data_json['ping']['latency']) + " ms - download: " + str(data_json['download']['bandwidth']/125000) + " Mb/s - upload: " + str(data_json['upload']['bandwidth'] / 125000) + " Mb/s - isp: " + data_json['isp'] + " - ext. IP: " + data_json['interface']['externalIp'] + " - server id: " + str(data_json['server']['id']) + " (" + data_json['server']['name'] + " @ " + data_json['server']['location'] + ")")
data = format_for_influx(data_json)
if influxdb_client.write_points(data) == True: if influxdb_client.write_points(data) == True:
print("Data written to DB successfully") print("Data written to DB successfully")
time.sleep(TEST_INTERVAL) time.sleep(TEST_INTERVAL)
@ -152,4 +154,4 @@ def main():
if __name__ == '__main__': if __name__ == '__main__':
print('Speedtest CLI data logger to InfluxDB started...') print('Speedtest CLI data logger to InfluxDB started...')
main() main()