Configuration du suivi d'.NET s sur Kubernetes

Vous pouvez configurer le traçage d'.NET s sur Kubernetes en utilisant le webhook Instana AutoTrace ou en configurant manuellement les variables d'environnement. Le webhook Instana AutoTrace configure automatiquement tout ce qui est nécessaire pour surveiller les applications .NET sur l'ensemble d'un cluster Kubernetes.

Pour plus d'informations sur le fonctionnement de la surveillance d'.NET, consultez la section « Comment fonctionne la surveillance d'.NET ».

Avant de commencer

Pour configurer le suivi d'.NET Core s sur Kubernetes, veuillez remplir les conditions préalables suivantes :

Activation du traçage d'.NET

Activez le suivi d'.NET s sur Kubernetes en utilisant l'une des méthodes suivantes :

Méthode 1 : Activer le traçage automatique à l'aide du webhook « AutoTrace »

Le webhook Instana AutoTrace est une implémentation d'un contrôleur d'admission de type « Mutating » Webhook pour Kubernetes. Il configure automatiquement tout ce qui est nécessaire pour surveiller les applications .NET à l'aide d' Instana, sur l'ensemble d'un cluster Kubernetes.

Si le webhook Instana AutoTrace est installé sur le cluster Kubernetes, la traçabilité est automatiquement activée pour les applications .NET qui s'exécutent sur ces clusters.

Pour activer le webhook Instana AutoTrace, procédez comme suit :

  1. Installez l'agent d' Instana sur Kubernetes. Consultez la section « Installation de l'agent d' Instana » sur Kubernetes.
  2. Installez le webhook Instana AutoTrace sur les clusters Kubernetes à l'aide de Helm. Assurez-vous que le suivi d'.NET Core s est activé pendant l'installation :

    --set autotrace.instrumentation.manual.netcore=true

    Pour plus d'informations, consultez la section « Installation d'un webhook d' AutoTrace ».

    Remarque : si le traçage de la fonction « .NET Core » est activé, ne désactivez pas les autres traçages ( Python, Node.js et Ruby ). La désactivation de ces traceurs pourrait avoir une incidence sur la fonction de traçage d'.NET Core.
  3. Si vous souhaitez activer le traçage de manière sélective pour certaines applications, vous pouvez utiliser le mode « opt-in » :

    1. Activer le mode « opt-in » lors de l'installation du webhook d' AutoTrace :

      --set autotrace.opt_in=true
    2. Ajoutez instana-autotrace: "true" l'étiquette aux ressources que vous souhaitez surveiller. Vous pouvez ajouter cette étiquette aux pods, ensembles de répliques, ensembles avec état, ensembles de démons et déploiements concernés. Si vous souhaitez l'exclure de l'instrumentation, définissez instana-autotrace: "false".
  4. Déployez et exécutez votre application.

Le webhook « AutoTrace » injecte automatiquement les variables d'environnement et les éléments d'instrumentation nécessaires dans les pods de votre application .NET.

Remarque : le webhook InstanaAutoTrace ne permet pas de mettre à jour automatiquement l'instrumentation. Vous devez donc le mettre à jour manuellement en désinstallant l'instrumentation précédente, puis en réinstallant le webhook via le déploiement Helm pour toute mise à jour de l'instrumentation. Pour plus d'informations, consultez la section « Mise à jour du webhook d' AutoTrace ».

Méthode 2 : Activer le traçage manuellement

Si vous préférez ne pas utiliser le webhook AutoTrace ou si vous souhaitez avoir davantage de contrôle sur la configuration, vous pouvez configurer manuellement le traçage en ajoutant des variables d'environnement à votre déploiement.

Pour activer manuellement le traçage d'une application .NET Core sur Kubernetes, procédez comme suit :

  1. Installez les paquets NuGet suivants dans votre application :

    Lorsque les paquets sont distribués via NuGet.org, vous pouvez les installer sans avoir à recompiler l'application. Utilisez l'une des méthodes suivantes :

    • nuget.exe Disponible : Restaurez les paquets à l'aide de nuget.exe sans compiler le projet à instrumenter.
    • nuget.exe indisponible : téléchargez directement les paquets, décompressez-les, puis configurez les variables d'environnement pour qu'elles pointent vers les fichiers décompressés, comme décrit à l'étape suivante.
  2. Ajoutez les variables d'environnement suivantes à votre YAML de déploiement Kubernetes :

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-dotnet-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-dotnet-app
      template:
        metadata:
          labels:
            app: my-dotnet-app
        spec:
          containers:
          - name: my-dotnet-app
            image: my-dotnet-app:latest
            env:
            - name: DOTNET_STARTUP_HOOKS
              value: "[path-to-your-app]/Instana.Tracing.Core.dll"
            - name: CORECLR_ENABLE_PROFILING
              value: "1"
            - name: CORECLR_PROFILER
              value: "{cf0d821e-299b-5307-a3d8-b283c03916dd}"
            - name: CORECLR_PROFILER_PATH
              value: "[Path_to_your_app]/instana_tracing/CoreProfiler.so"
            - name: INSTANA_AGENT_HOST
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: INSTANA_AGENT_PORT
              value: "42699"

    Remplacez [path-to-your-app] par les chemins d'accès réels vers le répertoire de votre application.

  3. Déployez et exécutez votre application.