@SuppressWarnings({ "unchecked", "rawtypes" }) public JmxAttributePollConfig(AttributeSensor<T> sensor) { super(sensor); onSuccess((Function)Functions.identity()); }
@Override protected void connectSensors() { sensors().set(BROKER_URL, String.format("tcp://%s:%d", getAttribute(HOSTNAME), getAttribute(OPEN_WIRE_PORT))); String brokerMbeanName = "org.apache.activemq:type=Broker,brokerName=" + getBrokerName(); jmxFeed = JmxFeed.builder() .entity(this) .period(500, TimeUnit.MILLISECONDS) .pollAttribute(new JmxAttributePollConfig<Boolean>(SERVICE_UP) .objectName(brokerMbeanName) .attributeName("BrokerName") .onSuccess(Functions.forPredicate(Predicates.notNull())) .onFailureOrException(Functions.constant(false)) .suppressDuplicates(true)) .build(); }
@Override protected void connectSensors() { super.connectSensors(); String serverInfoMBeanName = "org.apache.qpid:type=ServerInformation,name=ServerInformation"; jmxFeed = JmxFeed.builder() .entity(this) .period(500, TimeUnit.MILLISECONDS) .pollAttribute(new JmxAttributePollConfig<Boolean>(SERVICE_UP) .objectName(serverInfoMBeanName) .attributeName("ProductVersion") .onSuccess(new Function<Object,Boolean>() { private boolean hasWarnedOfVersionMismatch; @Override public Boolean apply(Object input) { if (input == null) return false; if (!hasWarnedOfVersionMismatch && !getConfig(QpidBroker.SUGGESTED_VERSION).equals(input)) { log.warn("Qpid version mismatch: ProductVersion is {}, requested version is {}", input, getConfig(QpidBroker.SUGGESTED_VERSION)); hasWarnedOfVersionMismatch = true; } return true; }}) .onException(Functions.constant(false)) .suppressDuplicates(true)) .build(); }
.objectName(objectName) .attributeName(attributeName) .onSuccess((Function)JmxValueFunctions.tabularDataToMap())) .build();
.objectName(ManagementFactory.MEMORY_MXBEAN_NAME) .attributeName("HeapMemoryUsage") .onSuccess((Function) HttpValueFunctions.chain(compositeDataToMemoryUsage(), new Function<MemoryUsage, Long>() { @Override public Long apply(MemoryUsage input) { return (input == null) ? null : input.getUsed(); .objectName(ManagementFactory.MEMORY_MXBEAN_NAME) .attributeName("HeapMemoryUsage") .onSuccess((Function) HttpValueFunctions.chain(compositeDataToMemoryUsage(), new Function<MemoryUsage, Long>() { @Override public Long apply(MemoryUsage input) { return (input == null) ? null : input.getInit(); .objectName(ManagementFactory.MEMORY_MXBEAN_NAME) .attributeName("HeapMemoryUsage") .onSuccess((Function) HttpValueFunctions.chain(compositeDataToMemoryUsage(), new Function<MemoryUsage, Long>() { @Override public Long apply(MemoryUsage input) { return (input == null) ? null : input.getCommitted(); .objectName(ManagementFactory.MEMORY_MXBEAN_NAME) .attributeName("HeapMemoryUsage") .onSuccess((Function) HttpValueFunctions.chain(compositeDataToMemoryUsage(), new Function<MemoryUsage, Long>() { @Override public Long apply(MemoryUsage input) { return (input == null) ? null : input.getMax(); .objectName(ManagementFactory.MEMORY_MXBEAN_NAME) .attributeName("NonHeapMemoryUsage") .onSuccess((Function) HttpValueFunctions.chain(compositeDataToMemoryUsage(), new Function<MemoryUsage, Long>() { @Override public Long apply(MemoryUsage input) { return (input == null) ? null : input.getUsed();
.onSuccess(Functions.forPredicate(Predicates.<Object>equalTo("STARTED"))) .setOnFailureOrException(false) .suppressDuplicates(true))
.objectName(serverMbeanName) .attributeName("running") .onSuccess(Functions.forPredicate(Predicates.<Object>equalTo(true))) .setOnFailureOrException(false)) .pollAttribute(new JmxAttributePollConfig<Integer>(REQUEST_COUNT)