package org.gbif.checklistbank.config;
import org.gbif.checklistbank.utils.PropertiesUtils;
import java.util.Properties;
import com.codahale.metrics.MetricRegistry;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
*/
public class MetricModule extends AbstractModule {
private static final Logger LOG = LoggerFactory.getLogger(MetricModule.class);
private final GangliaConfiguration cfg;
public MetricModule(Properties properties) {
this.cfg = new GangliaConfiguration();
cfg.host = properties.getProperty("ganglia.host");
cfg.port = PropertiesUtils.getIntProp(properties, "ganglia.host", cfg.port);
}
public MetricModule(GangliaConfiguration cfg) {
this.cfg = cfg;
}
@Provides
@Singleton
public GangliaConfiguration provideCfg() throws Exception {
return cfg;
}
@Provides
@Singleton
@Inject
public MetricRegistry provideMetricRegistry(GangliaConfiguration cfg) throws Exception {
MetricRegistry reg = new MetricRegistry();
cfg.start(reg);
return reg;
}
@Override
protected void configure() {
// nothing to do
}
}