class MetricRegistry implements MetricSet {

    @SuppressWarnings("rawtypes")
    public Gauge gauge(String name, final MetricSupplier<Gauge> supplier) {
        return getOrAdd(name, new MetricBuilder<Gauge>() {
            @Override
            public Gauge newMetric() {
                return supplier.newMetric();
            }

            @Override
            public boolean isInstance(Metric metric) {
                return Gauge.class.isInstance(metric);
            }
        });
    }

    public  MetricRegistry();

}