DataDog / dd-trace-java

Datadog APM client for Java
https://docs.datadoghq.com/tracing/languages/java
Apache License 2.0
588 stars 290 forks source link

JVM Monitoring/JMX w/o the java agent #2481

Open nicolas-vivot opened 3 years ago

nicolas-vivot commented 3 years ago

Currently the jvm & jmx monitoring are part of the java agent module (and its final jar)

The consequence of this is that it's not possible to use these features w/o the java agent. That means no automatic monitoring for applications being compiled in native mode or JVM mode but not using the agent.

In a similar way as it has been done for the tracer-ot module, do you think it's possible to move the jvm monitoring out of the java agent and make it available as a standalone ?

bantonsson commented 3 years ago

Hi @nicolas-vivot, the java agent embeds this library https://github.com/DataDog/jmxfetch to produce the JVM/JMX metrics. It can be used standalone.

mcculls commented 3 years ago

Also the main Datadog Agent (ie. not the java agent) ships with JMXFetch, you can use this guide to enable it:

https://docs.datadoghq.com/integrations/java/?tab=host#configuration

nicolas-vivot commented 3 years ago

@bantonsson @mcculls

I see, thank you. That would help me for traditional JVM without the java agent, i'll give it a try.

I'm also working on a Native version of my application with GraalVM. Since JMX is not working on SubstrateVM (if i'm not wrong), do you have any plans regarding native application written in java and using your libraries for traces & metrics ?

I see two options:

For longer plans, open telemetry seems the best (as a client i prefer to have 3rd party vendor free tooling in my applications), but not sure about datadog plans for that ?