From e56f8823b69cbaee41d3bdd860cc9c99df95e0ae Mon Sep 17 00:00:00 2001 From: arifiorino Date: Wed, 30 Oct 2019 03:37:10 +0000 Subject: [PATCH 1/3] Added side panel --- server/website/website/static/css/base.css | 2 +- server/website/website/templates/session.html | 26 +++++++++++++++++- server/website/website/views.py | 27 +++++++++++++++++-- 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/server/website/website/static/css/base.css b/server/website/website/static/css/base.css index 6570d6d5..3a42d2b1 100644 --- a/server/website/website/static/css/base.css +++ b/server/website/website/static/css/base.css @@ -14,7 +14,7 @@ .boxbody ul li { padding-left: 0.3em; } .plotcontainer { - margin-bottom: 2em; + margin-bottom: 0.5em; } .FixedHeader_Cloned th { background-color: white; } diff --git a/server/website/website/templates/session.html b/server/website/website/templates/session.html index d489e43d..b565761e 100644 --- a/server/website/website/templates/session.html +++ b/server/website/website/templates/session.html @@ -24,6 +24,19 @@ border: 2px solid #F5F5F5; } +#sidepanel { + flex: 1; + height:165px; + border-style: solid; + border-width: 2px; + border-color: #999999; + margin-left:10px; + margin-top:2em; + background-color: #FDFBF4; + color: #5F5F5F; + font-size: 14px; +} + caption > h4 { display: inline-block; position: relative; @@ -205,7 +218,18 @@
-
+
+
+
+
+ Information
+ Knobs Tuned: {{num_knobs}}
+ Pruned Metrics: {{num_metrics}}
+ Results: {{num_sample_points}}
+ Preprocessing: {{pipeline_time}} +
+
+

Filtered Results

diff --git a/server/website/website/views.py b/server/website/website/views.py index 284dc754..7c3213f7 100644 --- a/server/website/website/views.py +++ b/server/website/website/views.py @@ -5,7 +5,7 @@ # # pylint: disable=too-many-lines import logging -import datetime +import datetime as dt import re from collections import OrderedDict @@ -30,7 +30,8 @@ from .db import parser, target_objectives from .forms import NewResultForm, ProjectForm, SessionForm, SessionKnobForm from .models import (BackupData, DBMSCatalog, KnobCatalog, KnobData, MetricCatalog, - MetricData, Project, Result, Session, Workload, SessionKnob) + MetricData, Project, Result, Session, Workload, SessionKnob, + PipelineData) from .tasks import (aggregate_target_results, map_workload, train_ddpg, configuration_recommendation, configuration_recommendation_ddpg) from .types import (DBMSType, KnobUnitType, MetricType, @@ -258,6 +259,24 @@ def session_view(request, project_id, session_id): form_labels = Session.get_labels() form_labels['title'] = "Session Info" + num_knobs = str(len(knob_names)) + num_sample_points = str(len(results)) + num_metrics = "Not available" + pipeline_time = "Not available" + if default_workload != 'show_none': + workload = workloads[default_workload][0] + pruned_metrics = PipelineData.objects.filter(workload=workload, + task_type=1).order_by('-creation_time') + if len(pruned_metrics) > 0: + num_metrics = str(len(JSONUtil.loads(pruned_metrics[0].data))) + pipeline_time = PipelineData.objects.filter(workload=workload) + pipeline_time = [pipelineData.pipeline_run for pipelineData in pipeline_time] + pipeline_time = [(pipelineRun.end_time - pipelineRun.start_time).total_seconds() + for pipelineRun in pipeline_time if pipelineRun.end_time is not None] + sec = sum(pipeline_time) / (len(pipeline_time) / 4) + pipeline_time = str(dt.timedelta(seconds=sec)) + pipeline_time = pipeline_time[:pipeline_time.find(".")] + context = { 'project': project, 'dbmss': dbmss, @@ -276,6 +295,10 @@ def session_view(request, project_id, session_id): 'session': session, 'results': results, 'labels': form_labels, + 'num_metrics': num_metrics, + 'num_sample_points': num_sample_points, + 'num_knobs': num_knobs, + 'pipeline_time': pipeline_time, } context.update(csrf(request)) return render(request, 'session.html', context) From 34e33df6c0560e989bfe829cedba3ba0e1e84543 Mon Sep 17 00:00:00 2001 From: arifiorino Date: Wed, 30 Oct 2019 04:05:48 +0000 Subject: [PATCH 2/3] Fixed preprocessing time --- server/website/website/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/website/website/views.py b/server/website/website/views.py index 7c3213f7..b3ac6d59 100644 --- a/server/website/website/views.py +++ b/server/website/website/views.py @@ -269,11 +269,10 @@ def session_view(request, project_id, session_id): task_type=1).order_by('-creation_time') if len(pruned_metrics) > 0: num_metrics = str(len(JSONUtil.loads(pruned_metrics[0].data))) - pipeline_time = PipelineData.objects.filter(workload=workload) - pipeline_time = [pipelineData.pipeline_run for pipelineData in pipeline_time] + pipeline_time = [pipelineData.pipeline_run for pipelineData in pruned_metrics] pipeline_time = [(pipelineRun.end_time - pipelineRun.start_time).total_seconds() for pipelineRun in pipeline_time if pipelineRun.end_time is not None] - sec = sum(pipeline_time) / (len(pipeline_time) / 4) + sec = sum(pipeline_time) / len(pipeline_time) pipeline_time = str(dt.timedelta(seconds=sec)) pipeline_time = pipeline_time[:pipeline_time.find(".")] From 269b1ce37ca3878641a572069ab9da6d4c375098 Mon Sep 17 00:00:00 2001 From: arifiorino Date: Sun, 24 Nov 2019 21:42:16 +0000 Subject: [PATCH 3/3] Made graph refresh --- server/website/website/templates/session.html | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/server/website/website/templates/session.html b/server/website/website/templates/session.html index b565761e..cff065c4 100644 --- a/server/website/website/templates/session.html +++ b/server/website/website/templates/session.html @@ -214,6 +214,7 @@
+
@@ -328,6 +329,26 @@

Filtered Results

}); + + {% endblock body %}