| 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 |