All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.signalfx.codahale.metrics.MetricBuilder Maven / Gradle / Ivy

There is a newer version: 1.0.43
Show newest version
package com.signalfx.codahale.metrics;

import com.codahale.metrics.Counter;
import com.codahale.metrics.ExponentiallyDecayingReservoir;
import com.codahale.metrics.Histogram;
import com.codahale.metrics.Meter;
import com.codahale.metrics.Metric;
import com.codahale.metrics.Timer;

/**
 * A copy of the MetricBuilder defined inside {@link com.codahale.metrics.MetricRegistry}, but a
 * public version.
 * @param     Which metric type this builds
 */
public interface MetricBuilder {
    public T newMetric();

    public boolean isInstance(Metric metric);

    public MetricBuilder COUNTERS = new MetricBuilder() {
        @Override
        public Counter newMetric() {
            return new Counter();
        }

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

    public MetricBuilder HISTOGRAMS = new MetricBuilder() {
        @Override
        public Histogram newMetric() {
            return new Histogram(new ExponentiallyDecayingReservoir());
        }

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

    public MetricBuilder METERS = new MetricBuilder() {
        @Override
        public Meter newMetric() {
            return new Meter();
        }

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

    public MetricBuilder TIMERS = new MetricBuilder() {
        @Override
        public Timer newMetric() {
            return new Timer();
        }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy