|
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 :
-
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. -
Définissez les variables d’environnement suivantes, ici nous le faisons via le
envdu 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" -
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.
-
Déployez votre application avec les modifications
-
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.
-
Incluez le SDK Open Telemetry comme dépendance
-
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.