OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright 2016 The Chromium Authors. All rights reserved. | 3 Copyright 2016 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/metrics/metric_registry.html"> | 8 <link rel="import" href="/tracing/metrics/metric_registry.html"> |
9 <link rel="import" href="/tracing/value/histogram.html"> | 9 <link rel="import" href="/tracing/value/histogram.html"> |
10 <link rel="import" href="/tracing/value/value.html"> | 10 <link rel="import" href="/tracing/value/value.html"> |
11 | 11 |
12 <script> | 12 <script> |
13 'use strict'; | 13 'use strict'; |
14 | 14 |
15 tr.exportTo('tr.metrics.sh', function() { | 15 tr.exportTo('tr.metrics.sh', function() { |
16 | |
17 var CPU_NUMERIC_BUILDER = tr.v.NumericBuilder.createLinear( | |
18 tr.v.Unit.byName.normalizedPercentage_smallerIsBetter, | |
19 tr.b.Range.fromExplicitRange(0, 100), 20); | |
20 | |
21 function getCpuSnapshotsFromModel(model) { | 16 function getCpuSnapshotsFromModel(model) { |
22 var snapshots = []; | 17 var snapshots = []; |
23 for (var pid in model.processes) { | 18 for (var pid in model.processes) { |
24 var snapshotInstances = model.processes[pid].objects.getAllInstancesNamed( | 19 var snapshotInstances = model.processes[pid].objects.getAllInstancesNamed( |
25 'CPUSnapshots'); | 20 'CPUSnapshots'); |
26 if (!snapshotInstances) | 21 if (!snapshotInstances) |
27 continue; | 22 continue; |
28 for (var object of snapshotInstances[0].snapshots) | 23 for (var object of snapshotInstances[0].snapshots) |
29 snapshots.push(object.args.processes); | 24 snapshots.push(object.args.processes); |
30 } | 25 } |
(...skipping 15 matching lines...) Expand all Loading... |
46 return processSums; | 41 return processSums; |
47 } | 42 } |
48 | 43 |
49 function buildNumericsFromSnapshots(snapshots) { | 44 function buildNumericsFromSnapshots(snapshots) { |
50 var processNumerics = new Map(); | 45 var processNumerics = new Map(); |
51 for (var snapshot of snapshots) { | 46 for (var snapshot of snapshots) { |
52 var processSums = getProcessSumsFromSnapshot(snapshot); | 47 var processSums = getProcessSumsFromSnapshot(snapshot); |
53 for (var [processName, processData] of processSums.entries()) { | 48 for (var [processName, processData] of processSums.entries()) { |
54 if (!(processNumerics.has(processName))) { | 49 if (!(processNumerics.has(processName))) { |
55 processNumerics.set(processName, { | 50 processNumerics.set(processName, { |
56 numeric: CPU_NUMERIC_BUILDER.build(), | 51 numeric: new tr.v.Histogram( |
| 52 tr.v.Unit.byName.normalizedPercentage_smallerIsBetter), |
57 paths: new Set() | 53 paths: new Set() |
58 }); | 54 }); |
59 } | 55 } |
60 processNumerics.get(processName).numeric.add( | 56 processNumerics.get(processName).numeric.add( |
61 processData.sum); | 57 processData.sum / 100.0); |
62 for (var path of processData.paths) | 58 for (var path of processData.paths) |
63 processNumerics.get(processName).paths.add(path); | 59 processNumerics.get(processName).paths.add(path); |
64 } | 60 } |
65 } | 61 } |
66 return processNumerics; | 62 return processNumerics; |
67 } | 63 } |
68 | 64 |
69 function cpuProcessMetric(values, model) { | 65 function cpuProcessMetric(values, model) { |
70 var snapshots = getCpuSnapshotsFromModel(model); | 66 var snapshots = getCpuSnapshotsFromModel(model); |
71 var processNumerics = buildNumericsFromSnapshots(snapshots); | 67 var processNumerics = buildNumericsFromSnapshots(snapshots); |
(...skipping 12 matching lines...) Expand all Loading... |
84 } | 80 } |
85 } | 81 } |
86 | 82 |
87 tr.metrics.MetricRegistry.register(cpuProcessMetric); | 83 tr.metrics.MetricRegistry.register(cpuProcessMetric); |
88 | 84 |
89 return { | 85 return { |
90 cpuProcessMetric: cpuProcessMetric | 86 cpuProcessMetric: cpuProcessMetric |
91 }; | 87 }; |
92 }); | 88 }); |
93 </script> | 89 </script> |
OLD | NEW |