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.
Entity Framework Core (EF Core) zveřejňuje průběžné číselné metriky, které můžou poskytnout dobrou indikaci stavu programu. Tyto metriky je možné použít pro následující účely:
- Sledování obecného zatížení databáze v reálném čase, když je aplikace spuštěná
- Zveřejnění problematických postupů kódování, které můžou vést ke snížení výkonu
- Sledování a izolace neobvyklého chování programu
Metriky
EF Core hlásí metriky prostřednictvím standardního System.Diagnostics.Metrics rozhraní API.
Microsoft.EntityFrameworkCore je název měřiče. Doporučuje se přečíst si dokumentaci k .NET o metrikách.
Poznámka:
Tato funkce byla představena v EF Core 9.0. Informace o starších verzích EF Core najdete níže v čítačích událostí.
Metriky a jejich význam
microsoft.entityframeworkcore.active_dbcontextsmicrosoft.entityframeworkcore.queriesmicrosoft.entityframeworkcore.savechangesmicrosoft.entityframeworkcore.compiled_query_cache_hitsmicrosoft.entityframeworkcore.compiled_query_cache_missesmicrosoft.entityframeworkcore.execution_strategy_operation_failuresmicrosoft.entityframeworkcore.optimistic_concurrency_failures
Metrický: microsoft.entityframeworkcore.active_dbcontexts
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
microsoft.entityframeworkcore.active_dbcontexts |
ObservableUpDownCounter | {dbcontext} |
Počet aktuálně aktivních DbContext instancí |
K dispozici od: Entity Framework Core 9.0.
Metrický: microsoft.entityframeworkcore.queries
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
microsoft.entityframeworkcore.queries |
ObservableCounter | {query} |
Kumulativní počet spuštěnýchdotazůch |
K dispozici od: Entity Framework Core 9.0.
Metrický: microsoft.entityframeworkcore.savechanges
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
microsoft.entityframeworkcore.savechanges |
ObservableCounter | {savechanges} |
Kumulativní počet uložených změn |
K dispozici od: Entity Framework Core 9.0.
Metrický: microsoft.entityframeworkcore.compiled_query_cache_hits
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
microsoft.entityframeworkcore.compiled_query_cache_hits |
ObservableCounter | {hits} |
Kumulativní počet přístupů pro zkompilovanou mezipaměť dotazů. |
K dispozici od: Entity Framework Core 9.0.
Metrický: microsoft.entityframeworkcore.compiled_query_cache_misses
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
microsoft.entityframeworkcore.compiled_query_cache_misses |
ObservableCounter | {misses} |
Kumulativní počet neúspěšných chyb pro kompilovanou mezipaměť dotazů. |
K dispozici od: Entity Framework Core 9.0.
Metrický: microsoft.entityframeworkcore.execution_strategy_operation_failures
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
microsoft.entityframeworkcore.execution_strategy_operation_failures |
ObservableCounter | {failure} |
Kumulativní počet neúspěšných operací provedených operací IExecutionStrategy. |
K dispozici od: Entity Framework Core 9.0.
Metrický: microsoft.entityframeworkcore.optimistic_concurrency_failures
| Název | Typ přístroje | Jednotka (UCUM) | Popis |
|---|---|---|---|
microsoft.entityframeworkcore.optimistic_concurrency_failures |
ObservableCounter | {failure} |
Kumulativní počet optimistických selhání souběžnosti. |
K dispozici od: Entity Framework Core 9.0.
Čítače událostí (starší verze)
EF Core hlásí metriky prostřednictvím standardní funkce čítačů událostí .NET; Doporučujeme si přečíst tento blogový příspěvek , abyste získali rychlý přehled o tom, jak fungují čítače.
Připojení k procesu pomocí čítačů dotnet
Nástroj dotnet-counters lze použít k připojení ke spuštěným procesům a pravidelně hlásit čítače událostí EF Core. Aby byly tyto čítače dostupné, není potřeba v programu provádět nic zvláštního.
Nejprve nainstalujte dotnet-counters nástroj: dotnet tool install --global dotnet-counters.
Dále vyhledejte ID procesu (PID) procesu .NET, na kterém běží vaše aplikace EF Core:
- Otevřete Správce úloh systému Windows tak, že kliknete pravým tlačítkem na hlavní panel a vyberete "Správce úloh".
- Ujistěte se, že je v dolní části okna vybraná možnost Další podrobnosti.
- Na kartě Procesy klikněte pravým tlačítkem na sloupec a ujistěte se, že je povolený sloupec PID.
- Vyhledejte aplikaci v seznamu procesů a získejte ID procesu ze sloupce PID.
V aplikaci .NET je ID procesu k dispozici, protože Process.GetCurrentProcess().Idto může být užitečné pro tisk PID při spuštění.
Nakonec spusťte dotnet-counters následující:
dotnet counters monitor --counters Microsoft.EntityFrameworkCore -p <PID>
dotnet-counters teď se připojí ke spuštěném procesu a začne vytvářet sestavy průběžných dat čítačů:
Press p to pause, r to resume, q to quit.
Status: Running
[Microsoft.EntityFrameworkCore]
Active DbContexts 1
Execution Strategy Operation Failures (Count / 1 sec) 0
Execution Strategy Operation Failures (Total) 0
Optimistic Concurrency Failures (Count / 1 sec) 0
Optimistic Concurrency Failures (Total) 0
Queries (Count / 1 sec) 1
Queries (Total) 189
Query Cache Hit Rate (%) 100
SaveChanges (Count / 1 sec) 0
SaveChanges (Total) 0
Čítače a jejich význam
| Název čítače | Popis |
|---|---|
| Aktivní kontexty databáze ( active-db-contexts) |
Počet aktivních nedispozovaných instancí DbContext, které jsou aktuálně ve vaší aplikaci. Pokud se toto číslo neustále zvětšuje, může dojít k úniku, protože instance DbContext nejsou správně uvolněny. Upozorňujeme, že pokud je povolené sdružování kontextu, zahrnuje toto číslo instance DbContext ve fondu, které se aktuálně nepoužívají. |
| Selhání operací strategie spouštění ( total-execution-strategy-operation-failures a execution-strategy-operation-failures-per-second) |
Kolikrát se nepodařilo spustit operaci databáze. Pokud je povolená strategie opakovaného spuštění, zahrnuje to každou jednotlivou chybu v rámci více pokusů o stejnou operaci. Můžete ho použít ke zjišťování přechodných problémů s vaší infrastrukturou. |
| Optimistická selhání souběžnosti ( total-optimistic-concurrency-failures a optimistic-concurrency-failures-per-second) |
Počet neúspěšných pokusů SaveChanges kvůli chybě optimistické souběžnosti, protože data v úložišti dat se od načtení kódu změnila. To odpovídá DbUpdateConcurrencyException vyvolání. |
| Dotazy ( total-queries a queries-per-second) |
Počet spuštěných dotazů. |
| Rychlost dosažení mezipaměti dotazů (%) ( compiled-query-cache-hit-rate) |
Poměr přístupů mezi mezipamětí dotazů k chybějícím datům. Při prvním spuštění dotazu LINQ ef Core (s výjimkou parametrů) se musí zkompilovat v tom, co je relativně náročný proces. V normální aplikaci se všechny dotazy opakovaně používají a rychlost dosažení mezipaměti dotazů by měla být stabilní na 100 % po počátečním období zahřátí. Pokud je toto číslo v průběhu času menší než 100 %, může dojít ke snížení výkonu z důvodu opakovaných kompilací, což může být výsledkem neoptimální dynamické generování dotazů. |
| Uložit změny ( total-save-changes a save-changes-per-second) |
Počet volaných pokusů SaveChanges . Všimněte si, že SaveChanges ukládá několik změn v jedné dávce, takže nemusí nutně představovat každou jednotlivou aktualizaci provedenou v jedné entitě. |