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

com.sproutsocial.metrics.gauges.Gauges Maven / Gradle / Ivy

package com.sproutsocial.metrics.gauges;

import java.util.function.Function;
import java.util.function.Supplier;

import com.codahale.metrics.Gauge;
import com.codahale.metrics.Metered;
import com.codahale.metrics.RatioGauge;

/**
 * Created on 4/19/15
 *
 * @author horthy
 */
public final class Gauges {
    
    private Gauges(){}

    public static Gauge ratioOf(
            final Supplier numerator,
            final Supplier denominator
    ) {
        return new RatioGauge() {
            @Override
            protected Ratio getRatio() {
                return Ratio.of(
                        numerator.get().doubleValue(),
                        denominator.get().doubleValue());
            }
        };
    }

    public static MeteredRatioGauge ratioOf(Metered numerator, Metered denominator) {
        return new MeteredRatioGauge(numerator, denominator);
    }


    public static MeteredRatioGauge ratioOf(
            Metered numerator,
            Metered denominator,
            Function accessor
    ) {
        return new MeteredRatioGauge(numerator, denominator, accessor);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy