【发布时间】:2023-02-05 07:33:22
【问题描述】:
我开始使用 AppDynamics 功能,它们提供了从代码到 collect data 的不同方法。
其中之一是方法调用数据收集器,我想了解它是如何工作的? AppDynamics 如何在不添加任何代码、api 调用的情况下收集这些数据,只需在 AppDynamics UI 中指定类名和方法就足够了。
他们如何收集堆栈跟踪详细信息?他们是否修补语言本身的低级功能?
谢谢
【问题讨论】:
标签: appdynamics
我开始使用 AppDynamics 功能,它们提供了从代码到 collect data 的不同方法。
其中之一是方法调用数据收集器,我想了解它是如何工作的? AppDynamics 如何在不添加任何代码、api 调用的情况下收集这些数据,只需在 AppDynamics UI 中指定类名和方法就足够了。
他们如何收集堆栈跟踪详细信息?他们是否修补语言本身的低级功能?
谢谢
【问题讨论】:
标签: appdynamics
实现将因语言类型而异,但通常信息是通过从控制器接收的代理端配置来收集的,以控制检测。
在 Java 中,检测是通过 Java Instrumentation API 完成的——代理通过 javaagent JVM 标志注入。有关 API 的说明,请参阅https://medium.com/javarevisited/what-is-java-instrumentation-why-is-it-needed-1f9aa467433
在 .NET 中,检测是通过 CLR 分析接口完成的——根据主机上的分析器 ENV VARS 从 dll 加载代理。相关 MS 文档请参见https://learn.microsoft.com/en-us/dotnet/framework/unmanaged-api/profiling/setting-up-a-profiling-environment
【讨论】: