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

Side by Side Diff: tools/telemetry/telemetry/results/chart_json.py

Issue 551973002: [Telemetry] Make --chartjson output chart.json instead of to stdout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Ned's comments Created 6 years, 3 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
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 import collections
6 import itertools
7
8 from telemetry.value import summary as summary_module
9
10 def ResultsAsChartDict(benchmark_metadata, page_specific_values,
11 summary_values):
12 """Produces a dict for serialization to Chart JSON format from raw values.
13
14 Chart JSON is a transformation of the basic Telemetry JSON format that
15 removes the page map, summarizes the raw values, and organizes the results
16 by chart and trace name. This function takes the key pieces of data needed to
17 perform this transformation (namely, lists of values and a benchmark metadata
18 object) and processes them into a dict which can be serialized using the json
19 module.
20
21 Design doc for schema: http://goo.gl/kOtf1Y
22
23 Args:
24 page_specific_values: list of page-specific values
25 summary_values: list of summary values
26 benchmark_metadata: a benchmark.BenchmarkMetadata object
27
28 Returns:
29 A Chart JSON dict corresponding to the given data.
30 """
31 summary = summary_module.Summary(page_specific_values)
32 values = itertools.chain(
33 summary.interleaved_computed_per_page_values_and_summaries,
34 summary_values)
35 charts = collections.defaultdict(dict)
36
37 for value in values:
38 if value.page:
39 chart_name, trace_name = (
40 value.GetChartAndTraceNameForPerPageResult())
41 else:
42 chart_name, trace_name = (
43 value.GetChartAndTraceNameForComputedSummaryResult(None))
44 if chart_name == trace_name:
45 trace_name = 'summary'
46
47 assert trace_name not in charts[chart_name]
48
49 charts[chart_name][trace_name] = value.AsDict()
50
51 result_dict = {
52 'format_version': '0.1',
53 'benchmark_name': benchmark_metadata.name,
54 'charts': charts
55 }
56
57 return result_dict
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/benchmark.py ('k') | tools/telemetry/telemetry/results/chart_json_output_formatter.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698