package com.sf.monitor.druid;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.type.TypeReference;
import com.sf.log.Logger;
import com.sf.monitor.CommonFetcher;
import com.sf.monitor.InfoFetcher;
import com.sf.monitor.Resources;
import com.sf.monitor.Event;
import java.util.List;
public class DruidInfoFetcher extends CommonFetcher {
private static final Logger log = new Logger(DruidInfoFetcher.class);
@JsonProperty
public String fetchPeriod;
public String type() {
return InfoFetcher.Druid;
}
public void writeMetrics(String msg) throws Exception {
log.debug(msg);
List<EmitMetricsAnalyzer.MetricInfo> rawInfos = Resources.jsonMapper.readValue(
msg, new TypeReference<List<EmitMetricsAnalyzer.MetricInfo>>() {
}
);
List<Event> points = EmitMetricsAnalyzer.fetchReceivedInfos(rawInfos);
if (log.isDebugEnabled()){
log.debug(Resources.jsonMapper.writeValueAsString(points));
}
saveMetrics(points);
if (rawInfos.size() > 0) {
log.debug("writeMetrics host: [%s]", rawInfos.get(0).host);
}
}
@Override
public void start() throws Exception {
// Do nothing.
log.info("%s started!", DruidInfoFetcher.class.getSimpleName());
}
@Override
public void stop() {
// Do nothing.
log.info("%s stopped!", DruidInfoFetcher.class.getSimpleName());
}
}