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, '_'); } /*