Surveillance des applications basées sur .NET et .NET Core
Surveillez vos applications .NET et .NET Core grâce aux fonctionnalités d'instrumentation automatique et de traçage distribué d' Instana.
Pour les applications d'.NET Framework, consultez la page .NET Framework.
Présentation
- Instrumentation automatique : aucune modification du code n'est nécessaire grâce à l' AutoTrace
- Traçage distribué : une visibilité de bout en bout sur l'ensemble de vos services
- Indicateurs de performance : CPU, mémoire, verrous de thread, etc
- AutoProfile : profilage continu pour l'optimisation des performances
- OpenTelemetry Prise en charge : Intégration aux implémentations existantes d' OTel
Comment fonctionne la surveillance d'.NET
Créez n'importe quelle application avec .NET 5.0 et versions ultérieures, ou utilisez une application existante. Installez l'agent d' Instana s dans votre environnement. L'agent détecte le processus « .NET » et charge le capteur « .NET ». Il recueille automatiquement des indicateurs de performance et des données d'intégrité provenant de vos applications .NET Core.
Vous devez configurer explicitement le traçage d'.NET s afin de collecter des données de traçage détaillées pour les requêtes transitant par votre application et les services connectés. Le traçage permet de suivre le parcours de chaque requête au sein de votre application, en vous indiquant la durée de chaque étape et à quel moment les problèmes surviennent.
Vous pouvez configurer le traçage en suivant les méthodes suivantes :
- AutoTrace : configuration automatique via l'agent
- Suivi manuel : installation explicite du paquet « NuGet »
Pour plus d'informations, consultez la section « Approches en matière d'instrumentation ».
Lorsque la fonction de traçage est activée, Instana active l'outil « .NET Tracer », qui capture les traces à l'aide de l'une des méthodes d'instrumentation suivantes, ou des deux :
- Réécriture du langage intermédiaire (IL) : Instana se connecte au processus .NET et réécrit le code du langage intermédiaire (IL) sélectionné lors de l'exécution afin d'y intégrer une logique de traçage.
- Instrumentation pilotée par les événements : Instana écoute les événements et les données d' ActivitySource s générés par les bibliothèques prises en charge, puis convertit ces événements en traces distribuées sans réécrire le code IL. Pour plus d'informations, consultez la section « Configuration de l'instrumentation pilotée par les événements ».
Les capteurs et les traceurs fonctionnent de concert pour offrir une observabilité complète. Pour connaître les dernières versions de Sensor et Tracer, consultez .NET Core (Sensor) ainsi que .NET et .NET Core (Tracer).
Prérequis
Assurez-vous que les prérequis suivants sont respectés :
Configuration matérielle requise :
- Mémoire vive (RAM) : 8 Go ou plus de mémoire disponible
- Processeur : 4 cœurs ou plus pour des performances optimales
- Espace disque : 100 Mo pour les journaux de traçage et les fichiers temporaires
Instana L'agent est installé : l'agent hôte doit être en cours d'exécution sur votre infrastructure.
Connectivité réseau : votre application .NET doit pouvoir communiquer avec l'agent Instana. Pour plus d'informations, consultez la section « Configuration réseau requise ».
Environnement d'exécution d'.NET s pris en charge
- .NET 5.0 ou version ultérieure
- .NET Core 2.x et 3.x (obsolète)
Pour plus d'informations, consultez la rubrique Assistance.
Informations de support
Pour vous assurer que Instana est compatible avec votre configuration actuelle, consultez la page « Environnements d'exécution, bibliothèques et frameworks pris en charge par .NET ».
Configuration de la surveillance d'.NET
Pour configurer la surveillance d'.NET, effectuez les tâches suivantes dans l'ordre :
Étape 1 : Comprendre les différentes approches en matière d'instrumentation
Vous pouvez configurer le traçage pour vos applications .NET de manière automatique ou manuelle, en fonction de votre environnement.
Si votre environnement prend en charge AutoTrace,, Instana instrumente automatiquement votre application .NET. Toutefois, si la fonctionnalité « AutoTrace » n'est pas prise en charge, vous devez recourir au traçage manuel.
AutoTrace
Instana AutoTrace permet l'instrumentation automatique sans aucune modification du code. Avec cette approche, aucune configuration manuelle n'est nécessaire. Instana détecte, instrument et trace automatiquement les composants de votre application à votre place.
Pour configurer automatiquement le traçage d'.NET, activez le traçage dans le fichier de configuration de l'agent. L'agent détecte les processus .NET et injecte automatiquement le traçage dans les processus .NET. Aucune installation d' NuGet, ni aucune modification du code n'est nécessaire.
L'agent crée un fichier instana_dotnet_global_env.sh d'environnement global contenant les variables d'environnement nécessaires au traçage d'.NET.
Instana commence immédiatement à générer des segments pour les requêtes entrantes, et vous pouvez ensuite consulter les traces dans l'interface utilisateur d' Instana.
Tracé manuel
Le traçage manuel implique la mise en place d'outils à l'aide de progiciels d' NuGet. Cette approche vous permet de mieux contrôler les éléments à tracer, mais elle nécessite une configuration et une mise en place supplémentaires.
COMPlus_EnableDiagnostics d'environnement et DOTNET_EnableDiagnostics sur 1. Si elles sont désactivées, le réécrivain IL ne peut pas se connecter au processus; par conséquent, les appels ne peuvent pas être réécrits et aucune trace ne peut être générée.Pour configurer manuellement le suivi d'.NET, procédez comme suit :
Ajoutez les paquets suivants à votre projet : Instana NuGet. Ces paquets ajoutent une logique de traçage et permettent l'instrumentation à l'exécution.
Instana.Tracing.CoreInstana.Tracing.Core.Rewriter
Remarque : choisissez la version du package Rewriter adaptée à votre plateforme cible ( Windows, Linux ou Alpine Linux ).Définissez les variables d'environnement suivantes :
CORECLR_ENABLE_PROFILINGCORECLR_PROFILER_PATHCORECLR_PROFILERDOTNET_STARTUP_HOOKS
Déployez votre application avec les bibliothèques de traçage incluses.
Le traçage manuel est idéal dans les cas suivants :
- Applications autonomes
- Environnements dans lesquels l' AutoTrace e n'est pas disponible
Étape 2 : Sélectionner le guide d'installation spécifique à la plateforme
Sélectionnez le guide qui correspond à votre environnement de déploiement :
| Environnement de déploiement | PartnerWorld |
|---|---|
| Fonctions AWS Lambda | Configuration du suivi d'.NET s sur AWS Lambda |
| Azure App Services | Configuration du suivi d'.NET s sur Azure App Services |
| Applications Azure Container | Configuration du traçage « .NET » sur les applications conteneurisées d’ Azure |
| Azure Functions | Configuration du suivi d'.NET s sur Azure Functions |
| Cloud Foundry plateforme | Configuration du suivi d'.NET s sur Cloud Foundry |
| Conteneurs Docker | Configuration du suivi d'.NET s sur Docker |
| Applications Web hébergées sur IIS | Configuration du suivi « .NET » sur IIS |
| Clusters Kubernetes | Configuration du suivi d'.NET s sur Kubernetes |
| Standard : Linux ou Alpine Linux | Configuration du suivi d'.NET s sur Linux ou Alpine Linux |
| Windows services ou processus autonomes | Configuration du suivi d'.NET s sur Windows |
| z/OS | Configuration du suivi d'.NET s sur z/OS |
Étape 3 : Configuration des fonctionnalités supplémentaires (facultatif)
Une fois la surveillance de base mise en place, vous pouvez configurer les fonctionnalités optionnelles suivantes afin d'améliorer les capacités de surveillance de votre .NET :
- Kafka En-têtes de corrélation de traces : Configurer les formats d'en-tête pour le traçage d' Kafka.
- Ignorer certains processus : contrôlez quels processus sont surveillés à l'aide d'une liste blanche ou d'une liste noire.
- Liste blanche des processus : ne surveiller que certains processus.
- Filtrage des segments : réduisez le volume de données en filtrant certains segments.
- AutoProfile : Activez le profilage continu pour optimiser les performances.
- Suivi personnalisé : ajoutez des segments personnalisés à l'aide du SDK d'.NET.
- Instrumentation pilotée par les événements : capture des données de télémétrie via les événements d' ActivitySource.
Pour obtenir des instructions détaillées sur la configuration, consultez la section « Configuration des fonctionnalités supplémentaires ».
Intégration avec OpenTelemetry
Affichage des métriques et des traces
Une fois la surveillance configurée, vous pouvez consulter les métriques et les traces associées aux applications d'.NET s dans l'interface utilisateur d' Instana.
Pour consulter les indicateurs, procédez comme suit :
- Dans le menu de navigation de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
- Cliquez sur un hôte surveillé spécifique.
Vous pouvez consulter un tableau de bord de l'hôte qui regroupe toutes les métriques collectées et les processus surveillés.
Pour afficher les traces, procédez comme suit :
- Dans le menu de navigation de l'interface utilisateur d' Instana, cliquez sur Applications.
- Dans le tableau de bord Applications, sélectionnez une application ou un service d'.NET.
- Dans le tableau de bord de l'application ou des services, cliquez sur Analyse des appels.
- Dans le tableau de bord Analytics, sélectionnez « Appels » ou « Traces » dans le menu « Applications ».
Les guides suivants fournissent des instructions détaillées sur la manière de consulter les données de vos applications :
Activer les indicateurs sur Linux
Sur Linux, déployez votre application à l'aide du package Instana.Tracing.CoreNuGet 1.1.34 ou d'une version ultérieure. Définissez la variable d'environnement suivante :
DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll
Pour vérifier que le paquet a bien été chargé, recherchez la ligne suivante dans la sortie de votre application :
INSTANA Agent for .NET Core applications installed. Running on
Vous pouvez utiliser le même package pour le traçage.
Données de configuration
| Configuration suivie | Description |
|---|---|
| Nom | Nom de l'application |
| Version | Version d'exécution de CLR |
| Arguments | Motifs de la requête |
Métriques de performance
| Métriques | Description |
|---|---|
| Activité GC | Indique la fréquence et la durée d'exécution du ramasse-miettes d'.NET |
| Utilisation de la mémoire | Indique la quantité de mémoire utilisée par l'application |
| Verrous d'unités d'exécution | Indique quand des threads sont bloqués en attente de verrous |
| Contention | Mesure la concurrence entre les threads pour l'accès aux ressources partagées |
| Exceptions | Affiche le nombre et les types d'exceptions d'exécution |
Signatures d'intégrité
Instana évalue en permanence les indicateurs de santé par rapport aux données reçues et signale les problèmes ou les incidents en fonction de leur impact sur les utilisateurs.
Les événements intégrés déclenchent des problèmes ou des incidents en fonction de signatures d'intégrité défaillantes sur des entités, tandis que les événements personnalisés déclenchent des problèmes ou des incidents en fonction des seuils d'une métrique spécifique à une entité donnée.
Pour plus d'informations sur les événements intégrés d'.NET, consultez la référence sur les événements intégrés.
Désactiver le traçage
Pour désactiver le traçage dans les applications d'.NET, procédez comme suit :
Mettez à jour le fichier de configuration : ouvrez le fichier de l'agent
configuration.yaml(*instanaAgentDir*/etc/instana/configuration.yaml) et définissez l'indicateur de suivi « .NET » surenabled: false.L'exemple suivant présente le fichier ` configuration.yaml ` avec le suivi de l'.NET ation désactivé :
# netcore Tracing com.instana.plugin.netcore: tracing: enabled: falseRedémarrez l'agent d' Instana ation afin que la configuration mise à jour soit prise en compte.
Redémarrez le processus hôte.
Problèmes connus et limitations
Consultez la liste des problèmes connus et des limitations concernant le traçage d'.NET :
Application Insights pour la surveillance d' ASP.NET Core et d' Instana .NET Core
En raison de certaines limitations d'Application Insights pour l' ASP.NET Core, il se peut que certaines données soient incomplètes ou manquantes dans Application Insights lorsque la surveillance d' Instana .NET Core s'exécute en parallèle.
Si vous souhaitez utiliser simultanément Application Insights et l' Instana, vous devez désactiver la propagation du contexte de trace d' W3C en désactivant l'injection de l'en-tête W3C par Instana.
Pour empêcher Instana d'injecter des en-têtes W3C, définissez la variable d'environnement suivante :
INSTANA_W3C_DISABLE_INJECT_HEADERS=1
Limites de l'instrumentation de la version de bibliothèque
Instana avec le capteur .NET Core 1.0.90 et .NET La version Tracer 1.315.1 (13 mars 2026) limite l'instrumentation aux versions des bibliothèques explicitement répertoriées dans la section « Bibliothèques et frameworks pris en charge pour le traçage ». Les versions non prises en charge ne sont pas instrumentées.
Pour bénéficier d'une assistance continue, effectuez la mise à niveau vers les versions prises en charge. Pour plus de détails et pour connaître les solutions de contournement possibles, consultez la note technique.
Mesures limitées au niveau d'IIS pour les applications d'.NET e 5 et versions ultérieures s'exécutant dans No Managed Code des pools d'applications
Lorsque vous hébergez des applications .NET 5 ou ultérieures (y compris .NET 6, 7, 8 et versions ultérieures) sur IIS, le pool d'applications doit être configuré pour s'exécuter avec No Managed Code. Dans ce mode, Instana ne peut pas collecter de métriques au niveau d'IIS.
Lorsqu'un pool d'applications IIS est défini sur No Managed Code, Instana ne peut pas collecter les métriques IIS suivantes :
- Noms des pools d'applications
w3wp.exeindicateurs de processus- Données de surveillance au niveau des processus de travail
Cette limitation est inhérente à la manière dont IIS héberge les applications .NET 5 et versions ultérieures. L'instrumentation et le traçage au niveau des applications continuent de fonctionner comme prévu, mais les indicateurs au niveau d'IIS ne sont pas disponibles.
Si vous avez besoin de métriques au niveau d'IIS, envisagez d'utiliser des applications .NET Framework 4 ou antérieures, qui prennent en charge les pools d'applications en code managé.
Dépannage de la surveillance d'.NET
Si vous rencontrez des problèmes avec la surveillance ou le traçage d'.NET, procédez au dépannage comme suit :
Étapes courantes de dépannage
Si vous ne voyez pas de traces ou de métriques dans l'interface utilisateur d' Instana, suivez les étapes générales de dépannage suivantes :
Vérifier les conditions préalables :
- Assurez-vous que la version d'exécution d'.NET s est prise en charge (.NET 5.0 ou version ultérieure)
- Vérifiez que l'agent « Instana » est en cours d'exécution et accessible
- Vérifiez la connexion réseau entre votre application et l'agent
Vérifiez les variables d'environnement :
- Vérifiez que toutes les variables d'environnement requises sont correctement définies
- Assurez-vous que les chemins d'accès sont valides et accessibles
- Vérifiez que les noms des variables sont correctement orthographiés
Vérifier l'initialisation d'IL-Rewriter :
- Vérifiez les journaux d'application pour voir s'il y a des messages d'initialisation d'IL-Rewriter
- Assurez-vous que
CORECLR_ENABLE_PROFILING,CORECLR_PROFILER_PATH, etCORECLR_PROFILERsont correctement configurés
Activer les diagnostics :
- Si vous utilisez un système de traçage qui s'appuie sur le réécrivain IL d' Instana, définissez
COMPlus_EnableDiagnosticsetDOTNET_EnableDiagnosticssur1 - Si le diagnostic n'est pas activé, IL-Rewriter ne peut pas se connecter au processus
- Si vous utilisez un système de traçage qui s'appuie sur le réécrivain IL d' Instana, définissez
Vérifier la configuration du traçage :
- Vérifiez que le traçage est activé dans le fichier de l'agent
configuration.yaml - Redémarrez l'agent et l'application après avoir modifié la configuration
- Vérifiez que le traçage est activé dans le fichier de l'agent
Pour obtenir des informations détaillées sur les scénarios de dépannage spécifiques à chaque plateforme et les procédures de collecte des journaux, consultez le guide de dépannage correspondant dans la section suivante.
Guides de dépannage spécifiques à chaque plateforme
| Environnement de déploiement | Guide de traitement des incidents |
|---|---|
| Fonctions AWS Lambda | Dépannage du suivi d'.NET s sur AWS Lambda |
| Azure | Dépannage du suivi d'.NET s sur Azure |
| Conteneurs Docker | Dépannage du suivi d'.NET s sur Docker |
| Applications Web hébergées sur IIS | Dépannage du suivi d'.NET s sur IIS |
| Clusters Kubernetes | Dépannage du suivi d'.NET s sur Kubernetes |
| Standard : Linux ou Alpine Linux | Dépannage du suivi d'.NET s sur Linux ou Alpine Linux |
| Windows services ou processus autonomes | Dépannage du suivi d'.NET s sur Windows |
| z/OS | Dépannage du suivi d'.NET s sur z/OS |