SemanticAggregatorMetricRegistry implements RemoteSemanticMetricRegistry { @Override public RemoteTimer timer(MetricId name) { return timer(name, ImmutableList.of("what")); } SemanticAggregatorMetricRegistry(
        String remoteHost,
        int port,
        int maxConcurrency,
        int hwm); @VisibleForTesting  SemanticAggregatorMetricRegistry(Remote remote); T getOrAdd(
        final MetricId name,
        final List<String> shardKey,
        final SemanticAggregatorMetricBuilder<T> builder
    ); @Override RemoteCounter counter(MetricId name); @Override RemoteCounter counter(MetricId name, List<String> shardKey); @Override RemoteTimer timer(MetricId name); @Override RemoteTimer timer(MetricId name, List<String> shardKey); @Override RemoteDerivingMeter derivingMeter(MetricId name, List<String> shardKey); @Override RemoteDerivingMeter derivingMeter(MetricId name); @Override RemoteHistogram histogram(final MetricId name); @Override RemoteHistogram histogram(final MetricId name, final List<String> shardKey); @Override RemoteMeter meter(final MetricId name); @Override RemoteMeter meter(final MetricId name, final List<String> shardKey); @Override boolean shutdown(long timeout, TimeUnit timeUnit);  }
@Test public void createTimerTest() { assertNotNull(registry.timer(MetricId.build("X").tagged("what", "balls"))); assertNotNull(registry.timer(MetricId.build("X").tagged("what", "balls")).time()); }
@Test public void timerUniquenessTest() { RemoteMetric a = registry.timer(MetricId.build("X").tagged("what", "balls", "status", "tripping")); RemoteMetric b = registry.timer(MetricId.build("X").tagged("what", "balls", "status", "tripping")); assert (a == b); }