1

我探索 AppDynamics 和其他 APM 解决方案,为我的公司选择合适的解决方案。

我创建了简单的演示 .NET 应用程序(WCF 服务和控制台客户端来使用它)。然后我在机器上安装了 AppDynamics 代理,并为客户端和服务配置它作为独立应用程序:

<standalone-application executable="AppDynamicsDemo.exe">
    <tier name="Server tier" />
</standalone-application>
<standalone-application executable="AppDynamicsClient.exe">
    <tier name="Client tier" />
</standalone-application>

当我启动我的客户端和服务时,我看到 AppD 代理已将代码“注入”到我的应用程序中,并将“运行非混淆客户端”写入控制台 控制台截图

我想了解 AppDynamics 代理使用哪些技术或方法来检测没有 SDK 的 .NET 应用程序并且只是一个单独的进程(服务)?它如何在不被服务直接使用的情况下侦听我的服务的传入 WCF 调用(它没有被引用为程序集,甚至在 app.config 中也没有提到)?

4

1 回答 1

2

感谢您对我的问题的答复。大多数 APM 工具中的 .NET 代理的工作方式与利用 .NET SDK 中的分析器 API 的方式相同,并允许数据收集以及回调和其他拦截。大多数工具还使用性能计数器数据以及 .NET 运行时之外的其他来源。这允许您在数据收集方面做一些类似于 Java 的事情。

参考:https ://docs.microsoft.com/en-us/visualstudio/profiling/walkthrough-using-profiler-apis?view=vs-2017

http://www.blong.com/conferences/dcon2003/internals/profiling.htm

于 2019-01-07T23:13:19.843 回答