@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)); }
void setLogger(StatsLogger logger) { this.statsLoggerRef.set(logger); this.opStatsLoggers.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().createStats(v.getProxyName()))); this.counters.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().createCounter(v.getProxyName()))); this.meters.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().createMeter(v.getProxyName()))); this.gauges.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().registerGauge(v.getProxyName(), v.getValueSupplier()))); }