A .NET Profiler engedélyezése Azure-tárolókon
A .NET-hez készült Application Insights Profiler szinte kód nélkül is engedélyezhető a tárolóban futó alkalmazásokon. A .NET Profiler tárolópéldányon való engedélyezéséhez a következőkre van szükség:
- Adja hozzá a NuGet-csomagra
Microsoft.ApplicationInsights.Profiler.AspNetCore
mutató hivatkozást. - Frissítse a kódot, hogy engedélyezze a profilkészítőt a .NET-hez.
- Állítsa be az Application Insights rendszerállapotkulcsát.
Ebben a cikkben megismerheti a különböző lehetőségeket:
- Telepítse a NuGet-csomagot a projektben.
- Állítsa be a környezeti változót a vezénylőn (például a Kubernetesen).
- Ismerje meg az éles üzembe helyezéssel kapcsolatos biztonsági szempontokat, például az Application Insights rendszerállapotkulcsának védelmét.
Előfeltételek
- Application Insights-erőforrás. Jegyezze fel a rendszerállapot-kulcsot.
- Docker Desktop a Docker-rendszerképek létrehozásához.
- A .NET 6 SDK telepítve van.
A környezet beállítása
Klónozza és használja a következő mintaprojektet:
git clone https://github.com/microsoft/ApplicationInsights-Profiler-AspNetCore.git
Nyissa meg a Tárolóalkalmazás példáját:
cd examples/EnableServiceProfilerForContainerAppNet6
Ez a példa egy csupasz projekt, amelyet a következő CLI-parancs meghívásával hoztak létre:
dotnet new mvc -n EnableServiceProfilerForContainerApp
A szűk keresztmetszet szimulálásához késést adtunk hozzá a projekthez
Controllers/WeatherForecastController.cs
.[HttpGet(Name = "GetWeatherForecast")] public IEnumerable<WeatherForecast> Get() { SimulateDelay(); ... // Other existing code. } private void SimulateDelay() { // Delay for 500ms to 2s to simulate a bottleneck. Thread.Sleep((new Random()).Next(500, 2000)); }
Adja hozzá a NuGet-csomagot a .NET Profiler-nyomkövetések gyűjtéséhez:
dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
Engedélyezze az Application Insightst és a .NET Profilert.
Adja hozzá
builder.Services.AddApplicationInsightsTelemetry()
ésbuilder.Services.AddServiceProfiler()
után a metódust aWebApplication.CreateBuilder()
következőbenProgram.cs
:var builder = WebApplication.CreateBuilder(args); builder.Services.AddApplicationInsightsTelemetry(); // Add this line of code to enable Application Insights. builder.Services.AddServiceProfiler(); // Add this line of code to enable Profiler builder.Services.AddControllersWithViews(); var app = builder.Build();
A legújabb ASP.NET Core build-/runtime-rendszerképek lekérése
Nyissa meg a .NET Core 6.0 példakönyvtárat:
cd examples/EnableServiceProfilerForContainerAppNet6
A legújabb ASP.NET Core-rendszerképek lekérése:
docker pull mcr.microsoft.com/dotnet/sdk:6.0 docker pull mcr.microsoft.com/dotnet/aspnet:6.0
Tipp.
Keresse meg a Docker SDK és a futtatókörnyezet hivatalos képeit.
Application Insights-kulcs hozzáadása
Az Azure Portal Application Insights-erőforrásán keresztül jegyezze fel az Application Insights rendszerállapotkulcsát.
Nyissa meg
appsettings.json
és adja hozzá az Application Insights-eszközkulcsot ehhez a kódszakaszhoz:{ "ApplicationInsights": { "InstrumentationKey": "Your instrumentation key" } }
A Docker-rendszerkép létrehozása és futtatása
Tekintse át a Docker-fájlt.
Hozza létre a példaképet:
docker build -t profilerapp .
Futtassa a tárolót:
docker run -d -p 8080:80 --name testapp profilerapp
A tároló megtekintése a böngészőben
A végpont eléréséhez két lehetősége van:
Látogasson el
http://localhost:8080/weatherforecast
a böngészőbe.Curl használata:
curl http://localhost:8080/weatherforecast
A naplók vizsgálata
Ha szeretné, ellenőrizze a helyi naplót, hogy befejeződött-e egy profilkészítési munkamenet:
docker logs testapp
A helyi naplókban jegyezze fel a következő eseményeket:
Starting application insights profiler with instrumentation key: your-instrumentation key # Double check the instrumentation key
Service Profiler session started. # Profiler started.
Finished calling trace uploader. Exit code: 0 # Uploader is called with exit code 0.
Service Profiler session finished. # A profiling session is completed.
A .NET Profiler-nyomkövetések megtekintése
Várjon 2–5 percet, hogy az események összesíthetők legyenek az Application Insightsban.
Nyissa meg a Teljesítmény panelt az Application Insights-erőforrásban.
A nyomkövetési folyamat befejezése után megjelenik a Profiler nyomkövetési gombja.
Az erőforrások eltávolítása
Futtassa a következő parancsot a példaprojekt leállításához:
docker rm -f testapp