| Index: tools/telemetry/telemetry/page/buildbot_page_measurement_results.py
|
| diff --git a/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py b/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py
|
| index 20b7da9af576cf02fcca033a65ad9c05d418aece..5d9751f5a5b8b3a52b854b7ca1d8ccbab8c3002f 100644
|
| --- a/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py
|
| +++ b/tools/telemetry/telemetry/page/buildbot_page_measurement_results.py
|
| @@ -34,16 +34,16 @@ class BuildbotPageMeasurementResults(
|
|
|
| # Print out the list of unique pages.
|
| # Use a set and a list to efficiently create an order preserving list of
|
| - # unique URLs.
|
| - unique_page_urls = []
|
| - unique_page_urls_set = set()
|
| + # unique page display_names.
|
| + unique_pages = []
|
| + unique_pages_set = set()
|
| for page_values in success_page_results:
|
| - url = page_values.page.display_url
|
| - if url in unique_page_urls_set:
|
| + name = page_values.page.display_name
|
| + if name in unique_pages_set:
|
| continue
|
| - unique_page_urls.append(url)
|
| - unique_page_urls_set.add(url)
|
| - perf_tests_helper.PrintPages(unique_page_urls)
|
| + unique_pages.append(name)
|
| + unique_pages_set.add(name)
|
| + perf_tests_helper.PrintPages(unique_pages)
|
|
|
| # Build the results summary.
|
| results_summary = defaultdict(list)
|
| @@ -56,48 +56,51 @@ class BuildbotPageMeasurementResults(
|
| measurement_units_type = (measurement_name,
|
| value.units,
|
| value.data_type)
|
| - value_url = (value.value, page_values.page.display_url)
|
| - results_summary[measurement_units_type].append(value_url)
|
| + value_and_display_name = (value.value, page_values.page.display_name)
|
| + results_summary[measurement_units_type].append(value_and_display_name)
|
|
|
| - # Output the results summary sorted by name, then units, then data type.
|
| - for measurement_units_type, value_url_list in sorted(
|
| + # Output the results summary sorted by measurement name, then units, then
|
| + # data type.
|
| + for measurement_units_type, value_and_display_name_list in sorted(
|
| results_summary.iteritems()):
|
| measurement, units, data_type = measurement_units_type
|
|
|
| if 'histogram' in data_type:
|
| - by_url_data_type = 'unimportant-histogram'
|
| + by_name_data_type = 'unimportant-histogram'
|
| else:
|
| - by_url_data_type = 'unimportant'
|
| + by_name_data_type = 'unimportant'
|
| if '.' in measurement and 'histogram' not in data_type:
|
| measurement, trace = measurement.split('.', 1)
|
| trace += self._trace_tag
|
| else:
|
| trace = measurement + self._trace_tag
|
|
|
| - # Print individual _by_url results if there's more than 1 successful page,
|
| - # or if there's exactly 1 successful page but a failure exists.
|
| - if not self._trace_tag and (len(value_url_list) > 1 or
|
| - ((self.errors or self.failures) and len(value_url_list) == 1)):
|
| - url_value_map = defaultdict(list)
|
| - for value, url in value_url_list:
|
| - if 'histogram' in data_type and url_value_map[url]:
|
| + # Print individual _by_name results if there's more than 1 successful
|
| + # page, or if there's exactly 1 successful page but a failure exists.
|
| + if not self._trace_tag and (len(value_and_display_name_list) > 1 or
|
| + ((self.errors or self.failures) and
|
| + len(value_and_display_name_list) == 1)):
|
| + name_value_map = defaultdict(list)
|
| + for value, name in value_and_display_name_list:
|
| + if 'histogram' in data_type and name_value_map[name]:
|
| # TODO(tonyg/marja): The histogram processing code only accepts one
|
| # histogram, so we only report the first histogram. Once histograms
|
| # support aggregating multiple values, this can be removed.
|
| continue
|
| - url_value_map[url].append(value)
|
| - for url in unique_page_urls:
|
| - if not len(url_value_map[url]):
|
| + name_value_map[name].append(value)
|
| + for name in unique_pages:
|
| + if not len(name_value_map[name]):
|
| continue
|
| - self._PrintPerfResult(measurement + '_by_url', url,
|
| - url_value_map[url], units, by_url_data_type)
|
| + self._PrintPerfResult(measurement + '_by_name', name,
|
| + name_value_map[name], units, by_name_data_type)
|
|
|
| # If there were no page failures, print the average data.
|
| - # For histograms, we don't print the average data, only the _by_url,
|
| - # unless there is only 1 page in which case the _by_urls are omitted.
|
| + # For histograms, we don't print the average data, only the _by_name,
|
| + # unless there is only 1 page in which case the _by_names are omitted.
|
| if not (self.errors or self.failures):
|
| - if 'histogram' not in data_type or len(value_url_list) == 1:
|
| - values = [i[0] for i in value_url_list]
|
| + if ('histogram' not in data_type or
|
| + len(value_and_display_name_list) == 1):
|
| + values = [i[0] for i in value_and_display_name_list]
|
| if isinstance(values[0], list):
|
| values = list(chain.from_iterable(values))
|
| self._PrintPerfResult(measurement, trace, values, units, data_type)
|
|
|