AppDynamics代理如何在内部检测.NET应用程序

时间:2019-01-04 21:18:35

标签: .net appdynamics

我探索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代理已将“代码”“注入”我的应用程序,并将“正在运行的未混淆客户端”写入控制台 Console screenshot

我想了解AppDynamics代理使用哪些技术或方法在没有SDK的情况下仅用于单独的过程(服务)来检测.NET应用程序?

如何在不被服务直接使用的情况下监听我的服务的传入WCF调用(它没有作为程序集引用,甚至没有在app.config中提及)?

1 个答案:

答案 0 :(得分:1)

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

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

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