.NET Agent

The .NET Agent monitors Microsoft Common Language Runtimes. It is loaded by a CLR and configured through global environment variables and enabled for individual processes using the .NET Agent configuration tool. So, this agent is always loaded but only active when enabled for a specific process.

See .NET Agent configuration to learn how to configure the Agent.


Category Sensor Classic Agent OneAgent
Components .NET Components Yes No
Database ADO.NET Yes Yes
Exceptions .NET Exception Yes Yes
GUI controls .NET Windows Forms Yes No
Logging .NET Logging Yes No
Memory .NET Memory Yes No
Messaging .NET AMQP Yes No
.NET AMQP Receive Entry Point Yes No
MSMQ Receive Entry Point Yes No
Remoting .NET WCF Yes Yes
.NET Remoting Yes No
.NET Service Fabric Yes Yes
Test framework .NET Test Yes No
Threads .NET Thread Tagging Yes Yes
Web requests ASP.NET Yes Yes
ASP.NET Events Yes No
.NET Web Request Yes Yes
Web Service .NET Web Service Tagging Yes No


Be aware that:

  • Not all features/sensors available in Classic Agent are already available in the OneAgent for AppMon
  • Features/Sensors known from Classic Agent can behave differently
  • Some features may be still in development


To use OneAgent in AppMon 2017 May, install Classic Agents first then roll them out to the OneAgent. No additional configuration needed. Before you switch to OneAgent, double check your major requirements with the available feature set.


.NET Core requires OneAgent.

It is recommended to use OneAgent for following scenarios:

  • To monitor Microsoft Azure
  • To improve Collector scalability
  • To resolve Collector connectivity problems
  • To reduce AutoSensor overhead.


Feature Classic Agent OneAgent
Argument capturing Yes Yes
AutoSensor Yes Yes
Class browsing Yes No
CPU Sampling Yes Yes
Custom Perfcounter metrics Yes No
Custom sensors Yes Yes
Decompilation Yes No
Deep object access Yes No
Delegation suppression Yes Yes
External API Yes No
GC/Memory metrics Yes Yes
Memory dumps Yes No
Thread dumps Yes No