| Index: tracing/tracing/metrics/metric_registry.html
|
| diff --git a/tracing/tracing/metrics/metric_registry.html b/tracing/tracing/metrics/metric_registry.html
|
| index 7538d743805c544092efd2b92c62bd1c5755ad7a..ced5222b04a348b772338670c2db1d3f0e358744 100644
|
| --- a/tracing/tracing/metrics/metric_registry.html
|
| +++ b/tracing/tracing/metrics/metric_registry.html
|
| @@ -20,13 +20,31 @@ tr.exportTo('tr.metrics', function() {
|
|
|
| MetricRegistry.addEventListener('will-register', function(e) {
|
| var metric = e.typeInfo.constructor;
|
| - if (!(metric instanceof Function))
|
| + var metadata = e.typeInfo.metadata;
|
| +
|
| + if (!(metric instanceof Function)) {
|
| throw new Error('Metrics must be functions');
|
| + }
|
|
|
| if (metric.length < 2) {
|
| throw new Error('Metrics take a HistogramSet and a Model and ' +
|
| 'optionally an options dictionary');
|
| }
|
| +
|
| + if (!(metadata.histogramNames instanceof Set)) {
|
| + throw new Error('Metrics must register the set of Histogram names ' +
|
| + 'that they may produce');
|
| + }
|
| +
|
| + for (var typeInfo of MetricRegistry.getAllRegisteredTypeInfos()) {
|
| + for (var name of metadata.histogramNames) {
|
| + if (typeInfo.metadata.histogramNames.has(name)) {
|
| + throw new Error('Multiple metrics cannot produce Histograms ' +
|
| + 'with the same name: ' + name + ' ' + metric.name + ' ' +
|
| + typeInfo.constructor.name);
|
| + }
|
| + }
|
| + }
|
| });
|
|
|
| return {
|
|
|