Megosztás a következőn keresztül:


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

A környezet beállítása

  1. Klónozza és használja a következő mintaprojektet:

    git clone https://github.com/microsoft/ApplicationInsights-Profiler-AspNetCore.git
    
  2. Nyissa meg a Tárolóalkalmazás példáját:

    cd examples/EnableServiceProfilerForContainerAppNet6
    
  3. 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));
    }
    
  4. Adja hozzá a NuGet-csomagot a .NET Profiler-nyomkövetések gyűjtéséhez:

    dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
    
  5. Engedélyezze az Application Insightst és a .NET Profilert.

    Adja hozzá builder.Services.AddApplicationInsightsTelemetry() és builder.Services.AddServiceProfiler() után a metódust a WebApplication.CreateBuilder() következőben Program.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

  1. Nyissa meg a .NET Core 6.0 példakönyvtárat:

    cd examples/EnableServiceProfilerForContainerAppNet6
    
  2. 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

  1. Az Azure Portal Application Insights-erőforrásán keresztül jegyezze fel az Application Insights rendszerállapotkulcsát.

    Képernyőkép az Azure Portal rendszerállapot-kulcsának megkeresését bemutató képernyőképről.

  2. 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

  1. Tekintse át a Docker-fájlt.

  2. Hozza létre a példaképet:

    docker build -t profilerapp .
    
  3. 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

  1. Várjon 2–5 percet, hogy az események összesíthetők legyenek az Application Insightsban.

  2. Nyissa meg a Teljesítmény panelt az Application Insights-erőforrásban.

  3. A nyomkövetési folyamat befejezése után megjelenik a Profiler nyomkövetési gombja.

    Képernyőkép a .NET Profiler nyomkövetési gombjáról a Teljesítmény panelen.

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

Következő lépések