Skip to content

Commit e85d9e2

Browse files
Merge pull request #107 from MiguelNdeCarvalho/add-logging
Add Logging
2 parents ba50e23 + e9c4145 commit e85d9e2

File tree

2 files changed

+27
-14
lines changed

2 files changed

+27
-14
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.vscode
2-
env
2+
env
3+
venv

src/exporter.py

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,24 @@
11
import subprocess
22
import json
3-
import datetime
43
import os
4+
import logging
55
from prometheus_client import make_wsgi_app, Gauge
66
from flask import Flask
77
from waitress import serve
88

99
app = Flask("Speedtest-Exporter") # Create flask app
1010

11+
12+
# Setup logging values
13+
format_string = 'level=%(levelname)s datetime=%(asctime)s %(message)s'
14+
logging.basicConfig(encoding='utf-8', level=logging.DEBUG,
15+
format=format_string)
16+
17+
# Disable Waitress Logs
18+
log = logging.getLogger('waitress')
19+
log.disabled = True
20+
21+
1122
# Create Metrics
1223
server = Gauge('speedtest_server_id', 'Speedtest server ID used to test')
1324
jitter = Gauge('speedtest_jitter_latency_milliseconds',
@@ -27,7 +38,7 @@ def bytes_to_bits(bytes_per_sec):
2738

2839
def bits_to_megabits(bits_per_sec):
2940
megabits = round(bits_per_sec * (10**-6), 2)
30-
return str(megabits) + " Mb/s"
41+
return str(megabits) + "Mbps"
3142

3243

3344
def is_json(myjson):
@@ -52,13 +63,12 @@ def runTest():
5263
output = e.output
5364
if not is_json(output):
5465
if len(output) > 0:
55-
print('Speedtest CLI Error occurred that' +
56-
'was not in JSON format')
57-
print(output)
66+
logging.error('Speedtest CLI Error occurred that' +
67+
'was not in JSON format')
5868
return (0, 0, 0, 0, 0, 0)
5969
except subprocess.TimeoutExpired:
60-
print('Speedtest CLI process took too long to complete ' +
61-
'and was killed.')
70+
logging.error('Speedtest CLI process took too long to complete ' +
71+
'and was killed.')
6272
return (0, 0, 0, 0, 0, 0)
6373

6474
if is_json(output):
@@ -90,11 +100,13 @@ def updateResults():
90100
download_speed.set(r_download)
91101
upload_speed.set(r_upload)
92102
up.set(r_status)
93-
current_dt = datetime.datetime.now()
94-
print(current_dt.strftime("%d/%m/%Y %H:%M:%S - ") + "Server: "
95-
+ str(r_server) + " | Jitter: " + str(r_jitter) + " ms | Ping: "
96-
+ str(r_ping) + " ms | Download: " + bits_to_megabits(r_download)
97-
+ " | Upload:" + bits_to_megabits(r_upload))
103+
logging.info(
104+
"Server=" + str(r_server)
105+
+ " Jitter=" + str(r_jitter) + "ms"
106+
+ " Ping=" + str(r_ping) + "ms"
107+
+ " Download=" + bits_to_megabits(r_download)
108+
+ " Upload=" + bits_to_megabits(r_upload)
109+
)
98110
return make_wsgi_app()
99111

100112

@@ -106,5 +118,5 @@ def mainPage():
106118

107119
if __name__ == '__main__':
108120
PORT = os.getenv('SPEEDTEST_PORT', 9798)
109-
print("Starting Speedtest-Exporter on http://localhost:" + str(PORT))
121+
logging.info("Starting Speedtest-Exporter on http://localhost:" + str(PORT))
110122
serve(app, host='0.0.0.0', port=PORT)

0 commit comments

Comments
 (0)