【问题标题】:Anyone knows how dynatrace attach the javaagent to java process?任何人都知道 dynatrace 如何将 javaagent 附加到 java 进程?
【发布时间】:2018-07-21 15:14:08
【问题描述】:

将javaagent附加到代理中dynatrace中的java进程是一种黑魔法。

我没有在节点中找到环境 JAVA_TOOL_OPTIONSJAVA_OPTS

但是我发现启动路径(sun.boot.class.path)中添加了一些代理jar。

我想了解更多关于 java 黑魔法的信息。谁能解释一下?

【问题讨论】:

    标签: java dynatrace


    【解决方案1】:

    它可能使用称为 JVMTI 的 JVM API,请参阅https://en.wikipedia.org/wiki/Java_Virtual_Machine_Tools_Interface,这允许将代理代码注入到已启动的 Java 应用程序中,该应用程序检查字节码,也可以修改字节码以完成工作。

    这需要本地代码,因为接口低于 Java 类的实际执行。

    还有一个 java 代理,请参阅 herehere 以获得一些描述。这由其他监控工具使用,但使用本机代理可以读取和控制应用程序的更多方面,以读取监控和性能信息,这解释了 Dynatrace 可以做的一些更强大的事情。

    【讨论】:

    • 我知道 JVMTI。如果我们希望它工作,我们必须在 java 进程启动之前添加 agentlib 或设置环境变量JAVA_TOOL_OPTIONS
    • Dynatrace 在进程启动期间以某种方式自动设置这些选项,而无需用户手动进行。细节可能是 IP 的一部分,因此不会公开详细描述。
    • 你的意思是启动一个守护进程来做到这一点?
    猜你喜欢
    • 2011-05-03
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多