Skip to content

Commit

Permalink
Add commit context to benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
dianaclarke committed Mar 5, 2021
1 parent 464fbbd commit b875093
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 23 deletions.
19 changes: 14 additions & 5 deletions conbench/app/benchmarks.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ def _get_runs(self):
return response.json, response


class Benchmark(AppEndpoint, BenchmarkMixin):
def page(self, benchmark, form):
class Benchmark(AppEndpoint, BenchmarkMixin, RunMixin):
def page(self, benchmark, run, form):
if not flask_login.current_user.is_authenticated:
delattr(form, "delete")

Expand All @@ -103,12 +103,13 @@ def page(self, benchmark, form):
application=Config.APPLICATION_NAME,
title="Benchmark",
benchmark=benchmark,
run=run,
form=form,
)

def get(self, benchmark_id):
benchmark = self.get_display_benchmark(benchmark_id)
return self.page(benchmark, DeleteForm())
benchmark, run = self._get_benchmark_and_run(benchmark_id)
return self.page(benchmark, run, DeleteForm())

def post(self, benchmark_id):
if not flask_login.current_user.is_authenticated:
Expand All @@ -134,8 +135,16 @@ def post(self, benchmark_id):
if form.errors == csrf:
self.flash("The CSRF token is missing.")

benchmark, run = self._get_benchmark_and_run(benchmark_id)
return self.page(benchmark, run, form)

def _get_benchmark_and_run(self, benchmark_id):
benchmark = self.get_display_benchmark(benchmark_id)
return self.page(benchmark, form)
run = None
if benchmark is not None:
run_id = benchmark["stats"]["run_id"]
run = self.get_display_run(run_id)
return benchmark, run


class BenchmarkList(AppEndpoint):
Expand Down
91 changes: 73 additions & 18 deletions conbench/templates/benchmark-entity.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,42 +23,97 @@
<div class="row">
<div class="col-md-6">
<ul class="list-group">
<li class="list-group-item active">Result</li>
{% for k,v in benchmark.stats.items() %}
<li class="list-group-item active">Benchmark</li>
<li class="list-group-item" style="overflow-y: auto;">
<b>{{ k }}</b>
<b>run</b>
<div align="right" style="display:inline-block; float: right;">
{% if k == "run_id" %}
<a href="{{ url_for('app.run', run_id=v) }}">{{ v }}</a>
{% elif k == "batch_id" %}
<a href="{{ url_for('app.batch', batch_id=v) }}">{{ v }}</a>
{% else %}
{{ v }}
{% endif %}
<a href="{{ url_for('app.run', run_id=benchmark.stats.run_id) }}">{{ benchmark.stats.run_id }}</a>
</div>
</li>
<li class="list-group-item" style="overflow-y: auto;">
<b>batch</b>
<div align="right" style="display:inline-block; float: right;">
<a href="{{ url_for('app.batch', batch_id=benchmark.stats.batch_id ) }}">{{ benchmark.display_batch }}</a>
</div>
</li>
{% endfor %}
<li class="list-group-item active">Tags</li>
{% for k,v in benchmark.tags.items() %}
<li class="list-group-item" style="overflow-y: auto;">
<b>benchmark</b>
<div align="right" style="display:inline-block; float: right;">
{{ benchmark.display_name }}
</div>
</li>
<li class="list-group-item" style="overflow-y: auto;">
<b>mean</b>
<div align="right" style="display:inline-block; float: right;">
{{ benchmark.stats.mean }} {{ benchmark.stats.unit }}</a>
</div>
</li>
<li class="list-group-item active">Result</li>
{% for k,v in benchmark.stats.items() %}
{% if k != "run_id" and k != "batch_id" %}
<li class="list-group-item" style="overflow-y: auto;">
<b>{{ k }}</b>
<div align="right" style="display:inline-block; float: right;">{{ v }}</div>
</li>
{% endif %}
{% endfor %}
<li class="list-group-item active">Machine</li>
{% for k,v in benchmark.machine.items() %}
<li class="list-group-item" style="overflow-y: auto;">
<b>&nbsp;</b>
<div align="right" style="display:inline-block; float: right;">&nbsp;</div>
</li>
<li class="list-group-item active">Tags</li>
{% for k,v in benchmark.tags.items() %}
<li class="list-group-item" style="overflow-y: auto;">
<b>{{ k }}</b>
<div align="right" style="display:inline-block; float: right;">{{ v }}</div>
</li>
{% endfor %}
<li class="list-group-item active" >Context</li>
{% for k,v in benchmark.context.items() %}
</ul>
</div>

<div class="col-md-6">
<ul class="list-group">
{% if run %}
<li class="list-group-item active">Commit</li>
<li class="list-group-item" style="overflow-y: auto;">
<b>commit</b>
<div align="right" style="display:inline-block; float: right;">
<a href="{{ run.commit.url }}">{{ run.commit.message }}</a>
</div>
</li>
<li class="list-group-item" style="overflow-y: auto;">
<b>date</b>
<div align="right" style="display:inline-block; float: right;">
{{ run.commit.display_timestamp }}
</div>
</li>
<li class="list-group-item" style="overflow-y: auto;">
<b>author</b>
<div align="right" style="display:inline-block; float: right;">
{{ run.commit.author_name }} &nbsp;
</div>
</li>
<li class="list-group-item" style="overflow-y: auto;">
<b>repository</b>
<div align="right" style="display:inline-block; float: right;">
<a href="{{ run.commit.repository }}">{{ run.commit.display_repository }}</a>
</div>
</li>
{% endif %}
<li class="list-group-item active">Machine</li>
{% for k,v in benchmark.machine.items() %}
<li class="list-group-item" style="overflow-y: auto;">
<b>{{ k }}</b>
<div align="right" style="display:inline-block; float: right;">{{ v }}</div>
</li>
{% endfor %}
{% endfor %}
<li class="list-group-item active" >Context</li>
{% for k,v in benchmark.context.items() %}
<li class="list-group-item" style="overflow-y: auto;">
<b>{{ k }}</b>
<div align="right" style="display:inline-block; float: right;">{{ v }}</div>
</li>
{% endfor %}
</ul>
</div>
</div>
Expand Down

0 comments on commit b875093

Please sign in to comment.