Index: dashboard/dashboard/benchmark_health_report.py |
diff --git a/dashboard/dashboard/benchmark_health_report.py b/dashboard/dashboard/benchmark_health_report.py |
index f4a78f32702b37683942b2d144b0b6b2288307a6..8cf9520e0db78d6c902c767651122efef6aff9e1 100644 |
--- a/dashboard/dashboard/benchmark_health_report.py |
+++ b/dashboard/dashboard/benchmark_health_report.py |
@@ -8,10 +8,8 @@ import datetime |
import json |
from dashboard import alerts |
-from dashboard import list_tests |
from dashboard import update_test_suites |
from dashboard.common import request_handler |
-from dashboard.common import utils |
from dashboard.models import anomaly |
@@ -51,38 +49,23 @@ class BenchmarkHealthReportHandler(request_handler.RequestHandler): |
values = {} |
# The cached test suite info contains info about monitoring and bots. |
+ query = anomaly.Anomaly.query( |
+ anomaly.Anomaly.benchmark_name == benchmark, |
+ anomaly.Anomaly.master_name == master, |
+ anomaly.Anomaly.is_improvement == False, |
+ anomaly.Anomaly.timestamp > |
+ datetime.datetime.now() - datetime.timedelta(days=num_days)) |
+ query = query.order(-anomaly.Anomaly.timestamp) |
+ anomalies = query.fetch() |
+ values['alerts'] = alerts.AnomalyDicts(anomalies) |
benchmarks = update_test_suites.FetchCachedTestSuites() |
- sheriff = self._GetSheriffForBenchmark(benchmark, master, benchmarks) |
- if sheriff: |
- query = anomaly.Anomaly.query(anomaly.Anomaly.sheriff == sheriff) |
- query = query.filter(anomaly.Anomaly.is_improvement == False) |
- query = query.filter( |
- anomaly.Anomaly.timestamp > |
- datetime.datetime.now() - datetime.timedelta(days=num_days)) |
- query = query.order(-anomaly.Anomaly.timestamp) |
- anomalies = query.fetch() |
- anomalies = [a for a in anomalies if self._BenchmarkName(a) == benchmark] |
+ if benchmarks[benchmark].get('mon'): |
shatch
2017/02/23 15:58:30
nit: Is it possible to have alerts and not be moni
sullivan
2017/02/23 16:11:42
It is possible to have alerts and not be monitored
|
values['monitored'] = True |
- values['alerts'] = alerts.AnomalyDicts(anomalies) |
else: |
values['monitored'] = False |
- |
values['bots'] = benchmarks[benchmark]['mas'][master].keys() |
return values |
- def _GetSheriffForBenchmark(self, benchmark, master, benchmarks): |
- # TODO(sullivan): There can be multiple sheriffs; implement this. |
- if not benchmarks[benchmark]['mon']: |
- return None |
- monitored_test_path = benchmarks[benchmark]['mon'][0] |
- pattern = '%s/*/%s/%s' % (master, benchmark, monitored_test_path) |
- monitored_tests = list_tests.GetTestsMatchingPattern( |
- pattern, list_entities=True) |
- return monitored_tests[0].sheriff |
- |
- def _BenchmarkName(self, alert): |
- return utils.TestPath(alert.test).split('/')[2] |
- |
def _GetResponseValuesForMaster(self, master): |
benchmarks = update_test_suites.FetchCachedTestSuites() |
benchmarks = [b for b in benchmarks if master in benchmarks[b]['mas']] |