@SuppressWarnings({"rawtypes", "unchecked"})
    public <T extends Gauge> T gauge(String name) {
        return (T) getOrAdd(name, MetricBuilder.GAUGES);
    }
@Test
    public void settableGaugeIsTreatedLikeAGauge() {
        final MetricRegistry.MetricSupplier<SettableGauge<String>> supplier = () -> settableGauge;
        final SettableGauge<String> gauge1 = registry.gauge("thing", supplier);
        final SettableGauge<String> gauge2 = registry.gauge("thing", supplier);

        assertThat(gauge1)
                .isSameAs(gauge2);

        verify(listener).onGaugeAdded("thing", gauge1);
    }