Partager via


Surveiller et analyser le comportement d’exécution avec Optimisations de code

Le diagnostic des problèmes de performances de votre application peut s’avérer difficile, en particulier lors d’une exécution sur un environnement de production dans le cloud. Les réponses lentes dans votre application peuvent être provoquées par l’infrastructure, le cadre ou le code de l’application qui gère la requête dans le pipeline.

Le service Optimisations de code, qui est basé sur l’IA dans Azure Application Insights, fonctionne en tandem avec Application Insights Profiler pour .NET afin de détecter les problèmes de performances d’utilisation du processeur et de la mémoire au niveau du code et fournir des recommandations sur la façon de les résoudre.

Prenez des décisions éclairées et optimisez votre code en utilisant des données de performances en temps réel et des insights collectés à partir de votre environnement de production.

Vous pouvez passer en revue vos optimisations de code dans le Portail Azure.

Optimisations du code et Profileur Application Insights pour .NET

Le Profiler .NET et Optimisations de code fonctionnent ensemble pour fournir une approche holistique en matière de détection des problèmes de performances.

Optimisations de code

Les optimisations du code identifient, analysent et résolvent les données de profilage collectées par application Insights Profiler pour .NET. À mesure que .NET Profiler charge des données dans Application Insights, notre modèle Machine Learning analyse certaines des données pour trouver où le code de l’application peut être optimisé. Optimisations de code :

  • Affiche des données agrégées collectées au fil du temps.
  • Connecte des données avec des méthodes et des fonctions dans le code de votre application.
  • Isole le coupable en identifiant les goulots d’étranglement au sein du code.
  • Fournit des correctifs de performances au niveau du code en fonction des insights.

Identifier

À l’aide de la page de présentation consolidée des optimisations du code, vous pouvez voir toutes les recommandations d’optimisation du code sur vos abonnements Azure et les ressources Application Insights dans le portail Azure. Identifiez les goulots d’étranglement dans votre code et passez en revue les recommandations au niveau du code pour les environnements de développement, de test, de préproduction et de production.

Analyser

Une fois les données de votre environnement collectées, les optimisations du code fournissent des recommandations au niveau du code toutes les heures. Par défaut, la vue de données agrégées affiche une fenêtre de 24 heures propagée de problèmes récemment identifiés, avec un historique de 30 jours pour vous permettre d’examiner et d’analyser les événements passés.

Résoudre

Après avoir identifié et analysé les résultats de l’optimisation du code, vous pouvez résoudre ces problèmes dans votre code à l’aide des extensions Visual Studio et Visual Studio Code . Avec ces extensions, interagissez avec GitHub Copilot pour recevoir un correctif de code basé sur des perspectives d’optimisation du code.

Vous pouvez également créer un problème GitHub à partir de la page Optimisations du code dans le portail Azure et l’affecter à l’agent de codage Copilot GitHub. À partir de là, GitHub Copilot ouvre une demande de tirage et envoie des modifications de code basées sur les informations d’optimisation du code.

Vidéo de démonstration

Application Insights Profiler pour .NET

.NET Profiler se concentre sur le suivi des requêtes spécifiques, jusqu’à la milliseconde. Il fournit une excellente « vue d’ensemble » des problèmes au sein de votre application et des meilleures pratiques générales pour les résoudre.

Avec Application Insights Profiler pour .NET, vous pouvez capturer, identifier et afficher des traces de niveau de performance de votre application s’exécutant dans Azure, quel que soit le scénario. Le processus de trace Profiler .NET se produit automatiquement à grande échelle et n’affecte pas négativement vos utilisateurs. Le Profiler .NET identifie :

  • Temps de réponse médian, le plus rapide et le plus lent pour chaque requête web effectuée par vos clients.
  • Le chemin de code « chaud » qui passe la plupart du temps à traiter une requête web particulière.

Activez Profiler .NET sur toutes vos applications Azure pour collecter des données avec les déclencheurs suivants :

  • Déclencheur d’échantillonnage : démarre Profiler de façon aléatoire environ une fois par heure pendant deux minutes.
  • Déclencheur de CPU : démarre Profiler lorsque le pourcentage d’utilisation du processeur est supérieur à 80 %.
  • Déclencheur de mémoire : démarre Profiler lorsque l’utilisation de la mémoire est supérieure à 80 %.

Chacun de ces déclencheurs peut être configuré, activé ou désactivé.

Coût et surcharge

Les optimisations du code sont générées automatiquement après l’activation de Application Insights Profiler pour .NET. Par défaut, Profiler collecte activement les traces toutes les heures pendant 30 secondes ou pendant des périodes d’utilisation élevée du processeur ou de la mémoire pendant 30 secondes. Les traces horaires (appelées échantillonnage) sont idéales pour le réglage proactif, tandis que les traces de processeur et de mémoire élevées (appelées déclencheurs) sont utiles pour la résolution réactive des problèmes.

Remarque

Quand Application Insights Profiler pour .NET est en cours d’exécution et collecte des traces, il ajoute généralement une surcharge de 5 à 15 % en termes de processeur et de mémoire sur votre serveur.

Il n’y a aucun coût supplémentaire pour le stockage des données capturées par .NET Profiler. Les données sont automatiquement supprimées après 15 jours.

Certaines fonctionnalités d’optimisation du code (telles que les suggestions de correctif au niveau du code) nécessitent Copilot pour GitHub et/ou Copilot pour Azure.

Activation de .NET Profiler

À mesure que les infrastructures et les services Azure évoluent, vous pouvez activer .NET Profiler pour vos applications .NET s’exécutant sur Azure via plusieurs options.

Service d'Azure Comment activer Détails
La plupart des services Azure Modification du code dans votre application
(le plus universel)
Si votre application .NET s’exécute sur des variantes de services Ou de conteneurs PaaS Azure, vous pouvez choisir entre deux options pour activer .NET Profiler :
- Application Insights Profiler pour ASP.NET Core qui utilise le Kit de développement logiciel (SDK) Application Insights ou
- NouveauProfileur Azure Monitor OpenTelemetry pour NET (préversion) qui utilise la distribution OpenTelemetry Azure Monitor
Azure App Service Aucune modification de code pour votre application Étant donné que Profiler est préinstallé, vous pouvez activer Profiler pour .NET dans le portail pour :
- Azure App Service - Application .NET sur Windows
- Azure Functions - plan App Service
Machines virtuelles Aucune modification de code pour votre application Une fois que vous avez activé le Kit de développement logiciel (SDK) Application Insights dans votre code d’application, vous pouvez activer Profiler pour .NET dans votre modèle ARM.
- Machines virtuelles Azure et ensembles de mise à l'échelle de machines virtuelles pour Windows
- Azure Service Fabric

Détails et exemples d’activation de Profiler pour .NET

Remarque

Vous pouvez également utiliser le Profileur Java pour Azure Monitor Application Insights, actuellement en préversion.

Régions prises en charge

Le service Optimisations du code est disponible dans les mêmes régions qu’Application Insights. Vous pouvez consulter les régions disponibles à l’aide de la commande suivante :

az account list-locations -o table

Vous pouvez définir une région explicite en utilisant des chaînes de connexion. En savoir plus sur les chaînes de connexion à l’aide d’exemples.

Limites

Profilage d’applications web :

  • Même si vous pouvez utiliser le Profiler .NET gratuitement, votre application web doit être hébergée au moins au niveau De base de la fonctionnalité Web Apps d’Azure App Service.
  • Vous pouvez joindre 1 seul profileur à chaque application web.

Résolution des problèmes

Étapes suivantes

Découvrez comment activer .NET Profiler avec optimisations du code sur votre service Azure :