|
| 1 | +--- |
| 2 | +title: Configuration de l'agent |
| 3 | +linkTitle: Configuration |
| 4 | +weight: 10 |
| 5 | +aliases: |
| 6 | + - /docs/languages/python/automatic/configuration |
| 7 | + - /docs/languages/python/automatic/agent-config |
| 8 | +default_lang_commit: 3d179dbe1270b83aafff0d3b6aa3311afd482649 |
| 9 | +cSpell:ignore: healthcheck instrumentor myapp pyproject Starlette urllib |
| 10 | +--- |
| 11 | + |
| 12 | +L'agent est hautement configurable, soit par : |
| 13 | + |
| 14 | +- Le passage de propriétés de configuration depuis l'interface de ligne de |
| 15 | + commande (CLI) |
| 16 | +- La définition de |
| 17 | + [variables d'environnement](/docs/specs/otel/configuration/sdk-environment-variables/) |
| 18 | + |
| 19 | +## Propriétés de configuration {#configuration-properties} |
| 20 | + |
| 21 | +Voici un exemple de configuration de l'agent via des propriétés de configuration |
| 22 | +: |
| 23 | + |
| 24 | +```sh |
| 25 | +opentelemetry-instrument \ |
| 26 | + --traces_exporter console,otlp \ |
| 27 | + --metrics_exporter console \ |
| 28 | + --service_name votre-nom-de-service \ |
| 29 | + --exporter_otlp_endpoint 0.0.0.0:4317 \ |
| 30 | + python myapp.py |
| 31 | +``` |
| 32 | + |
| 33 | +Voici une explication de ce que chaque configuration fait : |
| 34 | + |
| 35 | +- `traces_exporter` spécifie quel exportateur de traces utiliser. Dans ce cas, |
| 36 | + les traces sont exportées vers la `console` (stdout) et avec `otlp`. L'option |
| 37 | + `otlp` indique à `opentelemetry-instrument` d'envoyer les traces à un point de |
| 38 | + terminaison qui accepte OTLP via gRPC. Pour utiliser HTTP au lieu de gRPC, |
| 39 | + ajoutez `--exporter_otlp_protocol http/protobuf`. La liste complète des |
| 40 | + options disponibles pour `traces_exporter`, consulter la contribution Python |
| 41 | + [Instrumentation OpenTelemetry](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/opentelemetry-instrumentation). |
| 42 | +- `metrics_exporter` spécifie quel exportateur de métriques utiliser. Dans ce |
| 43 | + cas, les métriques sont exportées vers la `console` (stdout). Il est |
| 44 | + actuellement nécessaire de spécifier un exportateur de métriques. Si vous |
| 45 | + n'exportez pas de métriques, spécifiez `none` comme valeur à la place. |
| 46 | +- `service_name` définit le nom du service associé à votre télémétrie, et est |
| 47 | + envoyé à votre [solution d'observabilité](/ecosystem/vendors/). |
| 48 | +- `exporter_otlp_endpoint` définit le point de terminaison où la télémétrie est |
| 49 | + envoyée. Si omis, le point de terminaison par défaut du |
| 50 | + [Collecteur](/docs/collector/) sera utilisé, qui est `0.0.0.0:4317` pour gRPC |
| 51 | + et `0.0.0.0:4318` pour HTTP. |
| 52 | +- `exporter_otlp_headers` est requis en fonction de votre solution |
| 53 | + d'observabilité choisi. Pour plus d'informations sur les en-têtes de |
| 54 | + l'exportateur OTLP, voir |
| 55 | + [OTEL_EXPORTER_OTLP_HEADERS](/docs/languages/sdk-configuration/otlp-exporter/#otel_exporter_otlp_headers). |
| 56 | + |
| 57 | +## Variables d'environnement {#environment-variables} |
| 58 | + |
| 59 | +Dans certains cas, la configuration via des |
| 60 | +[variables d'environnement](/docs/languages/sdk-configuration/) est préférable. |
| 61 | +Tout paramètre configurable avec un argument de ligne de commande peut également |
| 62 | +être configuré avec une variable d'environnement. |
| 63 | + |
| 64 | +Vous pouvez appliquer les étapes suivantes pour déterminer le mappage de nom |
| 65 | +correct de la propriété de configuration souhaitée : |
| 66 | + |
| 67 | +- Convertissez la propriété de configuration en majuscules. |
| 68 | +- Préfixez la variable d'environnement avec `OTEL_` |
| 69 | + |
| 70 | +Par exemple, `exporter_otlp_endpoint` est converti en |
| 71 | +`OTEL_EXPORTER_OTLP_ENDPOINT`. |
| 72 | + |
| 73 | +## Configuration spécifique à Python {#python-specific-configuration} |
| 74 | + |
| 75 | +Il existe des options de configuration spécifiques à Python que vous pouvez |
| 76 | +définir en préfixant les variables d'environnement avec `OTEL_PYTHON_`. |
| 77 | + |
| 78 | +### URLs à exclure {#excluded-urls} |
| 79 | + |
| 80 | +Utilisez une liste d'expressions régulières séparées par des virgules |
| 81 | +représentant les URLs à exclure dans toutes les instrumentations avec: |
| 82 | + |
| 83 | +- `OTEL_PYTHON_EXCLUDED_URLS` |
| 84 | + |
| 85 | +Vous pouvez également exclure des URLs pour des instrumentations spécifiques en |
| 86 | +utilisant une variable `OTEL_PYTHON_<library>_EXCLUDED_URLS`, où `library` est |
| 87 | +la version majuscule de l'un des noms suivants : Django, Falcon, FastAPI, Flask, |
| 88 | +Pyramid, Requests, Starlette, Tornado, urllib, urllib3. |
| 89 | + |
| 90 | +Exemples : |
| 91 | + |
| 92 | +```sh |
| 93 | +export OTEL_PYTHON_EXCLUDED_URLS="client/.*/info,healthcheck" |
| 94 | +export OTEL_PYTHON_URLLIB3_EXCLUDED_URLS="client/.*/info" |
| 95 | +export OTEL_PYTHON_REQUESTS_EXCLUDED_URLS="healthcheck" |
| 96 | +``` |
| 97 | + |
| 98 | +### Noms d'attributs de requête {#request-attribute-names} |
| 99 | + |
| 100 | +Utilisez une liste de noms séparés par des virgules qui seront extraits de la |
| 101 | +requête et définis comme attributs sur les spans. |
| 102 | + |
| 103 | +- `OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS` |
| 104 | +- `OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS` |
| 105 | +- `OTEL_PYTHON_TORNADO_TRACED_REQUEST_ATTRS` |
| 106 | + |
| 107 | +Exemples : |
| 108 | + |
| 109 | +```sh |
| 110 | +export OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS='path_info,content_type' |
| 111 | +export OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS='query_string,uri_template' |
| 112 | +export OTEL_PYTHON_TORNADO_TRACED_REQUEST_ATTRS='uri,query' |
| 113 | +``` |
| 114 | + |
| 115 | +### Journalisation {#logging} |
| 116 | + |
| 117 | +Il existe des options de configuration utilisables pour contrôler les journaux |
| 118 | +qui sont générés. |
| 119 | + |
| 120 | +- `OTEL_PYTHON_LOG_CORRELATION` : pour activer l'injection de contexte de trace |
| 121 | + dans les journaux (true, false) |
| 122 | +- `OTEL_PYTHON_LOG_FORMAT` : pour indiquer à l'instrumentation d'utiliser un |
| 123 | + format de journalisation personnalisé |
| 124 | +- `OTEL_PYTHON_LOG_LEVEL` : pour définir un niveau de journalisation |
| 125 | + personnalisé (info, error, debug, warning) |
| 126 | +- `OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED` : pour activer |
| 127 | + l'auto-instrumentation des journaux. Attache le gestionnaire OTLP au logger |
| 128 | + racine de Python. Pour un exemple, voir |
| 129 | + [Auto-instrumentation des journaux](/docs/zero-code/python/logs-example/). |
| 130 | + |
| 131 | +Exemples : |
| 132 | + |
| 133 | +```sh |
| 134 | +export OTEL_PYTHON_LOG_CORRELATION=true |
| 135 | +export OTEL_PYTHON_LOG_FORMAT="%(msg)s [span_id=%(span_id)s]" |
| 136 | +export OTEL_PYTHON_LOG_LEVEL=debug |
| 137 | +export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true |
| 138 | +``` |
| 139 | + |
| 140 | +### Autre {#other} |
| 141 | + |
| 142 | +Il existe d'autres options de configuration qui peuvent être définies et qui |
| 143 | +n'entrent pas dans une catégorie spécifique. |
| 144 | + |
| 145 | +- `OTEL_PYTHON_DJANGO_INSTRUMENT` : mettre à `false` pour désactiver l'état |
| 146 | + activé par défaut pour l'instrumentation Django |
| 147 | +- `OTEL_PYTHON_ELASTICSEARCH_NAME_PREFIX` : modifie les préfixes par défaut pour |
| 148 | + les noms d'opération Elasticsearch de "Elasticsearch" à ce qui est utilisé |
| 149 | + dans cette option |
| 150 | +- `OTEL_PYTHON_GRPC_EXCLUDED_SERVICES` : liste de services spécifiques séparés |
| 151 | + par des virgules à exclure pour l'instrumentation gRPC |
| 152 | +- `OTEL_PYTHON_ID_GENERATOR` : pour spécifier quel générateur d'ID utiliser pour |
| 153 | + le fournisseur global de traces |
| 154 | +- `OTEL_PYTHON_INSTRUMENTATION_SANITIZE_REDIS` : pour activer l'offuscation des |
| 155 | + valeurs dans les requêtes |
| 156 | + |
| 157 | +Exemples : |
| 158 | + |
| 159 | +```sh |
| 160 | +export OTEL_PYTHON_DJANGO_INSTRUMENT=false |
| 161 | +export OTEL_PYTHON_ELASTICSEARCH_NAME_PREFIX=mon-prefixe-personnalise |
| 162 | +export OTEL_PYTHON_GRPC_EXCLUDED_SERVICES="GRPCTestServer,GRPCHealthServer" |
| 163 | +export OTEL_PYTHON_ID_GENERATOR=xray |
| 164 | +export OTEL_PYTHON_INSTRUMENTATION_SANITIZE_REDIS=true |
| 165 | +``` |
| 166 | + |
| 167 | +## Désactivation d'instrumentations spécifiques {#disabling-specific-instrumentations} |
| 168 | + |
| 169 | +Par défaut, l'agent Python détectera les paquets d'un programme Python et |
| 170 | +instrumentera tous les paquets qu'il peut. Cela facilite l'instrumentation, mais |
| 171 | +peut entraîner des données trop nombreuses ou non désirées. |
| 172 | + |
| 173 | +Vous pouvez omettre des paquets spécifiques de l'instrumentation en utilisant la |
| 174 | +variable d'environnement `OTEL_PYTHON_DISABLED_INSTRUMENTATIONS`. La variable |
| 175 | +d'environnement peut être définie sur une liste de noms de points d'entrée |
| 176 | +d'instrumentations séparés par des virgules à exclure de l'instrumentation. La |
| 177 | +plupart du temps, le nom du point d'entrée est le même que le nom du paquet et |
| 178 | +il est défini dans la table `project.entry-points.opentelemetry_instrumentor` du |
| 179 | +fichier `pyproject.toml` du paquet. |
| 180 | + |
| 181 | +Par exemple, si votre programme Python utilise les paquets `redis`, |
| 182 | +`kafka-python` et `grpc`, par défaut, l'agent utilisera les paquets |
| 183 | +`opentelemetry-instrumentation-redis`, |
| 184 | +`opentelemetry-instrumentation-kafka-python` et |
| 185 | +`opentelemetry-instrumentation-grpc` pour les instrumenter. Pour désactiver |
| 186 | +cela, vous pouvez définir |
| 187 | +`OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=redis,kafka,grpc_client`. |
0 commit comments