[英]Anyone knows how dynatrace attach the javaagent to java process?
將javaagent附加到代理中dynatrace中的java進程是一種黑魔法。
我在節點中找不到env JAVA_TOOL_OPTIONS
或JAVA_OPTS
。
但是我發現一些代理jar已添加到引導路徑(sun.boot.class.path)中。
我想更多地了解Java黑魔法。 有人可以解釋嗎?
它可能使用了一個稱為JVMTI的JVM API,請參閱https://en.wikipedia.org/wiki/Java_Virtual_Machine_Tools_Interface ,這允許將代理代碼注入到已啟動的Java應用程序中,該應用程序檢查字節碼,也可以修改字節碼來完成此操作。工作。
這需要本機代碼,因為接口位於Java類的實際執行之下。
還有一個Java代理,請參見此處和此處的一些說明。 其他監視工具使用了此功能,但是使用本機代理可以讀取和控制應用程序的更多方面,以讀取監視和性能信息,這解釋了Dynatrace可以執行的一些更強大的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.