2 * Define the system and runtime performance counters.
3 * Each category is defined with the macro:
4 * PERFCTR_CAT(catid, name, help, type, instances, first_counter_id)
5 * and after that follows the counters inside the category, defined by the macro:
6 * PERFCTR_COUNTER(counter_id, name, help, type, field)
7 * field is the field inside MonoPerfCounters per predefined counters.
8 * Note we set it to unused for unrelated counters: it is unused
11 PERFCTR_CAT(CPU
, "Processor", "", MultiInstance
, CPU
, CPU_USER_TIME
)
12 PERFCTR_COUNTER(CPU_USER_TIME
, "% User Time", "", Timer100Ns
, unused
)
13 PERFCTR_COUNTER(CPU_PRIV_TIME
, "% Privileged Time", "", Timer100Ns
, unused
)
14 PERFCTR_COUNTER(CPU_INTR_TIME
, "% Interrupt Time", "", Timer100Ns
, unused
)
15 PERFCTR_COUNTER(CPU_DCP_TIME
, "% DCP Time", "", Timer100Ns
, unused
)
16 PERFCTR_COUNTER(CPU_PROC_TIME
, "% Processor Time", "", Timer100NsInverse
, unused
)
18 PERFCTR_CAT(PROC
, "Process", "", MultiInstance
, Process
, PROC_USER_TIME
)
19 PERFCTR_COUNTER(PROC_USER_TIME
, "% User Time", "", Timer100Ns
, unused
)
20 PERFCTR_COUNTER(PROC_PRIV_TIME
, "% Privileged Time", "", Timer100Ns
, unused
)
21 PERFCTR_COUNTER(PROC_PROC_TIME
, "% Processor Time", "", Timer100Ns
, unused
)
22 PERFCTR_COUNTER(PROC_THREADS
, "Thread Count", "", NumberOfItems64
, unused
)
23 PERFCTR_COUNTER(PROC_VBYTES
, "Virtual Bytes", "", NumberOfItems64
, unused
)
24 PERFCTR_COUNTER(PROC_WSET
, "Working Set", "", NumberOfItems64
, unused
)
25 PERFCTR_COUNTER(PROC_PBYTES
, "Private Bytes", "", NumberOfItems64
, unused
)
27 /* sample runtime counter */
28 PERFCTR_CAT(MONO_MEM
, "Mono Memory", "", SingleInstance
, Mono
, MEM_NUM_OBJECTS
)
29 PERFCTR_COUNTER(MEM_NUM_OBJECTS
, "Allocated Objects", "", NumberOfItems64
, unused
)
30 PERFCTR_COUNTER(MEM_PHYS_TOTAL
, "Total Physical Memory", "Physical memory installed in the machine, in bytes", NumberOfItems64
, unused
)
32 PERFCTR_CAT(ASPNET
, "ASP.NET", "", MultiInstance
, Mono
, ASPNET_REQ_Q
)
33 PERFCTR_COUNTER(ASPNET_REQ_Q
, "Requests Queued", "", NumberOfItems64
, aspnet_requests_queued
)
34 PERFCTR_COUNTER(ASPNET_REQ_TOTAL
, "Requests Total", "", NumberOfItems32
, aspnet_requests
)
35 PERFCTR_COUNTER(ASPNET_REQ_PSEC
, "Requests/Sec", "", RateOfCountsPerSecond32
, aspnet_requests
)
37 PERFCTR_CAT(JIT
, ".NET CLR JIT", "", MultiInstance
, Mono
, JIT_BYTES
)
38 PERFCTR_COUNTER(JIT_BYTES
, "# of IL Bytes JITted", "", NumberOfItems32
, jit_bytes
)
39 PERFCTR_COUNTER(JIT_METHODS
, "# of IL Methods JITted", "", NumberOfItems32
, jit_methods
)
40 PERFCTR_COUNTER(JIT_TIME
, "% Time in JIT", "", RawFraction
, jit_time
)
41 PERFCTR_COUNTER(JIT_BYTES_PSEC
, "IL Bytes Jitted/Sec", "", RateOfCountsPerSecond32
, jit_bytes
)
42 PERFCTR_COUNTER(JIT_FAILURES
, "Standard Jit Failures", "", NumberOfItems32
, jit_failures
)
44 PERFCTR_CAT(EXC
, ".NET CLR Exceptions", "", MultiInstance
, Mono
, EXC_THROWN
)
45 PERFCTR_COUNTER(EXC_THROWN
, "# of Exceps Thrown", "", NumberOfItems32
, exceptions_thrown
)
46 PERFCTR_COUNTER(EXC_THROWN_PSEC
, "# of Exceps Thrown/Sec", "", RateOfCountsPerSecond32
, exceptions_thrown
)
47 PERFCTR_COUNTER(EXC_FILTERS_PSEC
, "# of Filters/Sec", "", RateOfCountsPerSecond32
, exceptions_filters
)
48 PERFCTR_COUNTER(EXC_FINALLYS_PSEC
, "# of Finallys/Sec", "", RateOfCountsPerSecond32
, exceptions_finallys
)
49 PERFCTR_COUNTER(EXC_CATCH_DEPTH
, "Throw to Catch Depth/Sec", "", NumberOfItems32
, exceptions_depth
)
51 PERFCTR_CAT(GC
, ".NET CLR Memory", "", MultiInstance
, Mono
, GC_GEN0
)
52 PERFCTR_COUNTER(GC_GEN0
, "# Gen 0 Collections", "", NumberOfItems32
, gc_collections0
)
53 PERFCTR_COUNTER(GC_GEN1
, "# Gen 1 Collections", "", NumberOfItems32
, gc_collections1
)
54 PERFCTR_COUNTER(GC_GEN2
, "# Gen 2 Collections", "", NumberOfItems32
, gc_collections2
)
55 PERFCTR_COUNTER(GC_PROM0
, "Promoted Memory from Gen 0", "", NumberOfItems32
, gc_promotions0
)
56 PERFCTR_COUNTER(GC_PROM1
, "Promoted Memory from Gen 1", "", NumberOfItems32
, gc_promotions1
)
57 PERFCTR_COUNTER(GC_PROM0SEC
, "Gen 0 Promoted Bytes/Sec", "", RateOfCountsPerSecond32
, gc_promotions0
)
58 PERFCTR_COUNTER(GC_PROM1SEC
, "Gen 1 Promoted Bytes/Sec", "", RateOfCountsPerSecond32
, gc_promotions1
)
59 PERFCTR_COUNTER(GC_PROMFIN
, "Promoted Finalization-Memory from Gen 0", "", NumberOfItems32
, gc_promotion_finalizers
)
60 PERFCTR_COUNTER(GC_GEN0SIZE
, "Gen 0 heap size", "", NumberOfItems32
, gc_gen0size
)
61 PERFCTR_COUNTER(GC_GEN1SIZE
, "Gen 1 heap size", "", NumberOfItems32
, gc_gen1size
)
62 PERFCTR_COUNTER(GC_GEN2SIZE
, "Gen 2 heap size", "", NumberOfItems32
, gc_gen2size
)
63 PERFCTR_COUNTER(GC_LOSIZE
, "Large Object Heap size", "", NumberOfItems32
, gc_lossize
)
64 PERFCTR_COUNTER(GC_FINSURV
, "Finalization Survivors", "", NumberOfItems32
, gc_fin_survivors
)
65 PERFCTR_COUNTER(GC_NHANDLES
, "# GC Handles", "", NumberOfItems32
, gc_num_handles
)
66 PERFCTR_COUNTER(GC_BYTESSEC
, "Allocated Bytes/sec", "", RateOfCountsPerSecond32
, gc_allocated
)
67 PERFCTR_COUNTER(GC_INDGC
, "# Induced GC", "", NumberOfItems32
, gc_induced
)
68 PERFCTR_COUNTER(GC_PERCTIME
, "% Time in GC", "", RawFraction
, gc_time
)
69 PERFCTR_COUNTER(GC_BYTES
, "# Bytes in all Heaps", "", NumberOfItems32
, gc_total_bytes
)
70 PERFCTR_COUNTER(GC_COMMBYTES
, "# Total committed Bytes", "", NumberOfItems32
, gc_committed_bytes
)
71 PERFCTR_COUNTER(GC_RESBYTES
, "# Total reserved Bytes", "", NumberOfItems32
, gc_reserved_bytes
)
72 PERFCTR_COUNTER(GC_PINNED
, "# of Pinned Objects", "", NumberOfItems32
, gc_num_pinned
)
73 PERFCTR_COUNTER(GC_SYNKB
, "# of Sink Blocks in use", "", NumberOfItems32
, gc_sync_blocks
)
75 PERFCTR_CAT(REMOTING
, ".NET CLR Remoting", "", MultiInstance
, Mono
, REMOTING_CALLSEC
)
76 PERFCTR_COUNTER(REMOTING_CALLSEC
, "Remote Calls/sec", "", RateOfCountsPerSecond32
, remoting_calls
)
77 PERFCTR_COUNTER(REMOTING_CALLS
, "Total Remote Calls", "", NumberOfItems32
, remoting_calls
)
78 PERFCTR_COUNTER(REMOTING_CHANNELS
, "Channels", "", NumberOfItems32
, remoting_channels
)
79 PERFCTR_COUNTER(REMOTING_CPROXIES
, "Context Proxies", "", NumberOfItems32
, remoting_proxies
)
80 PERFCTR_COUNTER(REMOTING_CBLOADED
, "Context-Bound Classes Loaded", "", NumberOfItems32
, remoting_classes
)
81 PERFCTR_COUNTER(REMOTING_CBALLOCSEC
, "Context-Bound Objects Alloc / sec", "", RateOfCountsPerSecond32
, remoting_objects
)
82 PERFCTR_COUNTER(REMOTING_CONTEXTS
, "Contexts", "", NumberOfItems32
, remoting_contexts
)
84 PERFCTR_CAT(LOADING
, ".NET CLR Loading", "", MultiInstance
, Mono
, LOADING_CLASSES
)
85 PERFCTR_COUNTER(LOADING_CLASSES
, "Current Classes Loaded", "", NumberOfItems32
, loader_classes
)
86 PERFCTR_COUNTER(LOADING_TOTCLASSES
, "Total Classes Loaded", "", NumberOfItems32
, loader_total_classes
)
87 PERFCTR_COUNTER(LOADING_CLASSESSEC
, "Rate of Classes Loaded", "", RateOfCountsPerSecond32
, loader_total_classes
)
88 PERFCTR_COUNTER(LOADING_APPDOMAINS
, "Current appdomains", "", NumberOfItems32
, loader_appdomains
)
89 PERFCTR_COUNTER(LOADING_TOTAPPDOMAINS
, "Total Appdomains", "", NumberOfItems32
, loader_total_appdomains
)
90 PERFCTR_COUNTER(LOADING_APPDOMAINSEC
, "Rate of appdomains", "", RateOfCountsPerSecond32
, loader_total_appdomains
)
91 PERFCTR_COUNTER(LOADING_ASSEMBLIES
, "Current Assemblies", "", NumberOfItems32
, loader_assemblies
)
92 PERFCTR_COUNTER(LOADING_TOTASSEMBLIES
, "Total Assemblies", "", NumberOfItems32
, loader_total_assemblies
)
93 PERFCTR_COUNTER(LOADING_ASSEMBLIESEC
, "Rate of Assemblies", "", RateOfCountsPerSecond32
, loader_total_assemblies
)
94 PERFCTR_COUNTER(LOADING_FAILURES
, "Total # of Load Failures", "", NumberOfItems32
, loader_failures
)
95 PERFCTR_COUNTER(LOADING_FAILURESSEC
, "Rate of Load Failures", "", RateOfCountsPerSecond32
, loader_failures
)
96 PERFCTR_COUNTER(LOADING_BYTES
, "Bytes in Loader Heap", "", NumberOfItems32
, loader_bytes
)
97 PERFCTR_COUNTER(LOADING_APPUNLOADED
, "Total appdomains unloaded", "", NumberOfItems32
, loader_appdomains_uloaded
)
98 PERFCTR_COUNTER(LOADING_APPUNLOADEDSEC
, "Rate of appdomains unloaded", "", RateOfCountsPerSecond32
, loader_appdomains_uloaded
)
100 PERFCTR_CAT(THREAD
, ".NET CLR LocksAndThreads", "", MultiInstance
, Mono
, THREAD_CONTENTIONS
)
101 PERFCTR_COUNTER(THREAD_CONTENTIONS
, "Total # of Contentions", "", NumberOfItems32
, thread_contentions
)
102 PERFCTR_COUNTER(THREAD_CONTENTIONSSEC
, "Contention Rate / sec", "", RateOfCountsPerSecond32
, thread_contentions
)
103 PERFCTR_COUNTER(THREAD_QUEUELEN
, "Current Queue Length", "", NumberOfItems32
, thread_queue_len
)
104 PERFCTR_COUNTER(THREAD_QUEUELENP
, "Queue Length Peak", "", NumberOfItems32
, thread_queue_max
)
105 PERFCTR_COUNTER(THREAD_QUEUELENSEC
, "Queue Length / sec", "", RateOfCountsPerSecond32
, thread_queue_max
)
106 PERFCTR_COUNTER(THREAD_NUMLOG
, "# of current logical Threads", "", NumberOfItems32
, thread_num_logical
)
107 PERFCTR_COUNTER(THREAD_NUMPHYS
, "# of current physical Threads", "", NumberOfItems32
, thread_num_physical
)
108 PERFCTR_COUNTER(THREAD_NUMREC
, "# of current recognized threads", "", NumberOfItems32
, thread_cur_recognized
)
109 PERFCTR_COUNTER(THREAD_TOTREC
, "# of total recognized threads", "", NumberOfItems32
, thread_num_recognized
)
110 PERFCTR_COUNTER(THREAD_TOTRECSEC
, "rate of recognized threads / sec", "", RateOfCountsPerSecond32
, thread_num_recognized
)
112 PERFCTR_CAT(INTEROP
, ".NET CLR Interop", "", MultiInstance
, Mono
, INTEROP_NUMCCW
)
113 PERFCTR_COUNTER(INTEROP_NUMCCW
, "# of CCWs", "", NumberOfItems32
, interop_num_ccw
)
114 PERFCTR_COUNTER(INTEROP_STUBS
, "# of Stubs", "", NumberOfItems32
, interop_num_stubs
)
115 PERFCTR_COUNTER(INTEROP_MARSH
, "# of marshalling", "", NumberOfItems32
, interop_num_marshals
)
117 PERFCTR_CAT(SECURITY
, ".NET CLR Security", "", MultiInstance
, Mono
, SECURITY_CHECKS
)
118 PERFCTR_COUNTER(SECURITY_CHECKS
, "Total Runtime Checks", "", NumberOfItems32
, security_num_checks
)
119 PERFCTR_COUNTER(SECURITY_LCHECKS
, "# Link Time Checks", "", NumberOfItems32
, security_num_link_checks
)
120 PERFCTR_COUNTER(SECURITY_PERCTIME
, "% Time in RT checks", "", RawFraction
, security_time
)
121 PERFCTR_COUNTER(SECURITY_SWDEPTH
, "Stack Walk Depth", "", NumberOfItems32
, security_depth
)
123 PERFCTR_CAT(THREADPOOL
, "Mono Threadpool", "", MultiInstance
, Mono
, THREADPOOL_WORKITEMS
)
124 PERFCTR_COUNTER(THREADPOOL_WORKITEMS
, "Work Items Added", "", NumberOfItems64
, threadpool_workitems
)
125 PERFCTR_COUNTER(THREADPOOL_WORKITEMS_PSEC
, "Work Items Added/Sec", "", RateOfCountsPerSecond32
, threadpool_workitems
)
126 PERFCTR_COUNTER(THREADPOOL_IOWORKITEMS
, "IO Work Items Added", "", NumberOfItems64
, threadpool_ioworkitems
)
127 PERFCTR_COUNTER(THREADPOOL_IOWORKITEMS_PSEC
, "IO Work Items Added/Sec", "", RateOfCountsPerSecond32
, threadpool_ioworkitems
)
128 PERFCTR_COUNTER(THREADPOOL_THREADS
, "# of Threads", "", NumberOfItems32
, threadpool_threads
)
129 PERFCTR_COUNTER(THREADPOOL_IOTHREADS
, "# of IO Threads", "", NumberOfItems32
, threadpool_iothreads
)
131 PERFCTR_CAT(NETWORK
, "Network Interface", "", MultiInstance
, NetworkInterface
, NETWORK_BYTESRECSEC
)
132 PERFCTR_COUNTER(NETWORK_BYTESRECSEC
, "Bytes Received/sec", "", RateOfCountsPerSecond64
, unused
)
133 PERFCTR_COUNTER(NETWORK_BYTESSENTSEC
, "Bytes Sent/sec", "", RateOfCountsPerSecond64
, unused
)
134 PERFCTR_COUNTER(NETWORK_BYTESTOTALSEC
, "Bytes Total/sec", "", RateOfCountsPerSecond64
, unused
)