Add more graphs
parent
e05f7ff029
commit
b5fdd4da10
|
|
@ -141,3 +141,4 @@ speeds.txt
|
||||||
test3.py
|
test3.py
|
||||||
test4.py
|
test4.py
|
||||||
speeds.txt
|
speeds.txt
|
||||||
|
*.png
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
database_migrate: False
|
database_migrate: False
|
||||||
output_image_path: /var/www/downloads/speedgraph.png
|
output_image_path: /var/www/downloads/speedgraph_{}.png
|
||||||
output_txt_path: /var/www/downloads/speeds.txt
|
output_txt_path: /var/www/downloads/speeds.txt
|
||||||
ros_dynamic_speed: True
|
ros_dynamic_speed: True
|
||||||
ros_ip: 192.168.88.1
|
ros_ip: 192.168.88.1
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
Date: Down; Up;
|
Date: Down; Up;
|
||||||
2020-06-24 02:37:11.363969: 6.29 Mbps; 4.16 Mbps
|
2020-06-26 18:16:13.262120: None Mbps; None Mbps
|
||||||
2020-06-24 02:38:12.903694: 5.52 Mbps; 3.8 Mbps
|
2020-06-28 16:10:56.596781: 0.88 Mbps; 1.09 Mbps
|
||||||
2020-06-24 02:39:31.212599: 12.07 Mbps; 5.08 Mbps
|
|
||||||
|
|
|
||||||
|
|
@ -34,20 +34,89 @@ def gather_data():
|
||||||
dates.append(entry.date_created)
|
dates.append(entry.date_created)
|
||||||
|
|
||||||
return dates, downloads, uploads
|
return dates, downloads, uploads
|
||||||
|
|
||||||
|
|
||||||
@catch_errors
|
|
||||||
def generate_plot_image(dates, downloads, uploads):
|
|
||||||
log.debug("Genering image output...")
|
|
||||||
import matplotlib
|
import matplotlib
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
@catch_errors
|
||||||
|
def generate_plot_image(dates, downloads, uploads, name="speed", description="Speed Graph"):
|
||||||
|
log.debug("Genering image output for {}...".format(name))
|
||||||
|
|
||||||
|
|
||||||
dates = matplotlib.dates.date2num(dates)
|
dates = matplotlib.dates.date2num(dates)
|
||||||
fig = plt.figure(figsize=(12, 3))
|
fig = plt.figure(figsize=(len(dates / 10), 3))
|
||||||
plt.plot_date(dates, downloads, fmt="b-")
|
plt.plot_date(dates, downloads, fmt="b-")
|
||||||
plt.ylabel('Download Speed Mbps')
|
plt.ylabel(description + " (Mbps)")
|
||||||
plt.tight_layout()
|
plt.tight_layout()
|
||||||
plt.savefig(read_config()['output_image_path'])
|
plt.savefig(read_config()['output_image_path'].format(name))
|
||||||
|
|
||||||
|
|
||||||
|
@catch_errors
|
||||||
|
def generate_diff(dates, downloads, uploads):
|
||||||
|
dl = []
|
||||||
|
up = []
|
||||||
|
for i, date in enumerate(dates):
|
||||||
|
curr = downloads[i] if downloads[i] else 0
|
||||||
|
prev = downloads[i-1] if downloads[i-1] and i > 0 else 0
|
||||||
|
dl.append(curr - prev)
|
||||||
|
curr = downloads[i] if downloads[i] else 0
|
||||||
|
prev = downloads[i - 1] if downloads[i - 1] and i > 0 else 0
|
||||||
|
up.append(curr - prev)
|
||||||
|
generate_plot_image(dates, dl, up, "diff", "Difference Graph")
|
||||||
|
|
||||||
|
|
||||||
|
def generate_updown_plot_simple(downloads, uploads, name, description):
|
||||||
|
fig = plt.figure(figsize=(10, 3))
|
||||||
|
plt.plot(downloads, linestyle='dashed', color="red")
|
||||||
|
plt.plot(uploads, linestyle='dashed', color="green")
|
||||||
|
plt.ylabel(description + " (Mbps)")
|
||||||
|
plt.tight_layout()
|
||||||
|
plt.savefig(read_config()['output_image_path'].format(name))
|
||||||
|
|
||||||
|
@catch_errors
|
||||||
|
def gather_week_median_data(dates, downloads, uploads):
|
||||||
|
log.debug("Gather week median data...")
|
||||||
|
dl = []
|
||||||
|
up = []
|
||||||
|
|
||||||
|
for hour in range(24):
|
||||||
|
dl.append([])
|
||||||
|
up.append([])
|
||||||
|
|
||||||
|
for i, date in enumerate(dates):
|
||||||
|
hour = date.hour
|
||||||
|
dl[hour].append(downloads[i] if downloads[i] else 0)
|
||||||
|
up[hour].append(uploads[i] if downloads[i] else 0)
|
||||||
|
|
||||||
|
for i, hour in enumerate(dl):
|
||||||
|
dl[i] = median(dl[i]) if len(dl[i]) > 0 else 0
|
||||||
|
|
||||||
|
for i, hour in enumerate(up):
|
||||||
|
up[i] = median(up[i]) if len(up[i]) > 0 else 0
|
||||||
|
|
||||||
|
return dl, up
|
||||||
|
|
||||||
|
@catch_errors
|
||||||
|
def generate_week_median(dates, downloads, uploads):
|
||||||
|
dl, up = gather_week_median_data(dates, downloads, uploads)
|
||||||
|
|
||||||
|
generate_updown_plot_simple(dl, up, "week_median", "Week median")
|
||||||
|
|
||||||
|
@catch_errors
|
||||||
|
def generate_week_median_diff(dates, downloads, uploads):
|
||||||
|
dl, up = gather_week_median_data(dates, downloads, uploads)
|
||||||
|
|
||||||
|
downs = []
|
||||||
|
ups = []
|
||||||
|
|
||||||
|
for i, down in enumerate(dl):
|
||||||
|
if i > 0:
|
||||||
|
downs.append(dl[i]-dl[i-1])
|
||||||
|
ups.append(up[i]-up[i-1])
|
||||||
|
else:
|
||||||
|
downs.append(down)
|
||||||
|
ups.append(up[i])
|
||||||
|
|
||||||
|
generate_updown_plot_simple(downs, ups, "week_median_diff", "Week median diff")
|
||||||
|
|
||||||
|
|
||||||
@catch_errors
|
@catch_errors
|
||||||
|
|
@ -234,6 +303,12 @@ def generate_database_reports():
|
||||||
|
|
||||||
generate_plot_image(dates, downloads, uploads)
|
generate_plot_image(dates, downloads, uploads)
|
||||||
|
|
||||||
|
generate_week_median(dates, downloads, uploads)
|
||||||
|
|
||||||
|
generate_week_median_diff(dates, downloads, uploads)
|
||||||
|
|
||||||
|
generate_diff(dates, downloads, uploads)
|
||||||
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
from netutils import test_intertnet_connection
|
from netutils import test_intertnet_connection
|
||||||
|
|
@ -266,8 +341,6 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
try:
|
try:
|
||||||
log.debug("Test internet connection...")
|
log.debug("Test internet connection...")
|
||||||
# if not test_intertnet_connection():
|
|
||||||
# no_internet()
|
|
||||||
|
|
||||||
if config["ros_dynamic_speed"]:
|
if config["ros_dynamic_speed"]:
|
||||||
ros_fastrack_enable(True)
|
ros_fastrack_enable(True)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue