package jvmmonitor.agent.module;
import jvmmonitor.agent.monitor.MonitorItem;
/**
* Created by peiliping on 16-12-21.
*/
public class ModuleZThreshold extends AbstractModule {
public ModuleZThreshold(String moduleName, MonitorItem item) {
super(moduleName, item);
super.noChangeMetricNames = new String[] {"minorgc", "majorgc"};
super.filterZeroValue = true;
super.metricValuesNum = 3;
super.addMetric(item, "minorgc", "sun.gc.collector.0.invocations");
super.addMetric(item, "majorgc", "sun.gc.collector.1.invocations");
super.addMetric(item, "current", "sun.gc.policy.tenuringThreshold");
super.addMetric(item, "max", "sun.gc.policy.maxTenuringThreshold");
super.addMetric(item, "incre4gc", "sun.gc.policy.incrementTenuringThresholdForGcCost");
super.addMetric(item, "decre4gc", "sun.gc.policy.decrementTenuringThresholdForGcCost");
super.addMetric(item, "decre4survivor", "sun.gc.policy.decrementTenuringThresholdForSurvivorLimit");
}
public void transform(long timestamp) {
super.store("current", timestamp, getOriginVal("current"), 1L);
super.store("max", timestamp, getOriginVal("max"), 1L);
super.store("incre4gc", timestamp, getOriginVal("incre4gc"), 0L);
super.store("decre4gc", timestamp, getOriginVal("decre4gc"), 0L);
super.store("decre4survivor", timestamp, getOriginVal("decre4survivor"), 0L);
super.commit();
}
}