diff --git a/opennms-base-assembly/src/main/filtered/etc/jmx-datacollection-config.xml b/opennms-base-assembly/src/main/filtered/etc/jmx-datacollection-config.xml
index a4d3b09..d1c8a7c 100644
--- a/opennms-base-assembly/src/main/filtered/etc/jmx-datacollection-config.xml
+++ b/opennms-base-assembly/src/main/filtered/etc/jmx-datacollection-config.xml
@@ -110,107 +110,107 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/opennms-base-assembly/src/main/filtered/etc/snmp-graph.properties.d/jvm-graph.properties b/opennms-base-assembly/src/main/filtered/etc/snmp-graph.properties.d/jvm-graph.properties
index acd5df4..694d56c 100644
--- a/opennms-base-assembly/src/main/filtered/etc/snmp-graph.properties.d/jvm-graph.properties
+++ b/opennms-base-assembly/src/main/filtered/etc/snmp-graph.properties.d/jvm-graph.properties
@@ -66,11 +66,11 @@ report.jvm.thread.peak.command=--title="JVM Peak Thread Count" \
GPRINT:threads:AVERAGE:" Avg \\: %5.2lf %s\\n"
report.jvm.mempool.eden.name=JVM Memory Pool: Eden Space
-report.jvm.mempool.eden.columns=EdenUsage.used, EdenUsage.max
+report.jvm.mempool.eden.columns=EdenUsageUsed, EdenUsageMax
report.jvm.mempool.eden.type=interfaceSnmp
report.jvm.mempool.eden.command=--title="JVM Memory Pool: Eden Space" \
- DEF:used={rrd1}:EdenUsage.used:AVERAGE \
- DEF:max={rrd2}:EdenUsage.max:AVERAGE \
+ DEF:used={rrd1}:EdenUsageUsed:AVERAGE \
+ DEF:max={rrd2}:EdenUsageMax:AVERAGE \
LINE2:used#0000ff:"Bytes Used" \
GPRINT:used:AVERAGE:" Avg \\: %5.2lf %s " \
GPRINT:used:MIN:" Min \\: %5.2lf %s " \
@@ -81,11 +81,11 @@ report.jvm.mempool.eden.command=--title="JVM Memory Pool: Eden Space" \
GPRINT:max:MAX:"Max \\: %5.2lf %s\\n"
report.jvm.mempool.perm.name=JVM Memory Pool: Perm Space
-report.jvm.mempool.perm.columns=PermUsage.used, PermUsage.max
+report.jvm.mempool.perm.columns=PermUsageUsed, PermUsageMax
report.jvm.mempool.perm.type=interfaceSnmp
report.jvm.mempool.perm.command=--title="JVM Memory Pool: Perm Space" \
- DEF:used={rrd1}:PermUsage.used:AVERAGE \
- DEF:max={rrd2}:PermUsage.max:AVERAGE \
+ DEF:used={rrd1}:PermUsageUsed:AVERAGE \
+ DEF:max={rrd2}:PermUsageMax:AVERAGE \
LINE2:used#0000ff:"Bytes Used" \
GPRINT:used:AVERAGE:" Avg \\: %5.2lf %s " \
GPRINT:used:MIN:" Min \\: %5.2lf %s " \
@@ -96,11 +96,11 @@ report.jvm.mempool.perm.command=--title="JVM Memory Pool: Perm Space" \
GPRINT:max:MAX:"Max \\: %5.2lf %s\\n"
report.jvm.mempool.survivor.name=JVM Memory Pool: Survivor Space
-report.jvm.mempool.survivor.columns=SurvUsage.used, SurvUsage.max
+report.jvm.mempool.survivor.columns=SurvUsageUsed, SurvUsageMax
report.jvm.mempool.survivor.type=interfaceSnmp
report.jvm.mempool.survivor.command=--title="JVM Memory Pool: Survivor Space" \
- DEF:used={rrd1}:SurvUsage.used:AVERAGE \
- DEF:max={rrd2}:SurvUsage.max:AVERAGE \
+ DEF:used={rrd1}:SurvUsageUsed:AVERAGE \
+ DEF:max={rrd2}:SurvUsageMax:AVERAGE \
LINE2:used#0000ff:"Bytes Used" \
GPRINT:used:AVERAGE:" Avg \\: %5.2lf %s " \
GPRINT:used:MIN:" Min \\: %5.2lf %s " \
@@ -111,11 +111,11 @@ report.jvm.mempool.survivor.command=--title="JVM Memory Pool: Survivor Space" \
GPRINT:max:MAX:"Max \\: %5.2lf %s\\n"
report.jvm.mempool.oldgen.name=JVM Memory Pool: OldGen Space
-report.jvm.mempool.oldgen.columns=OGenUsage.used, OGenUsage.max
+report.jvm.mempool.oldgen.columns=OGenUsageUsed, OGenUsageMax
report.jvm.mempool.oldgen.type=interfaceSnmp
report.jvm.mempool.oldgen.command=--title="JVM Memory Pool: Old Gen Space" \
- DEF:used={rrd1}:OGenUsage.used:AVERAGE \
- DEF:max={rrd2}:OGenUsage.max:AVERAGE \
+ DEF:used={rrd1}:OGenUsageUsed:AVERAGE \
+ DEF:max={rrd2}:OGenUsageMax:AVERAGE \
LINE2:used#0000ff:"Bytes Used" \
GPRINT:used:AVERAGE:" Avg \\: %5.2lf %s " \
GPRINT:used:MIN:" Min \\: %5.2lf %s " \
@@ -127,12 +127,12 @@ report.jvm.mempool.oldgen.command=--title="JVM Memory Pool: Old Gen Space" \
#report.jvm.gc.copy
report.jvm.gc.copy.name=JVM GarbageCollector: Copy
-report.jvm.gc.copy.columns=Copy.CollCnt, Copy.CollTime, Copy.Duration
+report.jvm.gc.copy.columns=CopyCollCnt, CopyCollTime, CopyDuration
report.jvm.gc.copy.type=interfaceSnmp
report.jvm.gc.copy.command=--title="JVM GarbageCollector: Copy" \
- DEF:collCnt={rrd1}:Copy.CollCnt:AVERAGE \
- DEF:collTime={rrd2}:Copy.CollTime:AVERAGE \
- DEF:duration={rrd3}:Copy.Duration:AVERAGE \
+ DEF:collCnt={rrd1}:CopyCollCnt:AVERAGE \
+ DEF:collTime={rrd2}:CopyCollTime:AVERAGE \
+ DEF:duration={rrd3}:CopyDuration:AVERAGE \
CDEF:collPerMin=collCnt,5,/ \
CDEF:avgCollTime=collTime,collCnt,/,1000,/ \
CDEF:collTimePerMin=avgCollTime,collPerMin,* \
@@ -152,12 +152,12 @@ report.jvm.gc.copy.command=--title="JVM GarbageCollector: Copy" \
GPRINT:collTimePerMin:AVERAGE:" Avg \\: %5.2lf %s\\n"
report.jvm.gc.msc.name=JVM GarbageCollector: MarkSweepCompact
-report.jvm.gc.msc.columns=MSC.CollCnt, MSC.CollTime, MSC.Duration
+report.jvm.gc.msc.columns=MSCCollCnt, MSCCollTime, MSCDuration
report.jvm.gc.msc.type=interfaceSnmp
report.jvm.gc.msc.command=--title="JVM GarbageCollector: MarkSweepCompact" \
- DEF:collCnt={rrd1}:MSC.CollCnt:AVERAGE \
- DEF:collTime={rrd2}:MSC.CollTime:AVERAGE \
- DEF:duration={rrd3}:MSC.Duration:AVERAGE \
+ DEF:collCnt={rrd1}:MSCCollCnt:AVERAGE \
+ DEF:collTime={rrd2}:MSCCollTime:AVERAGE \
+ DEF:duration={rrd3}:MSCDuration:AVERAGE \
CDEF:collPerMin=collCnt,5,/ \
CDEF:avgCollTime=collTime,collCnt,/,1000,/ \
CDEF:collTimePerMin=avgCollTime,collPerMin,* \
@@ -175,12 +175,12 @@ report.jvm.gc.msc.command=--title="JVM GarbageCollector: MarkSweepCompact" \
GPRINT:collTimePerMin:AVERAGE:" Avg \\: %5.2lf %s\\n"
report.jvm.gc.parnew.name=JVM GarbageCollector: ParNew
-report.jvm.gc.parnew.columns=ParNew.CollCnt, ParNew.CollTime, ParNew.Duration
+report.jvm.gc.parnew.columns=ParNewCollCnt, ParNewCollTime, ParNewDuration
report.jvm.gc.parnew.type=interfaceSnmp
report.jvm.gc.parnew.command=--title="JVM GarbageCollector: ParNew" \
- DEF:collCnt={rrd1}:ParNew.CollCnt:AVERAGE \
- DEF:collTime={rrd2}:ParNew.CollTime:AVERAGE \
- DEF:duration={rrd3}:ParNew.Duration:AVERAGE \
+ DEF:collCnt={rrd1}:ParNewCollCnt:AVERAGE \
+ DEF:collTime={rrd2}:ParNewCollTime:AVERAGE \
+ DEF:duration={rrd3}:ParNewDuration:AVERAGE \
CDEF:collPerMin=collCnt,5,/ \
CDEF:avgCollTime=collTime,collCnt,/,1000,/ \
CDEF:collTimePerMin=avgCollTime,collPerMin,* \
@@ -200,12 +200,12 @@ report.jvm.gc.parnew.command=--title="JVM GarbageCollector: ParNew" \
GPRINT:collTimePerMin:AVERAGE:" Avg \\: %5.2lf %s\\n"
report.jvm.gc.cms.name=JVM GarbageCollector: ConcurrentMarkSweep
-report.jvm.gc.cms.columns=CMS.CollCnt, CMS.CollTime, CMS.Duration
+report.jvm.gc.cms.columns=CMSCollCnt, CMSCollTime, CMSDuration
report.jvm.gc.cms.type=interfaceSnmp
report.jvm.gc.cms.command=--title="JVM GarbageCollector: ConcurrentMarkSweep" \
- DEF:collCnt={rrd1}:CMS.CollCnt:AVERAGE \
- DEF:collTime={rrd2}:CMS.CollTime:AVERAGE \
- DEF:duration={rrd3}:CMS.Duration:AVERAGE \
+ DEF:collCnt={rrd1}:CMSCollCnt:AVERAGE \
+ DEF:collTime={rrd2}:CMSCollTime:AVERAGE \
+ DEF:duration={rrd3}:CMSDuration:AVERAGE \
CDEF:collPerMin=collCnt,5,/ \
CDEF:avgCollTime=collTime,collCnt,/,1000,/ \
CDEF:collTimePerMin=avgCollTime,collPerMin,* \
@@ -225,12 +225,12 @@ report.jvm.gc.cms.command=--title="JVM GarbageCollector: ConcurrentMarkSweep" \
GPRINT:collTimePerMin:AVERAGE:" Avg \\: %5.2lf %s\\n"
report.jvm.gc.psms.name=JVM GarbageCollector: PS MarkSweep
-report.jvm.gc.psms.columns=PSMS.CollCnt, PSMS.CollTime, PSMS.Duration
+report.jvm.gc.psms.columns=PSMSCollCnt, PSMSCollTime, PSMSDuration
report.jvm.gc.psms.type=interfaceSnmp
report.jvm.gc.psms.command=--title="JVM GarbageCollector: PS MarkSweep" \
- DEF:collCnt={rrd1}:PSMS.CollCnt:AVERAGE \
- DEF:collTime={rrd2}:PSMS.CollTime:AVERAGE \
- DEF:duration={rrd3}:PSMS.Duration:AVERAGE \
+ DEF:collCnt={rrd1}:PSMSCollCnt:AVERAGE \
+ DEF:collTime={rrd2}:PSMSCollTime:AVERAGE \
+ DEF:duration={rrd3}:PSMSDuration:AVERAGE \
CDEF:collPerMin=collCnt,5,/ \
CDEF:avgCollTime=collTime,collCnt,/,1000,/ \
CDEF:collTimePerMin=avgCollTime,collPerMin,* \
@@ -250,12 +250,12 @@ report.jvm.gc.psms.command=--title="JVM GarbageCollector: PS MarkSweep" \
GPRINT:collTimePerMin:AVERAGE:" Avg \\: %5.2lf %s\\n"
report.jvm.gc.pss.name=JVM GarbageCollector: PS Scavenge
-report.jvm.gc.pss.columns=PSS.CollCnt, PSS.CollTime, PSS.Duration
+report.jvm.gc.pss.columns=PSSCollCnt, PSSCollTime, PSSDuration
report.jvm.gc.pss.type=interfaceSnmp
report.jvm.gc.pss.command=--title="JVM GarbageCollector: PS Scavenge" \
- DEF:collCnt={rrd1}:PSS.CollCnt:AVERAGE \
- DEF:collTime={rrd2}:PSS.CollTime:AVERAGE \
- DEF:duration={rrd3}:PSS.Duration:AVERAGE \
+ DEF:collCnt={rrd1}:PSSCollCnt:AVERAGE \
+ DEF:collTime={rrd2}:PSSCollTime:AVERAGE \
+ DEF:duration={rrd3}:PSSDuration:AVERAGE \
CDEF:collPerMin=collCnt,5,/ \
CDEF:avgCollTime=collTime,collCnt,/,1000,/ \
CDEF:collTimePerMin=avgCollTime,collPerMin,* \
diff --git a/opennms-services/src/main/java/org/opennms/netmgt/collectd/JMXCollector.java b/opennms-services/src/main/java/org/opennms/netmgt/collectd/JMXCollector.java
index 860e9f8..0949e1c 100644
--- a/opennms-services/src/main/java/org/opennms/netmgt/collectd/JMXCollector.java
+++ b/opennms-services/src/main/java/org/opennms/netmgt/collectd/JMXCollector.java
@@ -50,6 +50,7 @@ import javax.management.ObjectName;
import javax.management.openmbean.CompositeData;
import org.opennms.core.db.DataSourceFactory;
+import org.opennms.core.utils.AlphaNumeric;
import org.opennms.core.utils.InetAddressUtils;
import org.opennms.core.utils.LogUtils;
import org.opennms.core.utils.ParameterMap;
@@ -296,8 +297,8 @@ public abstract class JMXCollector implements ServiceCollector {
JMXNodeInfo nodeInfo = agent.getAttribute(NODE_INFO_KEY);
Map mbeans = nodeInfo.getMBeans();
String collDir = serviceName;
-
+ boolean useMbeanForRrds = ParameterMap.getKeyedBoolean(map, "use-mbean-name-for-rrds", false);
String port = ParameterMap.getKeyedString(map, "port", null);
String friendlyName = ParameterMap.getKeyedString(map,"friendly-name", port);
if (useFriendlyName) {
@@ -331,10 +332,12 @@ public abstract class JMXCollector implements ServiceCollector {
for (Iterator iter = mbeans.values().iterator(); iter.hasNext();) {
BeanInfo beanInfo = iter.next();
+ String mbeanName = beanInfo.getMbeanName();
String objectName = beanInfo.getObjectName();
String excludeList = beanInfo.getExcludes();
//All JMX collected values are per node
- AttributeGroupType attribGroupType=new AttributeGroupType(fixGroupName(objectName),"all");
+ String obj = useMbeanForRrds ? mbeanName : objectName;
+ AttributeGroupType attribGroupType=new AttributeGroupType(fixGroupName(obj),"all");
List attribNames = beanInfo.getAttributeNames();
List compAttribNames = beanInfo.getCompositeAttributeNames();
@@ -509,7 +512,7 @@ public abstract class JMXCollector implements ServiceCollector {
if (objectName == null) {
return "NULL";
}
- return objectName.replaceAll("[.:=,]", "_");
+ return AlphaNumeric.parseAndReplace(objectName, '_');
}
/*