Can Ignition expose JMX metrics?

I checked for any previously related thread and there was one a few years ago regarding VisualVM and a link that no longer existed but it sort of seemed to be on the right track

We used Datadog for monitoring and they have the ability to collect metrics, traces, and other useful performance data. Generally all that is needed from the Datadog perspective is the agent being able to open a local JMX connection.

We are already pulling in the wrapper.logs which is incredibly useful.

Not sure if this is possible on the pre-packaged Java that comes with Ignition 8.1.18?

Some of the garbage collection data would be useful getting piped into Datadog. That way in the event things go pear shaped we route to PagerDuty for whomever is oncall.

Is this even possible or supported? I would assume I’d have to make a modification to some of the startup/wrapper scripts to even attempt this. Anyone have any experience?

Thanks!
~Jordan

I had to add something like this to ignition.conf under the additional parameters section and then VisualVM was able to add a JMX connection to localhost:1234:

# Java Additional Parameters
wrapper.java.additional.1=-Ddata.dir=data
wrapper.java.additional.2=-Dcom.sun.management.jmxremote=true 
wrapper.java.additional.3=-Dcom.sun.management.jmxremote.port=1234 
wrapper.java.additional.4=-Dcom.sun.management.jmxremote.rmi.port=1234 
wrapper.java.additional.5=-Dcom.sun.management.jmxremote.local.port=1235 
wrapper.java.additional.6=-Dcom.sun.management.jmxremote.authenticate=false 
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.ssl=false 

I don’t remember having to do this on macOS or Linux systems, but that could have been when I was running out of the IDE and not as a service.

As always - extremely helpful! I think this will do it.

It seems like its a mixed bag trying to get this on localhost/127.0.0.1 since the agent technically runs locally… Trying to avoid exposing an open port (even though I can firewall it)