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

Side by Side Diff: tracing/tracing/metrics/system_health/clock_sync_latency_metric.html

Issue 2293533002: Refactor NumericBuilder to HistogramBinBoundaries. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: rebase Created 4 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
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/metrics/system_health/utils.html"> 9 <link rel="import" href="/tracing/metrics/system_health/utils.html">
10 <link rel="import" href="/tracing/model/model.html"> 10 <link rel="import" href="/tracing/model/model.html">
11 <link rel="import" href="/tracing/value/histogram.html"> 11 <link rel="import" href="/tracing/value/histogram.html">
12 <link rel="import" href="/tracing/value/value.html"> 12 <link rel="import" href="/tracing/value/value.html">
13 13
14 <script> 14 <script>
15 'use strict'; 15 'use strict';
16 16
17 tr.exportTo('tr.metrics.sh', function() { 17 tr.exportTo('tr.metrics.sh', function() {
18 var LATENCY_NUMERIC_BUILDER = tr.v.NumericBuilder.createExponential(
19 tr.v.Unit.byName.timeDurationInMs_smallerIsBetter,
20 tr.b.Range.fromExplicitRange(1e-3, 1e3), 30);
21
22 function syncIsComplete(markers) { 18 function syncIsComplete(markers) {
23 return markers.length === 2; 19 return markers.length === 2;
24 } 20 }
25 21
26 function syncInvolvesTelemetry(markers) { 22 function syncInvolvesTelemetry(markers) {
27 for (var marker of markers) 23 for (var marker of markers)
28 if (marker.domainId === tr.model.ClockDomainId.TELEMETRY) 24 if (marker.domainId === tr.model.ClockDomainId.TELEMETRY)
29 return true; 25 return true;
30 26
31 return false; 27 return false;
32 } 28 }
33 29
34 function clockSyncLatencyMetric(values, model) { 30 function clockSyncLatencyMetric(values, model) {
35 for (var markers of model.clockSyncManager.markersBySyncId.values()) { 31 for (var markers of model.clockSyncManager.markersBySyncId.values()) {
36 var latency = undefined; 32 var latency = undefined;
37 var targetDomain = undefined; 33 var targetDomain = undefined;
38 if (!syncIsComplete(markers) || !syncInvolvesTelemetry(markers)) 34 if (!syncIsComplete(markers) || !syncInvolvesTelemetry(markers))
39 continue; 35 continue;
40 36
41 for (var marker of markers) { 37 for (var marker of markers) {
42 var domain = marker.domainId; 38 var domain = marker.domainId;
43 if (domain === tr.model.ClockDomainId.TELEMETRY) 39 if (domain === tr.model.ClockDomainId.TELEMETRY)
44 latency = (marker.endTs - marker.startTs); 40 latency = (marker.endTs - marker.startTs);
45 else 41 else
46 targetDomain = domain.toLowerCase(); 42 targetDomain = domain.toLowerCase();
47 } 43 }
48 44
49 var hist = LATENCY_NUMERIC_BUILDER.build(); 45 var hist = new tr.v.Histogram(
46 tr.v.Unit.byName.timeDurationInMs_smallerIsBetter,
47 tr.v.HistogramBinBoundaries.createExponential(1e-3, 1e3, 30));
50 hist.add(latency); 48 hist.add(latency);
51 values.addValue(new tr.v.NumericValue( 49 values.addValue(new tr.v.NumericValue(
52 'clock_sync_latency_' + targetDomain, hist, 50 'clock_sync_latency_' + targetDomain, hist,
53 {description: 'Clock sync latency for domain ' + targetDomain})); 51 {description: 'Clock sync latency for domain ' + targetDomain}));
54 } 52 }
55 }; 53 };
56 54
57 tr.metrics.MetricRegistry.register(clockSyncLatencyMetric); 55 tr.metrics.MetricRegistry.register(clockSyncLatencyMetric);
58 56
59 return { 57 return {
60 clockSyncLatencyMetric: clockSyncLatencyMetric 58 clockSyncLatencyMetric: clockSyncLatencyMetric
61 }; 59 };
62 }); 60 });
63 </script> 61 </script>
OLDNEW
« no previous file with comments | « tracing/tracing/metrics/sample_metric.html ('k') | tracing/tracing/metrics/system_health/hazard_metric.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698