/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.hyperic.hq.plugin.rabbitmq.collect;
import java.util.Map;
import org.hyperic.hq.plugin.rabbitmq.core.HypericRabbitAdmin;
import org.hyperic.hq.plugin.rabbitmq.core.MessageStats;
import org.hyperic.hq.plugin.rabbitmq.core.RabbitStatsObject;
/**
*
* @author administrator
*/
public abstract class RabbitStatsCollector extends RabbitMQDefaultCollector {
public void collect(HypericRabbitAdmin rabbitAdmin) {
RabbitStatsObject o = collectStats(rabbitAdmin);
if (o != null) {
processMessageStatsMetrics(o.getMessageStats());
}
}
public abstract RabbitStatsObject collectStats(HypericRabbitAdmin rabbitAdmin);
private void processMessageStatsMetrics(MessageStats stats) {
if (stats != null) {
setVal("publishDetails", stats.getPublishDetails());
setVal("confirmDetails", stats.getConfirmDetails());
setVal("deliverDetails", stats.getDeliverDetails());
setVal("ackDetails", stats.getAckDetails());
setVal("getDetails", stats.getGetDetails());
setVal("getNoAckDetails", stats.getGetNoAckDetails());
setVal("deliverNoAckDetails", stats.getDeliverNoAckDetails());
setVal("deliverGetDetails", stats.getDeliverGetDetails());
}
}
private void setVal(String string, Map<String, Double> detail) {
if (detail != null) {
setValue(string, detail.get("rate"));
} else {
setValue(string, 0);
}
}
}