Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

.NET Applications

Instrumentation automatique

L’instrumentation automatique pour .NET peut capturer automatiquement des traces et des métriques pour une variété de bibliothèques et frameworks.

L’instrumentation automatique ne nécessite aucune modification de l’application. Pour le configurer, suivez ces étapes :

  1. Téléchargez la version glibc ou musl des bibliothèques d’instrumentation (musl pour Alpine, glibc pour la plupart des autres images Docker) depuis les Releases du dépôt opentelemetry-dotnet-instrumentation. Décompressez les fichiers et incluez-les dans l’image Docker de votre application dans un répertoire, ici nous utilisons /autoinstrumentation.

  2. Définissez les variables d’environnement suivantes, ici nous le faisons via le env du conteneur dans la spécification du pod Kubernetes :

    env:
    - name: CORECLR_ENABLE_PROFILING
      value: "1"
    - name: CORECLR_PROFILER
      value: "{918728DD-259F-4A6A-AC2B-B85E1B658318}"
    - name: CORECLR_PROFILER_PATH
      # for glibc:
      value: "/autoinstrumentation/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so"
      # For musl use instead:
      # value: "/autoinstrumentation/linux-musl-x64/OpenTelemetry.AutoInstrumentation.Native.so"
    - name: DOTNET_ADDITIONAL_DEPS
      value: "/autoinstrumentation/AdditionalDeps"
    - name: DOTNET_SHARED_STORE
      value: "/autoinstrumentation/store"
    - name: DOTNET_STARTUP_HOOKS
      value: "/autoinstrumentation/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll"
    - name: OTEL_DOTNET_AUTO_HOME
      value: "/autoinstrumentation"
  3. Ajoutez également les variables d’environnement supplémentaires pour configurer le nom du service et le point de terminaison de l’exportateur sur le pod, les protocoles supportés sont gRPC et protobuf sur HTTP.

  4. Déployez votre application avec les modifications

  5. Vérifiez que SUSE Observability reçoit des traces et/ou des métriques en recherchant les métriques / traces dans l’explorateur de métriques / traces pour le nom de votre service

Pour plus de détails, veuillez vous référer à la documentation Open Telemetry.

Instrumentation manuelle

L’instrumentation manuelle peut être utilisée lorsque vous avez besoin de métriques, de traces ou de journaux provenant de parties du code qui ne sont pas prises en charge par l’instrumentation automatique. Par exemple, des bibliothèques non prises en charge, du code interne ou des métriques métier.

Pour capturer ces données, vous devez modifier votre application.

  1. Incluez le SDK Open Telemetry comme dépendance

  2. Ajoutez du code à votre application pour capturer des métriques, des spans ou des journaux là où cela est nécessaire

Il existe une documentation détaillée à ce sujet sur les pages de documentation du SDK Open Telemetry .NET.

Assurez-vous d’utiliser l’exportateur OTLP (c’est l’option par défaut) et l’auto-configuration. Lors du déploiement de l’application, le nom du service et l’exportateur sont configurés via des variables d’environnement.

Métriques dans SUSE Observability

Pour certaines métriques .NET, par exemple, les métriques du ramasse-miettes, SUSE Observability a défini des graphiques sur les composants associés. Pour Kubernetes, les graphiques sont disponibles sur les pods. Il est possible d’ajouter des graphiques pour plus de métriques, cela fonctionne pour les métriques provenant de l’instrumentation automatique mais aussi pour les métriques spécifiques à l’application provenant de l’instrumentation manuelle.