From 6feeed09cb87834b0af4897f8d6f2c1b68e70d7a Mon Sep 17 00:00:00 2001 From: Vermaas <vermaas@astron.nl> Date: Mon, 4 Mar 2024 08:41:19 +0100 Subject: [PATCH] update static --- atdb/taskdatabase/urls.py | 1 - atdb/taskdatabase/views.py | 52 -------------------------------------- 2 files changed, 53 deletions(-) diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index c2210d56..e01d493c 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -86,7 +86,6 @@ urlpatterns = [ path('monitor/<int:pk>/', views.MonitorDetailsViewAPI.as_view(),name='monitor-detail-view-api'), path('latest_monitor/', views.LatestMonitorListViewAPI.as_view(),name='latest-monitor-detail-view-api'), path('latest_monitor/<int:pk>/', views.LatestMonitorDetailsViewAPI.as_view(), name='latest-monitor-detail-view-api'), - path('create_status_graph/', views.CreateStatusGraph, name='create_status_graph'), path('monitor/clear_inactive_services/', views.ClearInactiveServices, name='clear-inactive-services'), # path('monitoring/service_hold_resume/<int:pk>/<enabled>', views.ServiceHoldResume, name='service-hold-resume'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index b5ee630e..8c78898f 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -1,7 +1,5 @@ import logging import json -from datetime import datetime, timedelta -import matplotlib.pyplot as plt from . import config from django.contrib.auth.decorators import login_required @@ -1146,56 +1144,6 @@ class LatestMonitorDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView): serializer_class = LatestMonitorSerializer -def CreateStatusGraph(request): - - if request.method == 'POST': - status = request.POST.get('status', 'finished') - days_to_check = int(request.POST.get('days', 100)) - bin_size = request.POST.get('bin_size', 'hour') - - # Calculate the date x days ago - start_date = datetime.now() - timedelta(days=days_to_check) - - if bin_size == 'hour': - hour_part = Func(F('timestamp'), function='EXTRACT', template='%(function)s(HOUR from %(expressions)s)', - output_field=IntegerField()) - - queryset = Status.objects.filter(name=status, timestamp__gte=start_date) \ - .annotate(time_bin=F('timestamp') - - hour_part * - ExpressionWrapper(DurationField(hours=1), output_field=IntegerField())) \ - .values('time_bin') \ - .annotate(num_records=Count('id')) \ - .order_by('time_bin') - - - else: - queryset = Status.objects.filter(name=status, timestamp__gte=start_date) \ - .annotate(time_bin=TruncDay('timestamp')) \ - .values('time_bin') \ - .annotate(num_records=Count('id')) \ - .order_by('time_bin') - - # Extract time bins and number of records from queryset - time_bins = [item['time_bin'] for item in queryset] - num_records = [item['num_records'] for item in queryset] - - # Plot the graph - plt.figure(figsize=(10, 6)) - plt.plot(time_bins, num_records, marker='o') - plt.xlabel(bin_size.capitalize()) - plt.ylabel('Number of Records') - plt.title(f'{status} per {bin_size} for the last {days_to_check} days') - plt.xticks(rotation=45) - plt.grid(True) - plt.tight_layout() - plt.savefig('records_per_{}_{}_last_{}days.png'.format(bin_size, status, days_to_check)) - - # Render the template with the graph - return render(request, 'taskdatabase/graphs/status_graph.html') - - return render(request, 'taskdatabase/graphs/status_graph_input_form.html') - @login_required def ClearInactiveServices(request): LatestMonitor.objects.all().delete() -- GitLab