Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3429)

Unified Diff: dashboard/dashboard/find_anomalies.py

Issue 2977283002: Ownership into GenericSets (Closed)
Patch Set: Fix tests after reabse Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « dashboard/dashboard/add_histograms_queue_test.py ('k') | dashboard/dashboard/find_anomalies_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dashboard/dashboard/find_anomalies.py
diff --git a/dashboard/dashboard/find_anomalies.py b/dashboard/dashboard/find_anomalies.py
index 6029789c00f9e4ab2081a634c6424b6bc93cb70c..65ff18344a6a23ff0823aaa3d98462743d1a67f9 100644
--- a/dashboard/dashboard/find_anomalies.py
+++ b/dashboard/dashboard/find_anomalies.py
@@ -9,9 +9,7 @@ points in a test for potential regressions or improvements, and creates
new Anomaly entities.
"""
-import json
import logging
-import sys
from google.appengine.ext import ndb
@@ -23,6 +21,7 @@ from dashboard.models import anomaly
from dashboard.models import anomaly_config
from dashboard.models import graph_data
from dashboard.models import histogram
+from tracing.value.diagnostics import reserved_infos
# Number of points to fetch and pass to FindChangePoints. A different number
# may be used if a test has a "max_window_size" anomaly config parameter.
@@ -324,6 +323,17 @@ def _MakeAnomalyEntity(change_point, test, rows):
display_start, display_end = _GetDisplayRange(change_point.x_value, rows)
median_before = change_point.median_before
median_after = change_point.median_after
+
+ queried_diagnostics = histogram.SparseDiagnostic.GetMostRecentValuesByNames(
+ test.key, set([reserved_infos.BUG_COMPONENTS.name,
+ reserved_infos.OWNERS.name]))
+
+ bug_components = queried_diagnostics.get(reserved_infos.BUG_COMPONENTS.name)
+
+ ownership_information = {
+ 'emails': queried_diagnostics.get(reserved_infos.OWNERS.name),
+ 'component': (bug_components[0] if bug_components else None)}
+
return anomaly.Anomaly(
start_revision=start_rev,
end_revision=end_rev,
@@ -344,8 +354,7 @@ def _MakeAnomalyEntity(change_point, test, rows):
units=test.units,
display_start=display_start,
display_end=display_end,
- ownership=GetMostRecentDiagnosticData(test.key, 'Ownership'))
-
+ ownership=ownership_information)
def FindChangePointsForTest(rows, config_dict):
"""Gets the anomaly data from the anomaly detection module.
@@ -379,28 +388,3 @@ def _IsImprovement(test, median_before, median_after):
test.improvement_direction == anomaly.DOWN):
return True
return False
-
-
-def GetMostRecentDiagnosticData(test_key, diagnostic_type):
- """Gets the data in the latest sparse diagnostic for the given
- diagnostic type.
-
- Args:
- test_key: The TestKey entity to lookup the diagnostics by
- diagnostic_type: The type of the diagnostics being looked up
-
- Returns:
- A JSON containing the diagnostic's data.
- None if no diagnostics of the given type are found.
- """
-
- diagnostics = histogram.SparseDiagnostic.query(ndb.AND(
- histogram.SparseDiagnostic.end_revision == sys.maxint,
- histogram.SparseDiagnostic.test == test_key)).fetch()
-
- for diagnostic in diagnostics:
- diagnostic_data = json.loads(diagnostic.data)
- if diagnostic_data['type'] == diagnostic_type:
- return diagnostic_data
-
- return None
« no previous file with comments | « dashboard/dashboard/add_histograms_queue_test.py ('k') | dashboard/dashboard/find_anomalies_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698