Hi all, I'm trying to make OpenNMS and JBoss friends and spent on this task
some days already.
Generally, to make capsd working with JBoss 4.2.2, you need to update jboss
libraries, log4j and apply opennms-1.5.91-jboss-capsd.patch
After that, capabilities check works.
But with JMX data collection, I still can't make a solution. I'm a sysadm, not
a programmer, so I'm not able to figure out what is wrong.
With default configuration, I'm getting exceptions like:
org.opennms.netmgt.rrd.RrdException: An error occured creating
rrdfile /usr/local/OpenNMS/share/rrd/snmp/1/jsr160/CurThreadCpuTime.jrb:
org.jrobin.core.RrdException: Invalid heartbeat, must be positive: -2
at org.opennms.netmgt.rrd.RrdUtils.createRRD(RrdUtils.java:198)
(http://paste.lisp.org/display/61779)
I tried to hardcode that heartbeat (opennms-1.5.91-jboss-jrobin.patch), but
now it is NPE in another part:
2008-06-06 12:53:52,497 ERROR [CollectdScheduler-50 Pool-fiber0] RrdUtils:
createRRD: An error occured creating
rrdfile /opt/opennms/share/rrd/jmx/2/jboss/
TotalMemory.jrb: java.lang.NullPointerException
java.lang.NullPointerException
at
org.opennms.netmgt.rrd.jrobin.JRobinRrdStrategy.createDefinition(JRobinRrdStrategy.java:112)
at
org.opennms.netmgt.rrd.QueuingRrdStrategy.createDefinition(QueuingRrdStrategy.java:734)
at org.opennms.netmgt.rrd.RrdUtils.createRRD(RrdUtils.java:195)
at
org.opennms.netmgt.collectd.PersistOperationBuilder.commit(PersistOperationBuilder.java:113)
at
org.opennms.netmgt.collectd.BasePersister.commitBuilder(BasePersister.java:72)
at
org.opennms.netmgt.collectd.OneToOnePersister.completeAttribute(OneToOnePersister.java:57)
at
org.opennms.netmgt.collectd.AbstractCollectionAttribute.visit(AbstractCollectionAttribute.java:65)
at
org.opennms.netmgt.collectd.AttributeGroup.visit(AttributeGroup.java:75)
at
org.opennms.netmgt.collectd.AbstractCollectionResource.visit(AbstractCollectionResource.java:103)
at
org.opennms.netmgt.collectd.JMXCollector$JMXCollectionSet.visit(JMXCollector.java:913)
at
org.opennms.netmgt.collectd.CollectableService.doCollection(CollectableService.java:354)
at
org.opennms.netmgt.collectd.CollectableService.run(CollectableService.java:296)
at
org.opennms.netmgt.scheduler.LegacyScheduler$1.run(LegacyScheduler.java:292)
at
org.opennms.core.concurrent.RunnableConsumerThreadPool$FiberThreadImpl.run(RunnableConsumerThreadPool.java:422)
at java.lang.Thread.run(Thread.java:595)
What can I do for JMX parameters collection?
Index: opennms-services/src/main/java/org/opennms/protocols/jmx/connectors/JBossConnectionFactory.java
===================================================================
--- opennms-services/src/main/java/org/opennms/protocols/jmx/connectors/JBossConnectionFactory.java (revision 9193)
+++ opennms-services/src/main/java/org/opennms/protocols/jmx/connectors/JBossConnectionFactory.java (working copy)
@@ -33,7 +33,7 @@
import java.lang.reflect.*;
import java.io.*;
import java.net.*;
-import java.util.Hashtable;
+import java.util.Properties;
import java.util.*;
import javax.naming.Context;
@@ -122,7 +122,7 @@
try {
- Hashtable props = new Hashtable();
+ Properties props = new Properties(System.getProperties());
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.NamingContextFactory");
props.put(Context.PROVIDER_URL, "jnp://" + address.getHostAddress() + ":" + port);
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces" );
@@ -135,6 +135,7 @@
} catch (Throwable e) {
log.debug("JBossConnectionFactory - unable to get MBeanServer using RMI on " + address.getHostAddress() + ":" + port);
+ log.debug("details:", e);
} finally {
try {
if (ctx != null) {
@@ -151,7 +152,7 @@
try {
- Hashtable props = new Hashtable();
+ Properties props = new Properties(System.getProperties());
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.HttpNamingContextFactory");
props.put(Context.PROVIDER_URL, "http://" + address.getHostAddress() + ":" + port + "/invoker/JNDIFactory");
props.put("jnp.sotimeout", timeout );
Index: opennms-rrd/opennms-rrd-jrobin/src/main/java/org/opennms/netmgt/rrd/jrobin/JRobinRrdStrategy.java
===================================================================
--- opennms-rrd/opennms-rrd-jrobin/src/main/java/org/opennms/netmgt/rrd/jrobin/JRobinRrdStrategy.java (revision 9193)
+++ opennms-rrd/opennms-rrd-jrobin/src/main/java/org/opennms/netmgt/rrd/jrobin/JRobinRrdStrategy.java (working copy)
@@ -92,7 +92,8 @@
}
RrdDef def = new RrdDef(fileName);
-
+ if (step == -1) { step = 60; }
+ ThreadCategory.getInstance(JRobinRrdStrategy.class).info("Trying to addDatasource() with step [" + Long.toString(step) + "]");
// def.setStartTime(System.currentTimeMillis()/1000L - 2592000L);
def.setStartTime(1000);
def.setStep(step);
@@ -102,7 +103,10 @@
String dsMax = dataSource.getMax();
double min = (dsMin == null || "U".equals(dsMin) ? Double.NaN : Double.parseDouble(dsMin));
double max = (dsMax == null || "U".equals(dsMax) ? Double.NaN : Double.parseDouble(dsMax));
- def.addDatasource(dataSource.getName(), dataSource.getType(), dataSource.getHeartBeat(), min, max);
+ long heartbeat = dataSource.getHeartBeat();
+ if (heartbeat == -2) { heartbeat = 120; }
+ ThreadCategory.getInstance(JRobinRrdStrategy.class).info("Trying to addDatasource() with heartbeat [" + Long.toString(heartbeat) + "]");
+ def.addDatasource(dataSource.getName(), dataSource.getType(), heartbeat, min, max);
}
for (String rra : rraList) {
Index: opennms-rrd/opennms-rrd-api/src/main/java/org/opennms/netmgt/rrd/QueuingRrdStrategy.java
===================================================================
--- opennms-rrd/opennms-rrd-api/src/main/java/org/opennms/netmgt/rrd/QueuingRrdStrategy.java (revision 9193)
+++ opennms-rrd/opennms-rrd-api/src/main/java/org/opennms/netmgt/rrd/QueuingRrdStrategy.java (working copy)
@@ -724,6 +724,8 @@
* @see RrdStrategy#createDefinition(java.lang.String)
*/
public Object createDefinition(String creator, String directory, String dsName, int step, String dsType, int dsHeartbeat, String dsMin, String dsMax, List<String> rraList) throws Exception {
+ if (step == -1) { step = 60; }
+ if (dsHeartbeat == -2) { dsHeartbeat = 120; }
return createDefinition(creator, directory, dsName, step, Collections.singletonList(new RrdDataSource(dsName, dsType, dsHeartbeat, dsMin, dsMax)), rraList);
}
Index: opennms-rrd/opennms-rrd-api/src/main/java/org/opennms/netmgt/rrd/RrdUtils.java
===================================================================
--- opennms-rrd/opennms-rrd-api/src/main/java/org/opennms/netmgt/rrd/RrdUtils.java (revision 9193)
+++ opennms-rrd/opennms-rrd-api/src/main/java/org/opennms/netmgt/rrd/RrdUtils.java (working copy)
@@ -190,6 +190,8 @@
log().info("createRRD: creating RRD file " + completePath);
try {
+ if (step == -1) { step = 60; }
+ log().info("createRRD: step is" + Long.toString(step) + "]");
Object def = getStrategy().createDefinition(creator, directory, rrdName, step, dataSources, rraList);
getStrategy().createFile(def);
return true;
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/index.php/Mailing_List_FAQ
opennms-devel mailing list
To *unsubscribe* or change your subscription options, see the bottom of this
page:
https://lists.sourceforge.net/lists/listinfo/opennms-devel