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

com.fnklabs.draenei.MetricsFactoryImpl Maven / Gradle / Ivy

package com.fnklabs.draenei;

import com.codahale.metrics.*;

import java.util.concurrent.TimeUnit;


public class MetricsFactoryImpl implements MetricsFactory {
    private static final MetricRegistry METRIC_REGISTRY = new MetricRegistry();

    private static final Slf4jReporter REPORTER = Slf4jReporter.forRegistry(METRIC_REGISTRY)
                                                               .convertRatesTo(TimeUnit.SECONDS)
                                                               .convertDurationsTo(TimeUnit.MILLISECONDS)
                                                               .build();
    private static MetricsFactory METRICS_FACTORY = new MetricsFactoryImpl();

    public static void report() {
        REPORTER.report();
    }

    public static Timer getTimer(String type) {
        return METRIC_REGISTRY.timer(type);
    }

    public static MetricsFactory getInstance() {
        return METRICS_FACTORY;
    }

    @Override
    public Timer getTimer(MetricsFactory.Type type) {
        return METRIC_REGISTRY.timer(type.toString());
    }

    @Override
    public Counter getCounter(MetricsFactory.Type type) {
        return METRIC_REGISTRY.counter(type.toString());
    }

    @Override
    public Meter getMeter(Type type) {
        return METRIC_REGISTRY.meter(type.toString());
    }

    @Override
    public Histogram getHistogram(Type type) {
        return null;
    }

    static {
        REPORTER.start(5, TimeUnit.SECONDS);
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy