Élő Azure-tárolók profilozása az Application Insights használatával
Az Application Insights profilkészítőt szinte kód nélkül engedélyezheti ASP.NET Core tárolóban futó alkalmazáshoz. Az Application Insights Profiler tárolópéldányon való engedélyezéséhez a következőket kell tennie:
- Adja hozzá a nuGet-csomagra
Microsoft.ApplicationInsights.Profiler.AspNetCore
mutató hivatkozást. - Frissítse a kódot a Profiler engedélyezéséhez.
- Állítsa be az Application Insights eszközkulcsot.
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 keresztül (például a Kubernetesen).
- Megismerheti az éles környezet biztonsági szempontjait, például az Application Insights rendszerállapotkulcsának védelmét.
Előfeltételek
- Application Insights-erőforrás. Jegyezze fel a kialakítási kulcsot.
- Docker Desktop 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 barebones projekt, amelyet a következő CLI-parancs meghívásával hoztak létre:
dotnet new mvc -n EnableServiceProfilerForContainerApp
Késést adtunk hozzá a projekthez,
Controllers/WeatherForecastController.cs
hogy szimuláljuk a szűk keresztmetszetet.[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 Profiler-nyomkövetések gyűjtéséhez:
dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
Engedélyezze az Application Insightst és a 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-/futtatókörnyezeti rendszerképek lekérése
Nyissa meg a .NET Core 6.0 példakönyvtárát:
cd examples/EnableServiceProfilerForContainerAppNet6
A legújabb ASP.NET Core ké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 rendszerképeit.
Application Insights-kulcs hozzáadása
Az Application Insights-erőforráson keresztül a Azure Portal 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 Service 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 Traces gomb.
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