netframework collector

November 2, 2025 ยท View on GitHub

The netframework collector exposes metrics about dotnet framework.

Metric name prefixnetframework_clrexceptions
ClassesWin32_PerfRawData_NETFramework_NETCLRExceptions, Win32_PerfRawData_NETFramework_NETCLRInterop, Win32_PerfRawData_NETFramework_NETCLRJit, Win32_PerfRawData_NETFramework_NETCLRLoading, Win32_PerfRawData_NETFramework_NETCLRLocksAndThreads, Win32_PerfRawData_NETFramework_NETCLRMemory, Win32_PerfRawData_NETFramework_NETCLRRemoting, Win32_PerfRawData_NETFramework_NETCLRSecurity
Enabled by default?No

Flags

--collector.netframework.enabled

Comma-separated list of collectors to use. Defaults to all, if not specified.

Metrics

CLR Exceptions

NameDescriptionTypeLabels
windows_netframework_clrexceptions_exceptions_thrown_totalDisplays the total number of exceptions thrown since the application started. This includes both .NET exceptions and unmanaged exceptions that are converted into .NET exceptions.counterprocess
windows_netframework_clrexceptions_exceptions_filters_totalDisplays the total number of .NET exception filters executed. An exception filter evaluates regardless of whether an exception is handled.counterprocess
windows_netframework_clrexceptions_exceptions_finallys_totalDisplays the total number of finally blocks executed. Only the finally blocks executed for an exception are counted; finally blocks on normal code paths are not counted by this counter.counterprocess
windows_netframework_clrexceptions_throw_to_catch_depth_totalDisplays the total number of stack frames traversed, from the frame that threw the exception to the frame that handled the exception.counterprocess

CLR Interop

NameDescriptionTypeLabels
windows_netframework_clrinterop_com_callable_wrappers_totalDisplays the current number of COM callable wrappers (CCWs). A CCW is a proxy for a managed object being referenced from an unmanaged COM client.counterprocess
windows_netframework_clrinterop_interop_marshalling_totalDisplays the total number of times arguments and return values have been marshaled from managed to unmanaged code, and vice versa, since the application started.counterprocess
windows_netframework_clrinterop_interop_stubs_created_totalDisplays the current number of stubs created by the common language runtime. Stubs are responsible for marshaling arguments and return values from managed to unmanaged code, and vice versa, during a COM interop call or a platform invoke call.counterprocess

CLR JIT

NameDescriptionTypeLabels
windows_netframework_clrjit_jit_methods_totalDisplays the total number of methods JIT-compiled since the application started. This counter does not include pre-JIT-compiled methods.counterprocess
windows_netframework_clrjit_jit_time_percentDisplays the percentage of time spent in JIT compilation. This counter is updated at the end of every JIT compilation phase. A JIT compilation phase occurs when a method and its dependencies are compiled.gaugeprocess
windows_netframework_clrjit_jit_standard_failures_totalDisplays the peak number of methods the JIT compiler has failed to compile since the application started. This failure can occur if the MSIL cannot be verified or if there is an internal error in the JIT compiler.counterprocess
windows_netframework_clrjit_jit_il_bytes_totalDisplays the total number of Microsoft intermediate language (MSIL) bytes compiled by the just-in-time (JIT) compiler since the application startedcounterprocess

CLR Loading

NameDescriptionTypeLabels
windows_netframework_clrloading_loader_heap_size_bytesDisplays the current size, in bytes, of the memory committed by the class loader across all application domains. Committed memory is the physical space reserved in the disk paging file.gaugeprocess
windows_netframework_clrloading_appdomains_loaded_currentDisplays the current number of application domains loaded in this application.gaugeprocess
windows_netframework_clrloading_assemblies_loaded_currentDisplays the current number of assemblies loaded across all application domains in the currently running application. If the assembly is loaded as domain-neutral from multiple application domains, this counter is incremented only once.gaugeprocess
windows_netframework_clrloading_classes_loaded_currentDisplays the current number of classes loaded in all assemblies.gaugeprocess
windows_netframework_clrloading_appdomains_loaded_totalDisplays the peak number of application domains loaded since the application started.counterprocess
windows_netframework_clrloading_appdomains_unloaded_totalDisplays the total number of application domains unloaded since the application started. If an application domain is loaded and unloaded multiple times, this counter increments each time the application domain is unloaded.counterprocess
windows_netframework_clrloading_assemblies_loaded_totalDisplays the total number of assemblies loaded since the application started. If the assembly is loaded as domain-neutral from multiple application domains, this counter is incremented only once.counterprocess
windows_netframework_clrloading_classes_loaded_totalDisplays the cumulative number of classes loaded in all assemblies since the application started.counterprocess
windows_netframework_clrloading_class_load_failures_totalDisplays the peak number of classes that have failed to load since the application started.counterprocess

CLR Locks and Threads

NameDescriptionTypeLabels
windows_netframework_clrlocksandthreads_current_queue_lengthDisplays the total number of threads that are currently waiting to acquire a managed lock in the application.gaugeprocess
windows_netframework_clrlocksandthreads_current_logical_threadsDisplays the number of current managed thread objects in the application. This counter maintains the count of both running and stopped threads.gaugeprocess
windows_netframework_clrlocksandthreads_physical_threads_currentDisplays the number of native operating system threads created and owned by the common language runtime to act as underlying threads for managed thread objects. This counter's value does not include the threads used by the runtime in its internal operations; it is a subset of the threads in the operating system process.gaugeprocess
windows_netframework_clrlocksandthreads_recognized_threads_currentDisplays the number of threads that are currently recognized by the runtime. These threads are associated with a corresponding managed thread object. The runtime does not create these threads, but they have run inside the runtime at least once.gaugeprocess
windows_netframework_clrlocksandthreads_recognized_threads_totalDisplays the total number of threads that have been recognized by the runtime since the application started. These threads are associated with a corresponding managed thread object. The runtime does not create these threads, but they have run inside the runtime at least once.counterprocess
windows_netframework_clrlocksandthreads_queue_length_totalDisplays the total number of threads that waited to acquire a managed lock since the application started.counterprocess
windows_netframework_clrlocksandthreads_contentions_totalDisplays the total number of times that threads in the runtime have attempted to acquire a managed lock unsuccessfully.counterprocess

CLR Memory

NameDescriptionTypeLabels
windows_netframework_clrmemory_allocated_bytes_totalDisplays the total number of bytes allocated on the garbage collection heap.counterprocess, process_id
windows_netframework_clrmemory_finalization_survivorsDisplays the number of garbage-collected objects that survive a collection because they are waiting to be finalized.gaugeprocess, process_id
windows_netframework_clrmemory_heap_size_bytesDisplays the maximum bytes that can be allocated; it does not indicate the current number of bytes allocated.gaugeprocess, process_id
windows_netframework_clrmemory_promoted_bytesDisplays the bytes that were promoted from the generation to the next one during the last GC. Memory is promoted when it survives a garbage collection.gaugeprocess, process_id
windows_netframework_clrmemory_number_gc_handlesDisplays the current number of garbage collection handles in use. Garbage collection handles are handles to resources external to the common language runtime and the managed environment.gaugeprocess, process_id
windows_netframework_clrmemory_collections_totalDisplays the number of times the generation objects are garbage collected since the application started.counterprocess, process_id
windows_netframework_clrmemory_induced_gc_totalDisplays the peak number of times garbage collection was performed because of an explicit call to GC.Collect.counterprocess, process_id
windows_netframework_clrmemory_number_pinned_objectsDisplays the number of pinned objects encountered in the last garbage collection.gaugeprocess, process_id
windows_netframework_clrmemory_number_sink_blocksinuseDisplays the current number of synchronization blocks in use. Synchronization blocks are per-object data structures allocated for storing synchronization information. They hold weak references to managed objects and must be scanned by the garbage collector.gaugeprocess, process_id
windows_netframework_clrmemory_committed_bytesDisplays the amount of virtual memory, in bytes, currently committed by the garbage collector. Committed memory is the physical memory for which space has been reserved in the disk paging file.gaugeprocess, process_id
windows_netframework_clrmemory_reserved_bytesDisplays the amount of virtual memory, in bytes, currently reserved by the garbage collector. Reserved memory is the virtual memory space reserved for the application when no disk or main memory pages have been used.gaugeprocess, process_id
windows_netframework_clrmemory_gc_time_percentDisplays the percentage of time that was spent performing a garbage collection in the last sample.gaugeprocess, process_id

CLR Remoting

NameDescriptionTypeLabels
windows_netframework_clrremoting_channels_totalDisplays the total number of remoting channels registered across all application domains since application started.counterprocess
windows_netframework_clrremoting_context_bound_classes_loadedDisplays the current number of context-bound classes that are loaded.gaugeprocess
windows_netframework_clrremoting_context_bound_objects_totalDisplays the total number of context-bound objects allocated.counterprocess
windows_netframework_clrremoting_context_proxies_totalDisplays the total number of remoting proxy objects in this process since it started.counterprocess
windows_netframework_clrremoting_contextsDisplays the current number of remoting contexts in the application.gaugeprocess
windows_netframework_clrremoting_remote_calls_totalDisplays the total number of remote procedure calls invoked since the application started.counterprocess

CLR Security

NameDescriptionTypeLabels
windows_netframework_clrsecurity_link_time_checks_totalDisplays the total number of link-time code access security checks since the application started.counterprocess
windows_netframework_clrsecurity_rt_checks_time_percentDisplays the percentage of time spent performing runtime code access security checks in the last sample.gaugeprocess
windows_netframework_clrsecurity_stack_walk_depthDisplays the depth of the stack during that last runtime code access security check.gaugeprocess
windows_netframework_clrsecurity_runtime_checks_totalDisplays the total number of runtime code access security checks performed since the application started.counterprocess

Example metric

This collector does not yet have explained examples, we would appreciate your help adding them!

Useful queries

This collector does not yet have any useful queries added, we would appreciate your help adding them!

Alerting examples

This collector does not yet have alerting examples, we would appreciate your help adding them!