package uk.ac.imperial.lsds.seep.metrics;
import java.util.concurrent.TimeUnit;
import uk.ac.imperial.lsds.seep.config.Config;
import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.CsvReporter;
import com.codahale.metrics.JmxReporter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Slf4jReporter;
public class SeepMetrics extends MetricRegistry {
final public static MetricRegistry REG = new MetricRegistry();
private static JmxReporter jmxReporter;
private static ConsoleReporter consoleReporter;
private static CsvReporter csvReporter;
private static Slf4jReporter slf4jReporter;
public static void configureMetrics(Config config){
// TODO: configure this component
}
public static void startJMXReporter() {
jmxReporter = JmxReporter.forRegistry(REG).build();
jmxReporter.start();
}
public static void startConsoleReporter(int period) {
// TODO: implement console reporter, useful for debugging
consoleReporter = ConsoleReporter.forRegistry(REG)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build();
consoleReporter.start(period, TimeUnit.SECONDS);
}
public static void startCSVReporter() {
// TODO: implement console reporter, useful for experiments
}
public static void startSLF4JReporter() {
// TODO: implement slf4j reporter, useful for stable versions
}
}