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

Side by Side Diff: telemetry/telemetry/internal/results/buildbot_output_formatter.py

Issue 2012793002: [Telemetry] Remove BuildbotOutputFormatter (Closed) Base URL: git@github.com:catapult-project/catapult.git@master
Patch Set: Created 4 years, 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | telemetry/telemetry/internal/results/buildbot_output_formatter_unittest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 from telemetry import decorators
6 from telemetry.internal.results import output_formatter
7 from telemetry.util import perf_tests_helper
8 from telemetry import value as value_module
9 from telemetry.value import summary as summary_module
10
11
12 @decorators.Deprecated(2016, 2, 29, 'Chart JSON is a supported alternative. '
13 'See https://goo.gl/8daFav .')
14 class BuildbotOutputFormatter(output_formatter.OutputFormatter):
15 def __init__(self, output_stream, trace_tag=''):
16 super(BuildbotOutputFormatter, self).__init__(output_stream)
17 self._trace_tag = trace_tag
18
19 def _PrintPerfResult(self, measurement, trace, v, units,
20 result_type='default'):
21 output = perf_tests_helper.PrintPerfResult(
22 measurement, trace, v, units, result_type, print_to_stdout=False)
23 self.output_stream.write(output + '\n')
24 self.output_stream.flush()
25
26 def Format(self, page_test_results):
27 """Print summary data in a format expected by buildbot for perf dashboards.
28
29 If any failed pages exist, only output individual page results, and do
30 not output any average data.
31 """
32 had_failures = len(page_test_results.failures) > 0
33
34 # Print out the list of unique pages.
35 perf_tests_helper.PrintPages(
36 [page.display_name for page in page_test_results.pages_that_succeeded])
37 summary = summary_module.Summary(page_test_results.all_page_specific_values)
38 for value in summary.interleaved_computed_per_page_values_and_summaries:
39 if value.page:
40 self._PrintComputedPerPageValue(value)
41 else:
42 self._PrintComputedSummaryValue(value, had_failures)
43 self._PrintOverallResults(page_test_results)
44
45 def _PrintComputedPerPageValue(self, value):
46 # We dont print per-page-values when there is a trace tag.
47 if self._trace_tag:
48 return
49
50 # Actually print the result.
51 buildbot_value = value.GetBuildbotValue()
52 buildbot_data_type = value.GetBuildbotDataType(
53 output_context=value_module.PER_PAGE_RESULT_OUTPUT_CONTEXT)
54 if buildbot_value is None or buildbot_data_type is None:
55 return
56
57 buildbot_measurement_name, buildbot_trace_name = (
58 value.GetChartAndTraceNameForPerPageResult())
59 if value.tir_label:
60 buildbot_measurement_name = '%s-%s' % (value.tir_label,
61 buildbot_measurement_name)
62 self._PrintPerfResult(buildbot_measurement_name,
63 buildbot_trace_name,
64 buildbot_value, value.units, buildbot_data_type)
65
66 def _PrintComputedSummaryValue(self, value, had_failures):
67 # If there were any page errors, we typically will print nothing.
68 #
69 # Note: this branch is structured less-densely to improve legibility.
70 if had_failures:
71 return
72
73 buildbot_value = value.GetBuildbotValue()
74 buildbot_data_type = value.GetBuildbotDataType(
75 output_context=value_module.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT)
76 if buildbot_value is None or buildbot_data_type is None:
77 return
78
79 buildbot_measurement_name, buildbot_trace_name = (
80 value.GetChartAndTraceNameForComputedSummaryResult(
81 self._trace_tag))
82 if value.tir_label:
83 buildbot_measurement_name = '%s-%s' % (value.tir_label,
84 buildbot_measurement_name)
85 buildbot_trace_name = '%s-%s' % (value.tir_label,
86 buildbot_trace_name)
87 self._PrintPerfResult(buildbot_measurement_name,
88 buildbot_trace_name,
89 buildbot_value, value.units, buildbot_data_type)
90
91 def _PrintOverallResults(self, page_test_results):
92 # If there were no failed pages, output the overall results (results not
93 # associated with a page).
94 had_failures = len(page_test_results.failures) > 0
95 if not had_failures:
96 for value in page_test_results.all_summary_values:
97 buildbot_value = value.GetBuildbotValue()
98 buildbot_data_type = value.GetBuildbotDataType(
99 output_context=value_module.SUMMARY_RESULT_OUTPUT_CONTEXT)
100 buildbot_measurement_name, buildbot_trace_name = (
101 value.GetChartAndTraceNameForComputedSummaryResult(
102 self._trace_tag))
103 self._PrintPerfResult(
104 buildbot_measurement_name,
105 buildbot_trace_name,
106 buildbot_value,
107 value.units,
108 buildbot_data_type)
109
110 # Print the number of failed and errored pages.
111 self._PrintPerfResult('telemetry_page_measurement_results', 'num_failed',
112 [len(page_test_results.failures)], 'count',
113 'unimportant')
114
115 # TODO(chrishenry): Remove this in a separate patch to reduce the risk
116 # of rolling back due to buildbot breakage.
117 # Also fix src/tools/bisect-perf-regression_test.py when this is
118 # removed.
119 self._PrintPerfResult('telemetry_page_measurement_results', 'num_errored',
120 [0], 'count', 'unimportant')
OLDNEW
« no previous file with comments | « no previous file | telemetry/telemetry/internal/results/buildbot_output_formatter_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698