| 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/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> |
| OLD | NEW |