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

Unified Diff: dashboard/dashboard/find_anomalies.py

Issue 2977283002: Ownership into GenericSets (Closed)
Patch Set: Fix reserved info reference 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
Index: dashboard/dashboard/find_anomalies.py
diff --git a/dashboard/dashboard/find_anomalies.py b/dashboard/dashboard/find_anomalies.py
index 6029789c00f9e4ab2081a634c6424b6bc93cb70c..6ba5e7e9b667721c5600a253ad7714cda7cddb96 100644
--- a/dashboard/dashboard/find_anomalies.py
+++ b/dashboard/dashboard/find_anomalies.py
@@ -23,6 +23,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 +325,15 @@ 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
+
+ ownership_component = GetMostRecentDiagnosticValueByName(
+ test.key, reserved_infos.BUG_COMPONENTS.name)
+ ownership_owners = GetMostRecentDiagnosticValueByName(
+ test.key, reserved_infos.OWNERS.name)
+ ownership_information = {
+ 'emails': (ownership_owners or None),
+ 'component': (ownership_component[0] if ownership_component 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.
@@ -380,6 +389,30 @@ def _IsImprovement(test, median_before, median_after):
return True
return False
+def GetMostRecentDiagnosticValueByName(test_key, diagnostic_name):
+ """Gets the data in the latests sparse diagnostic with the given
+ diagnostic name.
+
+ Args:
+ test_key: The TestKey entity to lookup the diagnotics by
+ diagnostic_name: the name of the diagnostics to look up
+
+ Returns:
+ The diagnostic's values.
+ None if no diagnostics are found with the given keys or type.
+ """
+ diagnostics = histogram.SparseDiagnostic.query(ndb.AND(
+ histogram.SparseDiagnostic.end_revision == sys.maxint,
+ histogram.SparseDiagnostic.test == test_key)).fetch()
+
+ diagnostics_named = [d for d in diagnostics if d.name == diagnostic_name]
+
+ for diagnostic in diagnostics_named:
+ diagnostic_data = json.loads(diagnostic.data)
+ return diagnostic_data.get('values')
+
+ return None
+
def GetMostRecentDiagnosticData(test_key, diagnostic_type):
"""Gets the data in the latest sparse diagnostic for the given

Powered by Google App Engine
This is Rietveld 408576698