Configuration et paramètres

Méthodes de configuration

Vous pouvez appliquer ou modifier les paramètres de configuration de la manière suivante, les variables d’environnement ayant la priorité sur le fichier App.config ou Web.config :

  1. Variables d’environnement

    Les variables d’environnement sont le moyen principal de configurer les paramètres.

  2. Fichier App.config ou Web.config

    Pour une application s’exécutant sur .NET Framework, vous pouvez utiliser un fichier de configuration web (web.config) ou un fichier de configuration d’application (app.config) pour configurer les paramètres OTEL_*.

    ⚠️ Seuls les paramètres commençant par OTEL_ peuvent être définis en utilisant App.config ou Web.config. Cependant, les paramètres suivants ne sont pas supportés :

    • OTEL_DOTNET_AUTO_HOME
    • OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES
    • OTEL_DOTNET_AUTO_FAIL_FAST_ENABLED
    • OTEL_DOTNET_AUTO_[TRACES|METRICS|LOGS]_INSTRUMENTATIONS_ENABLED
    • OTEL_DOTNET_AUTO_[TRACES|METRICS|LOGS]_{INSTRUMENTATION_ID}_INSTRUMENTATION_ENABLED
    • OTEL_DOTNET_AUTO_LOG_DIRECTORY
    • OTEL_LOG_LEVEL
    • OTEL_DOTNET_AUTO_NETFX_REDIRECT_ENABLED

    Exemple avec le paramètre OTEL_SERVICE_NAME :

    <configuration>
    <appSettings>
        <add key="OTEL_SERVICE_NAME" value="my-service-name" />
    </appSettings>
    </configuration>
    
  3. Détection automatique du nom de service

    Si aucun nom de service n’est explicitement configuré, il sera généré pour vous. Cela peut être utile dans certaines circonstances.

    • Si l’application est hébergée sur IIS dans .NET Framework, ce sera SiteName\VirtualPath ex : MySite\MyApp
    • Si ce n’est pas le cas, le nom de l' Assembly d’entrée de l’application sera utilisé.

Par défaut, nous recommandons d’utiliser les variables d’environnement pour la configuration. Cependant, si un paramètre donné le supporte, alors :

  • utilisez Web.config pour configurer une application ASP.NET (.NET Framework),
  • utilisez App.config pour configurer un Service Windows (.NET Framework).

Paramètres globaux

Variable d’environnementDescriptionValeur par défautStatut
OTEL_DOTNET_AUTO_HOMEEmplacement d’installation.Expérimental
OTEL_DOTNET_AUTO_EXCLUDE_PROCESSESNoms des fichiers exécutables que le profileur ne peut pas instrumenter. Supporte plusieurs valeurs séparées par des virgules, par exemple : ReservedProcess.exe,powershell.exe. Si non défini, le profileur s’attache à tous les processus par défaut. [1][2]Expérimental
OTEL_DOTNET_AUTO_FAIL_FAST_ENABLEDActive la possibilité de faire échouer le processus quand l’instrumentation automatique ne peut pas être exécutée. Il est conçu à des fins de débogage. Il ne devrait pas être utilisé en environnement de production. [1]falseExpérimental
OTEL_DOTNET_AUTO_LOGGERDestination des journaux de diagnostic AutoInstrumentation. (valeurs supportées : none,file,console)fileExpérimental
OTEL_LOG_LEVELNiveau de log du SDK. (valeurs supportées : none,error,warn,info,debug)infoStable

[1] Si OTEL_DOTNET_AUTO_FAIL_FAST_ENABLED est défini à true alors les processus exclus de l’instrumentation par OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES échoueront au lieu de continuer silencieusement.

[2] Notez que les applications lancées via dotnet MyApp.dll ont le nom de processus dotnet ou dotnet.exe.

Ressources

Une ressource est la représentation immuable de l’entité produisant la télémétrie. Voir Conventions sémantiques des ressources pour plus de détails.

Attributs de ressource

Variable d’environnementDescriptionValeur par défautStatut
OTEL_RESOURCE_ATTRIBUTESPaires clé-valeur à utiliser comme attributs de ressource. Voir SDK de ressource pour plus de détails.Voir Conventions sémantiques des ressources pour les détails.Stable
OTEL_SERVICE_NAMEDéfinit la valeur de l’attribut de ressource service.name. Si service.name est fourni dans OTEL_RESOURCE_ATTRIBUTES, la valeur de OTEL_SERVICE_NAME a la priorité.Voir Détection automatique du nom de service sous la section Méthode de configuration.Stable

Détecteurs de ressource

Variable d’environnementDescriptionValeur par défautStatut
OTEL_DOTNET_AUTO_RESOURCE_DETECTOR_ENABLEDActive tous les détecteurs de ressource.trueExpérimental
OTEL_DOTNET_AUTO_{0}_RESOURCE_DETECTOR_ENABLEDModèle de configuration pour activer un détecteur de ressource spécifique, où {0} est l’ID en majuscules du détecteur de ressource que vous voulez activer. Remplace OTEL_DOTNET_AUTO_RESOURCE_DETECTOR_ENABLED.trueExpérimental

Les détecteurs de ressource suivants sont inclus et activés par défaut :

IDDescriptionDocumentationStatut
AZUREAPPSERVICEDétecteur Azure App ServiceDocumentation du détecteur de ressource AzureExpérimental
CONTAINERDétecteur de conteneurDocumentation du détecteur de ressource Container Non supporté sur .NET FrameworkExpérimental
HOSTDétecteur d’hôteDocumentation du détecteur de ressource HostExpérimental
OPERATINGSYSTEMDétecteur de système d’exploitationDocumentation du détecteur de ressource Operating SystemExpérimental
PROCESSDétecteur de processusDocumentation du détecteur de ressource ProcessExpérimental
PROCESSRUNTIMEDétecteur de runtime de processusDocumentation du détecteur de ressource Process RuntimeExpérimental

Propagateurs

Les propagateurs permettent aux applications de partager le contexte. Voir la spécification OpenTelemetry pour plus de détails.

Variable d’environnementDescriptionValeur par défaut
OTEL_PROPAGATORSListe séparée par des virgules de propagateurs. Options supportées : tracecontext, baggage, b3multi, b3. Voir la spécification OpenTelemetry pour plus de détails.tracecontext,baggage

Échantillonneurs

Les échantillonneurs vous permettent de contrôler le bruit potentiel et la surcharge introduits par l’instrumentation OpenTelemetry en sélectionnant quelles traces vous voulez collecter et exporter. Voir la spécification OpenTelemetry pour plus de détails.

Variable d’environnementDescriptionValeur par défautStatut
OTEL_TRACES_SAMPLERÉchantillonneur à utiliser pour les traces [1]parentbased_always_onStable
OTEL_TRACES_SAMPLER_ARGValeur chaîne à utiliser comme argument d’échantillonneur [2]Stable

[1] : Les valeurs supportées sont :

  • always_on,
  • always_off,
  • traceidratio,
  • parentbased_always_on,
  • parentbased_always_off,
  • parentbased_traceidratio.

[2] : Pour les échantillonneurs traceidratio et parentbased_traceidratio : Probabilité d’échantillonnage, un nombre dans la plage [0..1], ex. “0.25”. La valeur par défaut est 1.0.

Exportateurs

Les exportateurs transmettent la télémétrie.

Variable d’environnementDescriptionValeur par défautStatut
OTEL_TRACES_EXPORTERListe séparée par des virgules d’exportateurs. Options supportées : otlp, zipkin, console, none.otlpStable
OTEL_METRICS_EXPORTERListe séparée par des virgules d’exportateurs. Options supportées : otlp, prometheus, console, none.otlpStable
OTEL_LOGS_EXPORTERListe séparée par des virgules d’exportateurs. Options supportées : otlp, console, none.otlpStable

Exportateur de traces

Variable d’environnementDescriptionValeur par défautStatut
OTEL_BSP_SCHEDULE_DELAYIntervalle de délai (en millisecondes) entre deux exports consécutifs.5000Stable
OTEL_BSP_EXPORT_TIMEOUTTemps maximum autorisé (en millisecondes) pour exporter les données30000Stable
OTEL_BSP_MAX_QUEUE_SIZETaille maximale de la file d’attente.2048Stable
OTEL_BSP_MAX_EXPORT_BATCH_SIZETaille maximale du lot. Doit être inférieure ou égale à OTEL_BSP_MAX_QUEUE_SIZE.512Stable

Exportateur de métriques

Variable d’environnementDescriptionValeur par défautStatut
OTEL_METRIC_EXPORT_INTERVALL’intervalle de temps (en millisecondes) entre le début de deux tentatives d’export.60000 pour l’exportateur OTLP, 10000 pour l’exportateur consoleStable
OTEL_METRIC_EXPORT_TIMEOUTTemps maximum autorisé (en millisecondes) pour exporter les données.30000 pour l’exportateur OTLP, aucun pour l’exportateur consoleStable

Exportateur de logs

Variable d’environnementDescriptionValeur par défautStatut
OTEL_DOTNET_AUTO_LOGS_INCLUDE_FORMATTED_MESSAGESi le message de log formaté doit être défini ou non.falseExpérimental

OTLP

Statut : Stable

Pour activer l’exportateur OTLP, définissez la variable d’environnement OTEL_TRACES_EXPORTER/OTEL_METRICS_EXPORTER/OTEL_LOGS_EXPORTER à otlp.

Pour personnaliser l’exportateur OTLP en utilisant des variables d’environnement, voir la documentation de l’exportateur OTLP. Les variables d’environnement importantes incluent :

Variable d’environnementDescriptionValeur par défautStatut
OTEL_EXPORTER_OTLP_ENDPOINTPoint de terminaison cible pour l’exportateur OTLP. Voir la spécification OpenTelemetry pour plus de détails.http/protobuf : http://localhost:4318, grpc : http://localhost:4317Stable
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTÉquivalent à OTEL_EXPORTER_OTLP_ENDPOINT, mais s’applique seulement aux traces.http/protobuf : http://localhost:4318/v1/traces, grpc : http://localhost:4317Stable
OTEL_EXPORTER_OTLP_METRICS_ENDPOINTÉquivalent à OTEL_EXPORTER_OTLP_ENDPOINT, mais s’applique seulement aux métriques.http/protobuf : http://localhost:4318/v1/metrics, grpc : http://localhost:4317Stable
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTÉquivalent à OTEL_EXPORTER_OTLP_ENDPOINT, mais s’applique seulement aux logs.http/protobuf : http://localhost:4318/v1/logs, grpc : http://localhost:4317Stable
OTEL_EXPORTER_OTLP_PROTOCOLProtocole de transport de l’exportateur OTLP. Valeurs supportées : grpc, http/protobuf. [1]http/protobufStable
OTEL_EXPORTER_OTLP_TRACES_PROTOCOLÉquivalent à OTEL_EXPORTER_OTLP_PROTOCOL, mais s’applique seulement aux traces.http/protobufStable
OTEL_EXPORTER_OTLP_METRICS_PROTOCOLÉquivalent à OTEL_EXPORTER_OTLP_PROTOCOL, mais s’applique seulement aux métriques.http/protobufStable
OTEL_EXPORTER_OTLP_LOGS_PROTOCOLÉquivalent à OTEL_EXPORTER_OTLP_PROTOCOL, mais s’applique seulement aux logs.http/protobufStable
OTEL_EXPORTER_OTLP_TIMEOUTLe temps d’attente maximum (en millisecondes) pour que le backend traite chaque lot.10000 (10s)Stable
OTEL_EXPORTER_OTLP_TRACES_TIMEOUTÉquivalent à OTEL_EXPORTER_OTLP_TIMEOUT, mais s’applique seulement aux traces.10000 (10s)Stable
OTEL_EXPORTER_OTLP_METRICS_TIMEOUTÉquivalent à OTEL_EXPORTER_OTLP_TIMEOUT, mais s’applique seulement aux métriques.10000 (10s)Stable
OTEL_EXPORTER_OTLP_LOGS_TIMEOUTÉquivalent à OTEL_EXPORTER_OTLP_TIMEOUT, mais s’applique seulement aux logs.10000 (10s)Stable
OTEL_EXPORTER_OTLP_HEADERSListe séparée par des virgules d’en-têtes HTTP supplémentaires envoyés avec chaque export, par exemple : Authorization=secret,X-Key=Value.Stable
OTEL_EXPORTER_OTLP_TRACES_HEADERSÉquivalent à OTEL_EXPORTER_OTLP_HEADERS, mais s’applique seulement aux traces.Stable
OTEL_EXPORTER_OTLP_METRICS_HEADERSÉquivalent à OTEL_EXPORTER_OTLP_HEADERS, mais s’applique seulement aux métriques.Stable
OTEL_EXPORTER_OTLP_LOGS_HEADERSÉquivalent à OTEL_EXPORTER_OTLP_HEADERS, mais s’applique seulement aux logs.Stable
OTEL_ATTRIBUTE_VALUE_LENGTH_LIMITTaille maximale autorisée pour la valeur d’attribut.aucuneStable
OTEL_ATTRIBUTE_COUNT_LIMITNombre maximum autorisé d’attributs de span.128Stable
OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITTaille maximale autorisée pour la valeur d’attribut. Non applicable pour les métriques..aucuneStable
OTEL_SPAN_ATTRIBUTE_COUNT_LIMITNombre maximum autorisé d’attributs de span. Non applicable pour les métriques..128Stable
OTEL_SPAN_EVENT_COUNT_LIMITNombre maximum autorisé d’événements de span.128Stable
OTEL_SPAN_LINK_COUNT_LIMITNombre maximum autorisé de liens de span.128Stable
OTEL_EVENT_ATTRIBUTE_COUNT_LIMITNombre maximum autorisé d’attributs par événement de span.128Stable
OTEL_LINK_ATTRIBUTE_COUNT_LIMITNombre maximum autorisé d’attributs par lien de span.128Stable
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCELa temporalité d’agrégation à utiliser sur la base du type d’instrument. [2]cumulativeStable

[1] : Considérations sur le OTEL_EXPORTER_OTLP_PROTOCOL :

  • L’Instrumentation Automatique .NET OpenTelemetry utilise par défaut http/protobuf, ce qui diffère de la valeur par défaut du SDK .NET OpenTelemetry qui est grpc.
  • Sur .NET 6 et supérieur, l’application doit référencer Grpc.Net.Client pour utiliser le protocole d’exportateur OTLP grpc. Par exemple, en ajoutant <PackageReference Include="Grpc.Net.Client" Version="2.65.0" /> au fichier .csproj.
  • Sur .NET Framework, le protocole d’exportateur OTLP grpc n’est pas supporté.

[2] : Les valeurs reconnues (insensibles à la casse) pour OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE sont :

  • Cumulative : Choisir la temporalité d’agrégation cumulative pour tous les types d’instruments.
  • Delta : Choisir la temporalité d’agrégation Delta pour les types d’instruments Counter, Asynchronous Counter et Histogram, choisir l’agrégation Cumulative pour les types d’instruments UpDownCounter et Asynchronous UpDownCounter.
  • LowMemory : Cette configuration utilise la temporalité d’agrégation Delta pour Synchronous Counter et Histogram et utilise la temporalité d’agrégation Cumulative pour les types d’instruments Synchronous UpDownCounter, Asynchronous Counter, et Asynchronous UpDownCounter.
    • ⚠️ Cette valeur connue de la spécification n’est pas supportée.

Prometheus

Statut : Expérimental

Pour activer l’exportateur Prometheus, définissez la variable d’environnement OTEL_METRICS_EXPORTER à prometheus.

L’exportateur expose le point de terminaison HTTP des métriques sur http://localhost:9464/metrics et il met en cache les réponses pendant 300 millisecondes.

Voir la documentation Prometheus Exporter HttpListener. pour en savoir plus.

Zipkin

Statut : Stable

Pour activer l’exportateur Zipkin, définissez la variable d’environnement OTEL_TRACES_EXPORTER à zipkin.

Pour personnaliser l’exportateur Zipkin en utilisant des variables d’environnement, voir la documentation de l’exportateur Zipkin. Les variables d’environnement importantes incluent :

Variable d’environnementDescriptionValeur par défautStatut
OTEL_EXPORTER_ZIPKIN_ENDPOINTURL Zipkinhttp://localhost:9411/api/v2/spansStable

Paramètres supplémentaires

Variable d’environnementDescriptionValeur par défautStatut
OTEL_DOTNET_AUTO_TRACES_ENABLEDActive les traces.trueExpérimental
OTEL_DOTNET_AUTO_OPENTRACING_ENABLEDActive le traceur OpenTracing.falseExpérimental
OTEL_DOTNET_AUTO_LOGS_ENABLEDActive les logs.trueExpérimental
OTEL_DOTNET_AUTO_METRICS_ENABLEDActive les métriques.trueExpérimental
OTEL_DOTNET_AUTO_NETFX_REDIRECT_ENABLEDActive la redirection automatique des assemblies utilisés par l’instrumentation automatique sur .NET Framework.trueExpérimental
OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCESListe séparée par des virgules de noms System.Diagnostics.ActivitySource supplémentaires à ajouter au traceur au démarrage. Utilisez-le pour capturer des spans instrumentés manuellement.Expérimental
OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_LEGACY_SOURCESListe séparée par des virgules de noms de sources legacy supplémentaires à ajouter au traceur au démarrage. Utilisez-le pour capturer des objets System.Diagnostics.Activity créés sans utiliser l’API System.Diagnostics.ActivitySource.Expérimental
OTEL_DOTNET_AUTO_FLUSH_ON_UNHANDLEDEXCEPTIONContrôle si les données de télémétrie sont vidées quand un événement AppDomain.UnhandledException est déclenché. Définissez à true quand vous soupçonnez que vous rencontrez un problème avec des données de télémétrie manquantes et que vous rencontrez également des exceptions non gérées.falseExpérimental
OTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCESListe séparée par des virgules de noms System.Diagnostics.Metrics.Meter supplémentaires à ajouter au compteur au démarrage. Utilisez-le pour capturer des spans instrumentés manuellement.Expérimental
OTEL_DOTNET_AUTO_PLUGINSListe séparée par des deux-points de types de plugins d’instrumentation SDK OTel, spécifiés avec le nom qualifié d’assembly. Note : Cette liste doit être séparée par des deux-points car les noms de types peuvent inclure des virgules. Voir plus d’infos sur comment écrire des plugins à plugins.md.Expérimental

RuleEngine

RuleEngine est une fonctionnalité qui valide les assemblies API, SDK, Instrumentation, et Exporter OpenTelemetry pour des scénarios non supportés, s’assurant que l’instrumentation automatique OpenTelemetry est plus stable en se retirant au lieu de planter. Elle fonctionne sur .NET 6 et supérieur.

Activez RuleEngine seulement pendant la première exécution de l’application, ou quand le déploiement change ou que la bibliothèque d’Instrumentation Automatique est mise à niveau. Une fois validé, il n’y a pas besoin de revalider les règles quand l’application redémarre.

Variable d’environnementDescriptionValeur par défautStatut
OTEL_DOTNET_AUTO_RULE_ENGINE_ENABLEDActive RuleEngine.trueExpérimental

Profileur .NET CLR

Le CLR utilise les variables d’environnement suivantes pour configurer le profileur. Voir .NET Runtime Profiler Loading pour plus d’informations.

Variable d’environnement .NET FrameworkVariable d’environnement .NETDescriptionValeur requiseStatut
COR_ENABLE_PROFILINGCORECLR_ENABLE_PROFILINGActive le profileur.1Expérimental
COR_PROFILERCORECLR_PROFILERCLSID du profileur.{918728DD-259F-4A6A-AC2B-B85E1B658318}Expérimental
COR_PROFILER_PATHCORECLR_PROFILER_PATHChemin vers le profileur.$INSTALL_DIR/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so pour Linux glibc, $INSTALL_DIR/linux-musl-x64/OpenTelemetry.AutoInstrumentation.Native.so pour Linux musl, $INSTALL_DIR/osx-x64/OpenTelemetry.AutoInstrumentation.Native.dylib pour macOSExpérimental
COR_PROFILER_PATH_32CORECLR_PROFILER_PATH_32Chemin vers le profileur 32-bit. Les chemins spécifiques à l’architecture ont la priorité sur les chemins génériques.$INSTALL_DIR/win-x86/OpenTelemetry.AutoInstrumentation.Native.dll pour WindowsExpérimental
COR_PROFILER_PATH_64CORECLR_PROFILER_PATH_64Chemin vers le profileur 64-bit. Les chemins spécifiques à l’architecture ont la priorité sur les chemins génériques.$INSTALL_DIR/win-x64/OpenTelemetry.AutoInstrumentation.Native.dll pour WindowsExpérimental

Définir l’Instrumentation Automatique .NET OpenTelemetry comme Profileur .NET CLR est requis pour .NET Framework.

Sur .NET, le Profileur .NET CLR est utilisé seulement pour l’instrumentation bytecode. Si avoir seulement l’instrumentation source est acceptable, vous pouvez désactiver ou supprimer les variables d’environnement suivantes :

COR_ENABLE_PROFILING
COR_PROFILER
COR_PROFILER_PATH_32
COR_PROFILER_PATH_64
CORECLR_ENABLE_PROFILING
CORECLR_PROFILER
CORECLR_PROFILER_PATH
CORECLR_PROFILER_PATH_32
CORECLR_PROFILER_PATH_64

Runtime .NET

Sur .NET, il est requis de définir la variable d’environnement DOTNET_STARTUP_HOOKS.

Les variables d’environnement DOTNET_ADDITIONAL_DEPS et DOTNET_SHARED_STORE sont utilisées pour atténuer les conflits de version d’assembly dans .NET.

Variable d’environnementValeur requiseStatut
DOTNET_STARTUP_HOOKS$INSTALL_DIR/net/OpenTelemetry.AutoInstrumentation.StartupHook.dllExpérimental
DOTNET_ADDITIONAL_DEPS$INSTALL_DIR/AdditionalDepsExpérimental
DOTNET_SHARED_STORE$INSTALL_DIR/storeExpérimental

Logs internes

Les chemins de répertoire par défaut pour les journaux internes sont :

  • Windows : %ProgramData%\OpenTelemetry .NET AutoInstrumentation\logs
  • Linux : /var/log/opentelemetry/dotnet
  • macOS : /var/log/opentelemetry/dotnet

Si les répertoires de journaux par défaut ne peuvent pas être créés, l’instrumentation utilise le chemin du dossier temporaire de l’utilisateur actuel à la place.

Variable d’environnementDescriptionValeur par défautStatut
OTEL_DOTNET_AUTO_LOG_DIRECTORYRépertoire des journaux du Traceur .NET.Voir la note précédente sur les chemins par défautExpérimental
OTEL_LOG_LEVELNiveau de log du SDK. (valeurs supportées : none,error,warn,info,debug)infoStable
OTEL_DOTNET_AUTO_LOGS_INCLUDE_FORMATTED_MESSAGESi l’état du log doit être formaté.falseExpérimental

Dernière modification August 27, 2025: [fr] Translation of Zero Code .NET docs (#7359) (75b13ed5)