| Measurement |
Description |
Measurement Unit |
Interpretation |
| Queue_length_rate |
The rate at which threads are waiting to acquire some lock in the application |
Threads/Sec |
  |
| Recognized_threads_rate |
The number of threads per second that have been recognized by the CLR |
Threads/Sec |
The recognized threads have a corresponding .NET thread object associated with them. These threads are not created by the CLR; they are created outside the CLR but have since run inside the CLR at least once. Only unique threads are tracked; threads with the same thread ID re-entering the CLR or recreated after thread exit are not counted twice. |
| Queue_length_peak |
The total number of threads that waited to acquire some managed lock during the last measurement period |
Number |
|
| Recognized_threads |
The total number of threads that have been recognized by the CLR during the last measurement period |
Number |
The recognized threads have a corresponding .NET thread object associated with them. These threads are not created by the CLR; they are created outside the CLR but have since run inside the CLR at least once. Only unique threads are tracked; threads with the same thread ID re-entering the CLR or recreated after thread exit are not counted twice. |
| Contention_threads |
The total number of times threads in the CLR have attempted to acquire a managed lock unsuccessfully |
Number |
Managed locks can be acquired in many ways; by the lock statement in C# or by calling System.Monitor.Enter or by using MethodImplOptions.Synchronized custom attribute. |