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


É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

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

    dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
    
  5. Engedélyezze az Application Insightst és a 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-/futtatókörnyezeti rendszerképek lekérése

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

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

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

    Képernyőkép az eszközkulcs Azure Portal való megkeresésérő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 Service 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 Traces gomb.

    Képernyőkép a Profiler-nyomkövetések gombró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