Čítače výkonu systému v Application Insights
Systém Windows poskytuje různé čítače výkonu, například ty, které se používají ke shromažďování statistik využití procesoru, paměti a disku. Můžete také definovat vlastní čítače výkonu.
Kolekce čítačů výkonu se podporuje, pokud vaše aplikace běží ve službě IIS na místním hostiteli nebo je virtuální počítač, ke kterému máte přístup pro správu. I když aplikace spuštěné jako Azure Web Apps nemají přímý přístup k čítačům výkonu, application Insights shromažďuje podmnožinu dostupných čítačů.
Upozornění
Pro nové aplikace nebo zákazníky doporučujeme , aby služba Azure Monitor OpenTelemetry distro vysílala služby Azure Monitor Application Insights. Distribuce OpenTelemetry služby Azure Monitor poskytuje podobné funkce a prostředí jako sada Application Insights SDK. Ze sady Application Insights SDK je možné migrovat pomocí průvodců migrací pro .NET, Node.js a Python, ale stále pracujeme na přidání několika dalších funkcí pro zpětnou kompatibilitu.
Požadavky
Udělte účtu služby App Pool Service oprávnění k monitorování čítačů výkonu tak, že ho přidáte do skupiny Sledování výkonu Users.
net localgroup "Performance Monitor Users" /add "IIS APPPOOL\NameOfYourPool"
Zobrazení čítačů
Podokno Metriky zobrazuje výchozí sadu čítačů výkonu.
Aktuální výchozí čítače pro webové aplikace ASP.NET:
- % Process\Processor Time
- % Process\Processor Time Normalized
- Paměť\Dostupné bajty
- požadavky ASP.NET za sekundu
- Výjimky .NET CLR vyvolané / s
- ASP.NET ApplicationsRequest – doba provádění
- Process\Private Bytes
- Zpracování\Bajty vstupně-výstupních dat za sekundu
- ASP.NET Applications\Requests In Application Queue
- Processor(_Total)\% čas procesoru
Aktuální výchozí čítače shromážděné pro webové aplikace ASP.NET Core:
- % Process\Processor Time
- % Process\Processor Time Normalized
- Paměť\Dostupné bajty
- Process\Private Bytes
- Zpracování\Bajty vstupně-výstupních dat za sekundu
- Processor(_Total)\% čas procesoru
Přidání čítačů
Pokud požadovaný čítač výkonu není součástí seznamu metrik, můžete ho přidat.
Pomocí tohoto příkazu PowerShellu na místním serveru zjistěte, jaké čítače jsou na vašem serveru k dispozici:
Get-Counter -ListSet *
Další informace najdete na webu
Get-Counter
.Otevře záznam typu
ApplicationInsights.config
.Pokud jste do aplikace přidali Application Insights během vývoje:
- Upravte
ApplicationInsights.config
v projektu. - Znovu ho nasaďte na servery.
- Upravte
Upravte direktivu kolektoru výkonu:
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector"> <Counters> <Add PerformanceCounter="\Objects\Processes"/> <Add PerformanceCounter="\Sales(photo)\# Items Sold" ReportAs="Photo sales"/> </Counters> </Add>
Poznámka:
ASP.NET aplikace Core nemají ApplicationInsights.config
, takže předchozí metoda není platná pro aplikace ASP.NET Core.
Můžete zachytit standardní čítače i čítače, které jste implementovali sami. \Objects\Processes
je příkladem standardního čítače, který je k dispozici ve všech systémech Windows. \Sales(photo)\# Items Sold
je příkladem vlastního čítače, který může být implementován ve webové službě.
Formát je \Category(instance)\Counter
, nebo pro kategorie, které nemají instance, pouze \Category\Counter
.
Parametr ReportAs
je povinný pro názvy čítačů, které neodpovídají [a-zA-Z()/-_ \.]+
. To znamená, že obsahují znaky, které nejsou v následujících sadách: písmena, kulaté závorky, lomítko, spojovník, podtržítko, mezera a tečka.
Pokud zadáte instanci, bude shromážděna jako dimenze CounterInstanceName
hlášené metriky.
Shromažďování čítačů výkonu v kódu pro webové aplikace ASP.NET nebo konzolové aplikace .NET/.NET Core
Pokud chcete shromažďovat čítače výkonu systému a odesílat je do Application Insights, můžete přizpůsobit následující fragment kódu:
var perfCollectorModule = new PerformanceCollectorModule();
perfCollectorModule.Counters.Add(new PerformanceCounterCollectionRequest(
@"\Process([replace-with-application-process-name])\Page Faults/sec", "PageFaultsPerfSec"));
perfCollectorModule.Initialize(TelemetryConfiguration.Active);
Nebo můžete udělat totéž s vlastními metrikami, které jste vytvořili:
var perfCollectorModule = new PerformanceCollectorModule();
perfCollectorModule.Counters.Add(new PerformanceCounterCollectionRequest(
@"\Sales(photo)\# Items Sold", "Photo sales"));
perfCollectorModule.Initialize(TelemetryConfiguration.Active);
Shromažďování čítačů výkonu v kódu pro webové aplikace ASP.NET Core
Konfigurace PerformanceCollectorModule
za metodou WebApplication.CreateBuilder()
v Program.cs
:
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
// The following configures PerformanceCollectorModule.
builder.Services.ConfigureTelemetryModule<PerformanceCollectorModule>((module, o) =>
{
// The application process name could be "dotnet" for ASP.NET Core self-hosted applications.
module.Counters.Add(new PerformanceCounterCollectionRequest(@"\Process([replace-with-application-process-name])\Page Faults/sec", "DotnetPageFaultsPerfSec"));
});
var app = builder.Build();
Čítače výkonu v Log Analytics
Sestavy čítačů výkonu můžete vyhledávat a zobrazovat v Log Analytics.
Schéma performanceCounters zveřejňuje category
, counter
název a instance
název každého čítače výkonu. V telemetrii pro každou aplikaci uvidíte jenom čítače této aplikace. Pokud například chcete zjistit, jaké čítače jsou k dispozici:
Instance
Tady se odkazuje na instanci čítače výkonu, nikoli na instanci role nebo serveru. Název instance čítače výkonu obvykle segmentuje čítače, například čas procesoru, podle názvu procesu nebo aplikace.
Získání grafu dostupné paměti za poslední období:
Stejně jako jiná telemetrie má performanceCounters také sloupec cloud_RoleInstance
, který označuje identitu instance hostitelského serveru, na které je vaše aplikace spuštěná. Pokud chcete například porovnat výkon aplikace na různých počítačích:
ASP.NET a počty Application Insights
V dalších částech najdete informace o ASP.NET a počtech Application Insights.
Jaký je rozdíl mezi metrikou Četnost výjimek a Výjimkami?
Exception rate
: Frekvence výjimek je čítač výkonu systému. CLR spočítá všechny zpracovávané a neošetřené výjimky, které jsou vyvolány, a vydělí celkový součet v intervalu vzorkování délkou intervalu. Sada Application Insights SDK shromažďuje tento výsledek a odesílá ho na portál.Exceptions
: Metrika Výjimky je počet sestav přijatýchTrackException
portálem v intervalu vzorkování grafu. Zahrnuje pouze zpracovávané výjimky, ve kterých jste v kódu napsaliTrackException
volání. Nezahrnuje všechny neošetřené výjimky.
Čítače výkonu pro aplikace spuštěné v Azure Web Apps a v kontejnerech Windows ve službě Azure App Service
Aplikace ASP.NET i ASP.NET Core nasazené do Azure Web Apps běží ve speciálním sandboxovém prostředí. Aplikace nasazené do služby Aplikace Azure Service můžou využívat kontejner Windows nebo být hostované v prostředí sandboxu. Pokud je aplikace nasazená v kontejneru Windows, jsou v imagi kontejneru k dispozici všechny standardní čítače výkonu.
Prostředí sandboxu neumožňuje přímý přístup k čítačům výkonu systému. Omezená podmnožina čítačů je však vystavena jako proměnné prostředí, jak je popsáno v čítačích výkonu vystavených jako proměnné prostředí. V tomto prostředí je k dispozici pouze podmnožina čítačů. Úplný seznam najdete v tématu Čítače výkonu vystavené jako proměnné prostředí.
Sada Application Insights SDK pro ASP.NET a ASP.NET Core zjistí, jestli je kód nasazený do webové aplikace nebo kontejneru mimo Windows. Detekce určuje, jestli shromažďuje čítače výkonu v prostředí sandboxu nebo využívá standardní mechanismus shromažďování při hostování na kontejneru nebo virtuálním počítači s Windows.
Čítače výkonu v aplikacích ASP.NET Core
Podpora čítačů výkonu v ASP.NET Core je omezená:
- Sada SDK verze 2.4.1 a novější shromažďuje čítače výkonu, pokud aplikace běží ve službě Azure Web Apps (Windows).
- Sada SDK verze 2.7.1 a novější shromažďuje čítače výkonu, pokud aplikace běží ve Windows a cílech
NETSTANDARD2.0
nebo novějších verzích. - U aplikací, které cílí na rozhraní .NET Framework, podporují všechny verze sady SDK čítače výkonu.
- Sada SDK verze 2.8.0 a novější podporuje čítač procesoru a paměti v Linuxu. Linux nepodporuje žádný jiný čítač. K získání čítačů systému v Linuxu (a dalších prostředích mimo Windows) použijte EventCounters.
Výstrahy
Stejně jako u jiných metrik můžete nastavit upozornění , které vás upozorní, pokud čítač výkonu překročí vámi zadaný limit. Pokud chcete nastavit upozornění, otevřete podokno Upozornění a vyberte Přidat výstrahu.