Update app.py
This commit is contained in:
parent
a766b10061
commit
5abb863d3e
1 changed files with 29 additions and 3 deletions
32
app.py
32
app.py
|
|
@ -345,22 +345,35 @@ def bgp_peer_history_data(neighbor_ip):
|
|||
start_date_str = request.args.get('start_date')
|
||||
end_date_str = request.args.get('end_date')
|
||||
|
||||
aggregation_interval_minutes = 10
|
||||
|
||||
if start_date_str and end_date_str:
|
||||
start_date = datetime.fromisoformat(start_date_str)
|
||||
end_date = datetime.fromisoformat(end_date_str)
|
||||
|
||||
duration_days = (end_date - start_date).total_seconds() / 86400
|
||||
if duration_days > 30:
|
||||
aggregation_interval_minutes = 120
|
||||
elif duration_days > 7:
|
||||
aggregation_interval_minutes = 60
|
||||
elif duration_days > 2:
|
||||
aggregation_interval_minutes = 30
|
||||
else:
|
||||
time_range = request.args.get('range', '24h')
|
||||
end_date = datetime.utcnow()
|
||||
if time_range == '7d':
|
||||
start_date = end_date - timedelta(days=7)
|
||||
aggregation_interval_minutes = 30
|
||||
elif time_range == '30d':
|
||||
start_date = end_date - timedelta(days=30)
|
||||
aggregation_interval_minutes = 60
|
||||
elif time_range == '90d':
|
||||
start_date = end_date - timedelta(days=90)
|
||||
aggregation_interval_minutes = 120
|
||||
else:
|
||||
start_date = end_date - timedelta(hours=24)
|
||||
|
||||
history_data = get_peer_history(neighbor_ip, start_date.isoformat(), end_date.isoformat())
|
||||
history_data = get_peer_history(neighbor_ip, start_date.isoformat(), end_date.isoformat(), aggregation_interval_minutes)
|
||||
|
||||
labels = [item['timestamp'] for item in history_data]
|
||||
received_data = [item['prefixes_received'] for item in history_data]
|
||||
|
|
@ -382,22 +395,35 @@ def total_routes_history_data():
|
|||
start_date_str = request.args.get('start_date')
|
||||
end_date_str = request.args.get('end_date')
|
||||
|
||||
aggregation_interval_minutes = 10
|
||||
|
||||
if start_date_str and end_date_str:
|
||||
start_date = datetime.fromisoformat(start_date_str)
|
||||
end_date = datetime.fromisoformat(end_date_str)
|
||||
|
||||
duration_days = (end_date - start_date).total_seconds() / 86400
|
||||
if duration_days > 30:
|
||||
aggregation_interval_minutes = 120
|
||||
elif duration_days > 7:
|
||||
aggregation_interval_minutes = 60
|
||||
elif duration_days > 2:
|
||||
aggregation_interval_minutes = 30
|
||||
else:
|
||||
time_range = request.args.get('range', '24h')
|
||||
end_date = datetime.utcnow()
|
||||
if time_range == '7d':
|
||||
start_date = end_date - timedelta(days=7)
|
||||
aggregation_interval_minutes = 30
|
||||
elif time_range == '30d':
|
||||
start_date = end_date - timedelta(days=30)
|
||||
aggregation_interval_minutes = 60
|
||||
elif time_range == '90d':
|
||||
start_date = end_date - timedelta(days=90)
|
||||
else: # Default to 24h
|
||||
aggregation_interval_minutes = 120
|
||||
else:
|
||||
start_date = end_date - timedelta(hours=24)
|
||||
|
||||
history_data = get_total_routes_history(start_date.isoformat(), end_date.isoformat())
|
||||
history_data = get_total_routes_history(start_date.isoformat(), end_date.isoformat(), aggregation_interval_minutes)
|
||||
|
||||
response_data = {
|
||||
"labels": sorted(list(set([item['timestamp'] for item in history_data]))),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue