Setup


Enabling JMX

By default JMX is not enabled due to processing overhead introduced at runtime. Apply these settings to the joule process execution path, this will enable tools to directly connect to the Joule process.

-Dcom.sun.management.jmxremote.port=5000
-Dcom.sun.management.jmxremote.rmi.port=5000
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5001

As a baseline example the use case projects provide a Joule start script which contain JMX setting to enable process monitoring. This can be found with the bin/startJoule.sh file.

JMX_CONFIG="-Dcom.sun.management.jmxremote.port=${JOULE_JMX_PORT} -Dcom.sun.management.jmxremote.rmi.port=${JOULE_JMX_PORT} -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=${JOULE_HOST_NAME} -Dcom.sun.management.jmxremote.local.only=false"
JVM_DEBUG="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${JOULE_JMX_DEBUG_PORT}"

nohup java ${JVM_SWITCHES} ${JMX_CONFIG} ${JVM_DEBUG} -Dlog4j.configuration=file://${LOG4J_PATH} ${JOULE_MEMORY} -XX:+UseG1GC -Dpolyglot.engine.WarnInterpreterOnly=false -cp ${CLASSPATH}  com.fractalworks.streams.joule.JouleCLI -c ${JOULE_CONFIG_PATH} -s ${SOURCEFILE} -r ${REFERENCEDATA}  -u ${ENGINEFILE} -p ${PUBLISHFILE} &

For further information use the instructions in Monitoring and Management Using JMX Technology

Tools

Any monitor tools that supports JMX can be used. For example the following tools can be used:

For further tools take a look at the January 2024 tool list posed on BetterStack.

Last updated