Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez activer l'Application Insights Profiler for .NET sur les applications exécutées dans votre conteneur presque sans code. Pour activer Profiler .NET sur votre instance de conteneur, vous devez :
- Ajoutez la référence au package NuGet
Microsoft.ApplicationInsights.Profiler.AspNetCore
. - Mettez à jour le code pour activer le Profiler .NET.
- Configurez la chaîne de connexion Application Insights.
Dans cet article, vous découvrirez les différentes façons d’effectuer les procédures suivantes :
- Installer le package NuGet dans le projet.
- Définir la variable d’environnement via l’orchestrateur (comme Kubernetes).
- Découvrez les considérations de sécurité relatives au déploiement de production, telles que la protection de votre chaîne de connexion Application Insights.
Prérequis
- Une ressource Application Insights. Prenez note de la chaîne de connexion.
- Docker Desktop pour générer des images Docker.
- SDK .NET 6 installé.
Configurer l’environnement
Clonez et utilisez l’exemple de projet suivant :
git clone https://github.com/microsoft/ApplicationInsights-Profiler-AspNetCore.git
Accédez à l’exemple d’application de conteneur :
cd examples/EnableServiceProfilerForContainerAppNet6
Cet exemple est un projet nu créé en appelant la commande CLI suivante :
dotnet new mvc -n EnableServiceProfilerForContainerApp
Un délai se situe dans le projet
Controllers/WeatherForecastController.cs
pour simuler le goulot d’étranglement.[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)); }
Ajoutez le package NuGet pour collecter les traces du Profiler .NET :
dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
Activez Application Insights et le Profiler .NET.
Ajoutez
builder.Services.AddApplicationInsightsTelemetry()
etbuilder.Services.AddServiceProfiler()
après laWebApplication.CreateBuilder()
méthode dansProgram.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();
Vous pouvez également ajouter des paramètres profileur personnalisés, le cas échéant.
Extraire les dernières images de build/runtime ASP.NET Core
Accédez à l’exemple de répertoire .NET Core 6.0 :
cd examples/EnableServiceProfilerForContainerAppNet6
Procédez à l’extraction des dernières images d’ASP.NET Core :
docker pull mcr.microsoft.com/dotnet/sdk:6.0 docker pull mcr.microsoft.com/dotnet/aspnet:6.0
Conseil
Recherchez les images officielles pour le Kit de développement logiciel (SDK) et le runtime Docker.
Ajouter votre clé Application Insights
Via votre ressource Application Insights dans le Portail Microsoft Azure, prenez note de votre chaîne de connexion Application Insights.
Ouvrez
appsettings.json
et ajoutez votre chaîne de connexion Application Insights à cette section de code :{ "ApplicationInsights": { "InstrumentationKey": "Your connection string" } }
Générer et exécuter l’image Docker
Passez en revue la plateforme Docker.
Générez l’exemple d’image :
docker build -t profilerapp .
Exécutez le conteneur :
docker run -d -p 8080:80 --name testapp profilerapp
Afficher le conteneur via votre navigateur
Pour atteindre le point de terminaison, vous avez deux options :
Visitez
http://localhost:8080/weatherforecast
dans votre navigateur.Utiliser curl :
curl http://localhost:8080/weatherforecast
Inspection des données
Si vous le souhaitez, examinez le journal local pour voir si une session de profilage est terminée :
docker logs testapp
Dans les journaux locaux, notez les événements suivants :
Starting application insights profiler with connection string: your-connection string # Double check the connection string
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.
Résolution des problèmes
Si vous ne parvenez pas à trouver de traces à partir de votre application, suivez les étapes décrites dans ce guide de résolution des problèmes.
Afficher les traces de Profiler .NET
Attendez 2 à 5 minutes que les événements soit agrégés à Application Insights.
Ouvrez le volet Performances dans votre ressource Application Insights.
Une fois le processus de suivi terminé, le bouton Traces du profileur s’affiche.
Nettoyer les ressources
Exécutez la commande suivante pour arrêter le projet d'exemple :
docker rm -f testapp