Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje předdefinované metriky pro knihovny modulu runtime .NET vytvořené pomocí System.Diagnostics.Metrics rozhraní API. Seznam metrik založených na starším rozhraní API EventCounters najdete v tématu Dostupné čítače.
Tip
Další informace o tom, jak tyto metriky shromažďovat a hlásit, najdete v tématu Shromažďování metrik.
System.Runtime
Měřič System.Runtime hlásí měření z GC, JIT, AssemblyLoader, Threadpool a výjimek zpracovávající části modulu runtime .NET a také některé metriky procesoru a paměti z operačního systému. Tyto metriky jsou dostupné automaticky pro všechny aplikace .NET.
Metrický: dotnet.process.cpu.time
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.process.cpu.time |
Counter<T> | s |
Čas procesoru používaný procesem |
| Atribut | Typ | Popis | Příklady | Přítomnost |
|---|---|---|---|---|
cpu.mode |
string |
Režim procesoru. |
user; system |
Always |
Tato metrika hlásí stejné hodnoty jako přístup k vlastnostem System.Diagnostics.Process času procesoru pro aktuální proces. Režim system odpovídá PrivilegedProcessorTime režimu a user odpovídá režimu UserProcessorTime
K dispozici od: .NET 9.
Metrický: dotnet.process.memory.working_set
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.process.memory.working_set |
UpDownCounter<T> | By |
Počet bajtů fyzické paměti mapované na kontext procesu. |
Tato metrika hlásí stejné hodnoty jako volající Environment.WorkingSet vlastnost.
K dispozici od: .NET 9.
Metrický: dotnet.gc.collections
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.gc.collections |
Counter<T> | {collection} |
Počet uvolňování paměti, ke kterým došlo od spuštění procesu. |
| Atribut | Typ | Popis | Příklady | Přítomnost |
|---|---|---|---|---|
gc.heap.generation |
string |
Název maximální spravované generace haldy, která se shromažďuje. |
gen0; gen1; gen2 |
Always |
Uvolňování paměti .NET je generační systém uvolňování paměti. Pokaždé, když se systém uvolňování paměti spustí, použije heuristika k výběru maximální generace a následně shromažďuje objekty ve všech generacích až do vybraného maxima. Kolekce například gen1 shromažďuje všechny objekty v generacích 0 a 1. Kolekce gen2 shromažďuje všechny objekty v generacích 0, 1 a 2. Další informace o uvolňování paměti .NET a generování paměti naleznete v průvodci uvolňováním paměti .NET.
K dispozici od: .NET 9.
Metrický: dotnet.gc.heap.total_allocated
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.gc.heap.total_allocated |
Counter<T> | By |
Přibližný počet bajtů přidělených ke spravované haldě GC od zahájení procesu. Vrácená hodnota nezahrnuje žádné nativní přidělení. |
Tato metrika hlásí stejné hodnoty jako volání GC.GetTotalAllocatedBytes. Další informace o uvolňování paměti .NET naleznete v průvodci uvolňováním paměti .NET.
K dispozici od: .NET 9.
Metrický: dotnet.gc.last_collection.memory.committed_size
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.gc.last_collection.memory.committed_size |
UpDownCounter<T> | By |
Množství potvrzené virtuální paměti používané uvolňováním paměti .NET, jak je pozorováno během nejnovější uvolňování paměti. |
Tato metrika hlásí stejné hodnoty jako volání GCMemoryInfo.TotalCommittedBytes. Potvrzená virtuální paměť může být větší než velikost haldy, protože obsahuje paměť pro ukládání existujících objektů (velikost haldy) a další paměť, která je připravená zpracovat nově přidělené objekty v budoucnu. Další informace o uvolňování paměti .NET naleznete v průvodci uvolňováním paměti .NET.
K dispozici od: .NET 9.
Metrický: dotnet.gc.last_collection.heap.size
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.gc.last_collection.heap.size |
UpDownCounter<T> | By |
Velikost spravované haldy uvolňování paměti (včetně fragmentace), jak je pozorováno během nejnovějšího uvolňování paměti. |
| Atribut | Typ | Popis | Příklady | Přítomnost |
|---|---|---|---|---|
gc.heap.generation |
string |
Název generování haldy spravované uvolňováním paměti. |
gen0; gen1; ; gen2loh; poh |
Always |
.NET GC rozdělí haldu do generací. Kromě standardních očíslovaných generací GC také vkládá některé objekty do dvou speciálních generací:
- Velká halda objektu (LOH) ukládá objekty .NET, které jsou ve srovnání s typickými objekty velmi velké.
- Připnutá halda objektu (POH) ukládá objekty přidělené pomocí GC.AllocateArray rozhraní API, pokud
pinnedje parametr pravdivý.
Během kolekcí uvolňování paměti se shromažďují gen2 obě tyto speciální generace. Další informace o uvolňování paměti .NET naleznete v průvodci uvolňováním paměti .NET.
K dispozici od: .NET 9.
Metrický: dotnet.gc.last_collection.heap.fragmentation.size
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.gc.last_collection.heap.fragmentation.size |
UpDownCounter<T> | By |
Fragmentace haldy, jak je pozorováno při nejnovějším uvolňování paměti. |
| Atribut | Typ | Popis | Příklady | Přítomnost |
|---|---|---|---|---|
gc.heap.generation |
string |
Název generování haldy spravované uvolňováním paměti. |
gen0; gen1; ; gen2loh; poh |
Always |
Tato metrika hlásí stejné hodnoty jako volání GCGenerationInfo.FragmentationAfterBytes.
Pokud jsou objekty .NET přiděleny, zpočátku jsou obvykle rozloženy souvisle v paměti. Pokud však některé z těchto objektů později shromažďuje GC, vytvoří se mezery v nevyužité paměti mezi živými objekty, které zůstávají. Tyto mezery představují část haldy GC, která se aktuálně nepoužívá k ukládání objektů, často označovaných jako fragmentace. GC může v budoucnu znovu použít bajty fragmentace pro přidělení nových objektů, pokud je velikost objektu dostatečně malá, aby se vešla do jedné z mezer. Uvolňování paměti může také provést speciální komprimující uvolňování paměti, které přesune zbývající živé objekty vedle sebe, pokud objekty nebyly připnuty na místě.
Další informace o fungování GC .NET, analýze výkonu GC a o tom, jakou roli hraje fragmentace rolí, naleznete v analýze výkonu paměti .NET.
K dispozici od: .NET 9.
Metrický: dotnet.gc.pause.time
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.gc.pause.time |
Counter<T> | s |
Celková doba pozastavení v GC od spuštění procesu. |
Tato metrika hlásí stejné hodnoty jako volání GC.GetTotalPauseDuration().
Pokaždé, když uvolňování paměti .NET provede kolekci, musí krátce pozastavit všechna vlákna se spravovaným kódem, aby bylo možné určit, na které objekty se stále odkazují. Tato metrika hlásí součet všech těchto dob pozastavení od začátku procesu. Pomocí této metriky můžete zjistit, jaký zlomek časových vláken stráví pozastavením pro GC a časem, kdy budou moct spustit spravovaný kód.
K dispozici od: .NET 9.
Metrický: dotnet.jit.compiled_il.size
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.jit.compiled_il.size |
Counter<T> | By |
Počet bajtů zprostředkujícího jazyka, které byly zkompilovány od spuštění procesu. |
Tato metrika hlásí stejné hodnoty jako volání JitInfo.GetCompiledILBytes.
Při sestavování aplikace .NET se spravovaný kód zpočátku zkompiluje z jazyka vysoké úrovně, jako je C#, VB nebo F# do zprostředkujícího jazyka (IL). Při spuštění programu pak kompilátor JIT (just-in-time) .NET převede il na strojový kód.
Vzhledem k tomu, že kompilace JIT nastane při prvním spuštění metody, většina kompilace JIT se obvykle vyskytuje během spouštění aplikace. Snížení množství IL kompilovaného JIT může zlepšit dobu spuštění aplikace.
K dispozici od: .NET 9.
Metrický: dotnet.jit.compiled_methods
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.jit.compiled_methods |
Counter<T> | {method} |
Počet zkompilovaných metod kompilátoru JIT (re)od spuštění procesu. |
Tato metrika hlásí stejné hodnoty jako volání JitInfo.GetCompiledMethodCount.
Při sestavování aplikace .NET se spravovaný kód zpočátku zkompiluje z jazyka vysoké úrovně, jako je C#, VB nebo F# do zprostředkujícího jazyka (IL). Při spuštění programu pak kompilátor JIT (just-in-time) .NET převede il na strojový kód.
Vzhledem k tomu, že kompilace JIT nastane při prvním spuštění metody, většina kompilace JIT se obvykle vyskytuje během spouštění aplikace. Snížení počtu metod, které je potřeba zkompilovat JIT, může zlepšit dobu spuštění aplikace.
K dispozici od: .NET 9.
Metrický: dotnet.jit.compilation.time
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.jit.compilation.time |
Counter<T> | s |
Doba, po kterou kompilátor JIT strávil kompilací metod od spuštění procesu. |
Tato metrika hlásí stejné hodnoty jako volání JitInfo.GetCompilationTime.
Při sestavování aplikace .NET se spravovaný kód zpočátku zkompiluje z jazyka vysoké úrovně, jako je C#, VB nebo F# do zprostředkujícího jazyka (IL). Při spuštění programu pak kompilátor JIT (just-in-time) .NET převede il na strojový kód.
Vzhledem k tomu, že kompilace JIT nastane při prvním spuštění metody, většina kompilace JIT se obvykle vyskytuje během spouštění aplikace. Zkrácení doby strávené kompilací JIT může zlepšit dobu spuštění aplikace.
K dispozici od: .NET 9.
Metrický: dotnet.thread_pool.thread.count
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.thread_pool.thread.count |
UpDownCounter<T> | {thread} |
Počet vláken fondu vláken, která aktuálně existují. |
Tato metrika hlásí stejné hodnoty jako volání ThreadPool.ThreadCount.
.NET používá fond vláken k naplánování pracovních položek do jiných vláken. Tato metrika poskytuje počet pracovních vláken aktuálně spravovaných tímto fondem vláken.
K dispozici od: .NET 9.
Metrický: dotnet.thread_pool.work_item.count
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.thread_pool.work_item.count |
Counter<T> | {work_item} |
Počet pracovních položek, které fond vláken dokončil od spuštění procesu. |
Tato metrika hlásí stejné hodnoty jako volání ThreadPool.CompletedWorkItemCount.
.NET používá fond vláken k naplánování pracovních položek do jiných vláken. Tato metrika poskytuje počet pracovních položek spuštěných vlákny fondu vláken.
K dispozici od: .NET 9.
Metrický: dotnet.thread_pool.queue.length
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.thread_pool.queue.length |
UpDownCounter<T> | {work_item} |
Počet pracovních položek, které jsou aktuálně zařazeny do fronty ke zpracování fondem vláken. |
Tato metrika hlásí stejné hodnoty jako volání ThreadPool.PendingWorkItemCount.
.NET používá fond vláken k naplánování pracovních položek do jiných vláken. Tato metrika poskytuje počet pracovních položek, které jsou aktuálně zařazeny do fronty, které se mají spustit jedním z vláken fondu vláken.
K dispozici od: .NET 9.
Metrický: dotnet.monitor.lock_contentions
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.monitor.lock_contentions |
Counter<T> | {contention} |
Počet kolizí při pokusu o získání zámku monitorování od spuštění procesu. |
Tato metrika hlásí stejné hodnoty jako volání Monitor.LockContentionCount.
.NET podporuje použití libovolného spravovaného objektu jako zámku, a to buď s rozhraními API, jako Monitor.Enter jsou nebo pomocí příkazu lock. Pokud jedno vlákno již obsahuje zámek, zatímco druhé vlákno se ho pokusí získat, označuje se jako kolize zámků.
K dispozici od: .NET 9.
Metrický: dotnet.timer.count
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.timer.count |
UpDownCounter<T> | {timer} |
Počet instancí časovače, které jsou aktuálně aktivní. |
Tato metrika hlásí stejné hodnoty jako volání Timer.ActiveCount.
K dispozici od: .NET 9.
Metrický: dotnet.assembly.count
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.assembly.count |
UpDownCounter<T> | {assembly} |
Počet sestavení .NET, která jsou aktuálně načtena. |
Tato metrika hlásí stejné hodnoty jako volání AppDomain.GetAssemblies() a pak zkontroluje délku vráceného pole.
K dispozici od: .NET 9.
Metrický: dotnet.exceptions
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
dotnet.exceptions |
Counter<T> | {exception} |
Počet výjimek, které byly vyvolány ve spravovaném kódu. |
| Atribut | Typ | Popis | Příklady | Přítomnost |
|---|---|---|---|---|
error.type |
string |
Typ výjimky, který byl vyvolán. |
System.OperationCanceledException; Contoso.MyException |
Required |
Tato metrika hlásí stejné hodnoty jako počítání volání AppDomain.FirstChanceException události.
K dispozici od: .NET 9.