Surveillance des applications basées sur .NET et .NET Core

Présentation

Instana offre une surveillance complète des applications d'.NET, notamment grâce à :
  • 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.

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.

Important : par défaut, le traçage automatique pour .NET Core est désactivé. Vous devez l'activer explicitement.

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.

Remarque : assurez-vous que les fonctions de diagnostic sont activées pour .NET en définissant les variables 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 :

  1. 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.Core
    • Instana.Tracing.Core.Rewriter
    Remarque : choisissez la version du package Rewriter adaptée à votre plateforme cible ( Windows, Linux ou Alpine Linux ).
  2. Définissez les variables d'environnement suivantes :

    • CORECLR_ENABLE_PROFILING
    • CORECLR_PROFILER_PATH
    • CORECLR_PROFILER
    • DOTNET_STARTUP_HOOKS
  3. 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 :

Tableau 1. Guide d'installation spécifique à la plateforme
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 :

Pour obtenir des instructions détaillées sur la configuration, consultez la section « Configuration des fonctionnalités supplémentaires ».

Affichage des métriques et des traces

Remarque : la collecte des métriques sur Windows est disponible automatiquement. Sur Linux, une configuration supplémentaire est nécessaire. Consultez la section « Activation des métriques » sur Linux.

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 :

  1. Dans le menu de navigation de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
  2. 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 :

  1. Dans le menu de navigation de l'interface utilisateur d' Instana, cliquez sur Applications.
  2. Dans le tableau de bord Applications, sélectionnez une application ou un service d'.NET.
  3. Dans le tableau de bord de l'application ou des services, cliquez sur Analyse des appels.
  4. 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

Tableau 2. 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

Tableau 3. Indicateurs 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 :

  1. 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 » sur enabled: 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: false
     
  2. Redémarrez l'agent d' Instana ation afin que la configuration mise à jour soit prise en compte.

  3. 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.exe indicateurs 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 :

  1. 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
  2. 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
  3. 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, et CORECLR_PROFILER sont correctement configurés
  4. 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_EnableDiagnostics et DOTNET_EnableDiagnostics sur 1
    • Si le diagnostic n'est pas activé, IL-Rewriter ne peut pas se connecter au processus
  5. 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

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

Tableau 4. 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