Azure kapsayıcılarında .NET Profiler'ı etkinleştirme
Kapsayıcınızda neredeyse kod olmadan çalışan uygulamalarda .NET için Application Insights Profiler'ı etkinleştirebilirsiniz. Kapsayıcı örneğinizde .NET Profiler'ı etkinleştirmek için şunları yapmanız gerekir:
- NuGet paketine
Microsoft.ApplicationInsights.Profiler.AspNetCore
başvuruyu ekleyin. - .NET için Profil Oluşturucu'nun etkinleştirilmesi için kodu güncelleştirin.
- Application Insights izleme anahtarını ayarlayın.
Bu makalede, şunları yapmanın çeşitli yolları hakkında bilgi edinebilirsiniz:
- Projeye NuGet paketini yükleyin.
- Ortam değişkenini orchestrator (Kubernetes gibi) aracılığıyla ayarlayın.
- Application Insights izleme anahtarınızı koruma gibi üretim dağıtımıyla ilgili güvenlik konuları hakkında bilgi edinin.
Önkoşullar
- Application Insights kaynağı. İzleme anahtarını not edin.
- Docker görüntüleri oluşturmak için Docker Desktop .
- .NET 6 SDK yüklü.
Ortamı ayarlama
Aşağıdaki örnek projeyi kopyalayıp kullanın:
git clone https://github.com/microsoft/ApplicationInsights-Profiler-AspNetCore.git
Kapsayıcı Uygulaması örneğine gidin:
cd examples/EnableServiceProfilerForContainerAppNet6
Bu örnek, aşağıdaki CLI komutu çağrılarak oluşturulan bir barebones projesidir:
dotnet new mvc -n EnableServiceProfilerForContainerApp
Performans sorununun benzetimini
Controllers/WeatherForecastController.cs
yapmak için projeye gecikme ekledik.[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)); }
.NET Profiler izlemelerini toplamak için NuGet paketini ekleyin:
dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
Application Insights'ı ve .NET Profiler'ı etkinleştirin.
yönteminde
Program.cs
vebuilder.Services.AddServiceProfiler()
sonrasınıWebApplication.CreateBuilder()
ekleyinbuilder.Services.AddApplicationInsightsTelemetry()
: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();
En son ASP.NET Core derleme/çalışma zamanı görüntülerini çekme
.NET Core 6.0 örnek dizinine gidin:
cd examples/EnableServiceProfilerForContainerAppNet6
En son ASP.NET Core görüntülerini çekin:
docker pull mcr.microsoft.com/dotnet/sdk:6.0 docker pull mcr.microsoft.com/dotnet/aspnet:6.0
İpucu
Docker SDK'sı ve çalışma zamanı için resmi görüntüleri bulun.
Application Insights anahtarınızı ekleme
Azure portalındaki Application Insights kaynağınız aracılığıyla Application Insights izleme anahtarınızı not alın.
Application Insights izleme anahtarınızı açın
appsettings.json
ve bu kod bölümüne ekleyin:{ "ApplicationInsights": { "InstrumentationKey": "Your instrumentation key" } }
Docker görüntüsünü derleme ve çalıştırma
Docker dosyasını gözden geçirin.
Örnek görüntüyü oluşturun:
docker build -t profilerapp .
Kapsayıcıyı çalıştırın:
docker run -d -p 8080:80 --name testapp profilerapp
Kapsayıcıyı tarayıcınız aracılığıyla görüntüleme
Uç noktaya gitmek için iki seçeneğiniz vardır:
Tarayıcınızda ziyaret edin
http://localhost:8080/weatherforecast
.Curl kullan:
curl http://localhost:8080/weatherforecast
Günlükleri inceleme
İsteğe bağlı olarak, profil oluşturma oturumunun tamam olup olmadığını görmek için yerel günlüğü inceleyin:
docker logs testapp
Yerel günlüklerde aşağıdaki olayları not edin:
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.
.NET Profil Oluşturucu izlemelerini görüntüleme
Olayların Application Insights'a toplanmasını sağlamak için 2-5 dakika bekleyin.
Application Insights kaynağınızda Performans bölmesini açın.
İzleme işlemi tamamlandıktan sonra Profil Oluşturucu İzlemeleri düğmesi görüntülenir.
Kaynakları temizleme
Örnek projeyi durdurmak için aşağıdaki komutu çalıştırın:
docker rm -f testapp