Add more graphs
parent
e05f7ff029
commit
b5fdd4da10
|
|
@ -141,3 +141,4 @@ speeds.txt
|
|||
test3.py
|
||||
test4.py
|
||||
speeds.txt
|
||||
*.png
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
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
|
||||
ros_dynamic_speed: True
|
||||
ros_ip: 192.168.88.1
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
Date: Down; Up;
|
||||
2020-06-24 02:37:11.363969: 6.29 Mbps; 4.16 Mbps
|
||||
2020-06-24 02:38:12.903694: 5.52 Mbps; 3.8 Mbps
|
||||
2020-06-24 02:39:31.212599: 12.07 Mbps; 5.08 Mbps
|
||||
2020-06-26 18:16:13.262120: None Mbps; None Mbps
|
||||
2020-06-28 16:10:56.596781: 0.88 Mbps; 1.09 Mbps
|
||||
|
|
|
|||
|
|
@ -34,20 +34,89 @@ def gather_data():
|
|||
dates.append(entry.date_created)
|
||||
|
||||
return dates, downloads, uploads
|
||||
|
||||
|
||||
@catch_errors
|
||||
def generate_plot_image(dates, downloads, uploads):
|
||||
log.debug("Genering image output...")
|
||||
import matplotlib
|
||||
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)
|
||||
fig = plt.figure(figsize=(12, 3))
|
||||
fig = plt.figure(figsize=(len(dates / 10), 3))
|
||||
plt.plot_date(dates, downloads, fmt="b-")
|
||||
plt.ylabel('Download Speed Mbps')
|
||||
plt.ylabel(description + " (Mbps)")
|
||||
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
|
||||
|
|
@ -234,6 +303,12 @@ def generate_database_reports():
|
|||
|
||||
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
|
||||
from netutils import test_intertnet_connection
|
||||
|
|
@ -266,8 +341,6 @@ if __name__ == "__main__":
|
|||
|
||||
try:
|
||||
log.debug("Test internet connection...")
|
||||
# if not test_intertnet_connection():
|
||||
# no_internet()
|
||||
|
||||
if config["ros_dynamic_speed"]:
|
||||
ros_fastrack_enable(True)
|
||||
|
|
|
|||
Loading…
Reference in New Issue