@Override public OpStatsLogger createStats(String name) { return getOrSet(this.opStatsLoggers, name, this.statsLoggerRef.get()::createStats, OpStatsLoggerProxy::new); }
@Override public Counter createCounter(String name) { return getOrSet(this.counters, name, this.statsLoggerRef.get()::createCounter, CounterProxy::new); }
@Override public Meter createMeter(String name) { return getOrSet(this.meters, name, this.statsLoggerRef.get()::createMeter, MeterProxy::new); }
@Override public <T extends Number> Gauge registerGauge(String name, Supplier<T> value) { return getOrSet(this.gauges, name, metricName -> this.statsLoggerRef.get().registerGauge(metricName, value), (metric, proxyName, c) -> new GaugeProxy(metric, proxyName, value, c)); }