in src/main/java/org/apache/sling/commons/metrics/internal/JmxExporterFactory.java [120:146]
protected void registerMBeanProperties(ObjectName objectname) throws InstanceNotFoundException, ReflectionException, IntrospectionException {
MBeanInfo info = server.getMBeanInfo(objectname);
MBeanAttributeInfo[] attributes = info.getAttributes();
for (MBeanAttributeInfo attr : attributes) {
LOG.debug("Checking mbean = {}, name = {}, type={}",objectname, attr.getName(), attr.getType());
Supplier<?> supplier = null;
if ("int".equals(attr.getType())) {
supplier = getSupplier(objectname, attr.getName(),0);
} else if ("long".equals(attr.getType())) {
supplier = getSupplier(objectname, attr.getName(),0L);
} else if ("java.lang.String".equals(attr.getType())) {
supplier = getSupplier(objectname,attr.getName(),"");
} else if ("double".equals(attr.getType())) {
supplier = getSupplier(objectname,attr.getName(), Double.valueOf(0.0));
} else if ("boolean".equals(attr.getType())) {
supplier = getSupplier(objectname,attr.getName(), Boolean.FALSE);
}
if (supplier != null) {
String metricName = toMetricName(objectname, attr.getName());
LOG.info("Registering metric {} from MBean (objectname=[{}], name={}, type={})",
metricName, objectname, attr.getName(), attr.getType());
metrics.gauge(metricName, supplier);
}
}
}