Bêta : vous pouvez activer APM lors de l'installation de l'Agent avec l'instrumentation APM en une seule étape. Exécutez une commande d'installation d'une ligne pour activer automatiquement APM et instrumenter tous vos services sur votre VM, conteneur ou host Linux.
Pour instrumenter votre application, vous pouvez :
Procéder à l’instrumentation automatique de votre application, à l’aide des instructions figurant sur cette page
Le processus d’injection locale de la bibliothèque, sans toucher au code de l’application, varie selon l’emplacement de votre Agent et de votre application, ainsi que sur la façon dont vous les avez installés. Choisissez le scénario qui correspond à votre environnement :
Si vous avez recours à un contrôleur d’admission Kubernetes, l’Agent s’en sert pour intercepter les requêtes adressées à l’API Kubernetes et modifier de nouveaux pods afin d’injecter la bibliothèque d’instrumentation spécifique.
L'injection de la bibliothèque s'applique aux nouveaux pods uniquement et n'a aucun impact sur les pods en cours d'exécution.
Activation du contrôleur d’admission Datadog. Remarque : depuis la version 2.35.0 du chart Helm, le contrôleur d’admission Datadog est activé par défaut dans l’Agent de cluster.
Pour Python, les applications uWSGI ne sont actuellement pas prises en charge.
Pour Ruby, l’injection de bibliothèque est disponible en bêta. L’instrumentation fonctionne uniquement pour les applications Ruby on Rails avec une version de Bundler ultérieure à la v2.3 et sans gems fournis (mode déploiement ou BUNDLE_PATH).
Applications en Java, JavaScript, Python, .NET ou Ruby déployées sous Linux avec une architecture prise en charge. Consultez le registre de conteneurs correspondant pour obtenir la liste complète des architectures prises en charge par langage.
Docker Hub applique des limites de débit à la récupération d'images. Si vous ne disposez d'aucune offre Docker Hub, Datadog vous recommande de mettre à jour la configuration de votre Agent Datadog et de votre Agent de cluster afin de récupérer les images à partir de GCR ou d'ECR. Pour connaître la marche à suivre, consultez la section Modifier votre registre de conteneurs.
Datadog publie des images de bibliothèques d’instrumentation sur gcr.io, Docker Hub et Amazon ECR :
La variable d’environnement DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY dans la configuration de l’Agent de cluster Datadog spécifie le registre utilisé par le contrôleur d’admission. La valeur par défaut est gcr.io/datadoghq.
Pour récupérer la bibliothèque de tracing à partir d’un autre registre, remplacez la valeur par docker.io/datadog, par public.ecr.aws/datadog ou par une autre URL si vous hébergez des images dans un registre de conteneurs local.
Pour les applications Kubernetes pour lesquelles vous souhaitez envoyer des traces à Datadog, configurez le contrôleur d’admission Datadog afin d’injecter automatiquement les bibliothèques d’instrumentation Java, JavaScript, Python, .NET ou Ruby. Globalement, il suffit de suivre les étapes ci-dessous (décrites en détail par la suite) :
Activez le contrôleur d’admission Datadog pour qu’il mute vos pods.
Annotez vos pods afin de sélectionner la bibliothèque d’instrumentation à injecter.
Taguez vos pods à l’aide de tags de service unifié afin de lier les données de télémétrie Datadog entre elles et d’explorer facilement vos traces, métriques et logs à l’aide de tags cohérents.
Appliquez votre nouvelle configuration.
Vous n'avez pas besoin de générer une nouvelle image d'application pour injecter la bibliothèque. Comme l'ajout de la bibliothèque d'instrumentation se fait durant l'injection de la bibliothèque, il n'est plus nécessaire de modifier votre image d'application.
Par défaut, le contrôleur d’admission Datadog mute uniquement les pods dotés d’une étiquette spécifique. Pour activer la mutation sur vos pods, ajoutez l’étiquette admission.datadoghq.com/enabled: "true" aux spécifications de vos pods.
Remarque : vous pouvez configurer le contrôleur d’admission Datadog afin qu’il active la configuration d’injection sans cette étiquette de pod. Pour ce faire, définissez clusterAgent.admissionController.mutateUnlabelled (ou DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED) sur true dans la configuration de l’Agent de cluster.
apiVersion:apps/v1kind:Deploymentmetadata:labels:# (...)spec:template:metadata:labels:admission.datadoghq.com/enabled:"true"# Activer le contrôleur d'admission pour qu'il mute les nouveaux pods faisant partie de ce déploiementspec:containers:- # (...)
Les versions disponibles de la bibliothèque sont répertoriées dans chaque registre de conteneurs, ainsi que dans les référentiels source des traceurs pour chaque langage :
Remarque : concernant l’injection de la bibliothèque .NET, si le conteneur d’application utilise une distribution Linux basée sur musl (comme Alpine), vous devez ajouter un tag avec le suffixe -musl pour annoter le pod. Par exemple, pour utiliser la version v2.29.0 de la bibliothèque, appliquez le tag de conteneur v2.29.0-musl.
Remarque : si vous avez déjà instrumenté une application avec une version de la bibliothèque, puis effectué une autre instrumentation après avoir injecté une nouvelle version de la même bibliothèque, le traceur continue de fonctionner. En effet, la version initiale de la bibliothèque est utilisée. Comme la bibliothèque a été injectée au niveau du contrôleur d’admission avant l’exécution, cette bibliothèque est prioritaire sur toutes les autres bibliothèques configurées manuellement.
Remarque : le tag latest est prise en charge, mais utilisez-le prudemment : la publication de nouvelles bibliothèques majeures peut entraîner un dysfonctionnement.
Par exemple, pour injecter une bibliothèque Java :
apiVersion:apps/v1kind:Deploymentmetadata:labels:# (...)spec:template:metadata:labels:admission.datadoghq.com/enabled:"true"# Activer le contrôleur d'admission pour qu'il mute les nouveaux pods faisant partie de ce déploiementannotations:admission.datadoghq.com/java-lib.version:"<TAG_IMAGE_CONTENEUR>"spec:containers:- # (...)
Grâce aux tags de service unifié, vous pouvez lier des données de télémétrie Datadog entre elles et explorer facilement vos traces, métriques et logs en appliquant des tags cohérents. Configurez le tagging de service unifié sur l’objet de déploiement et sur les spécifications du modèle de pod. Utilisez les étiquettes suivantes pour configurer les tags de service unifié :
Remarque : il n’est pas nécessaire de définir les variables d’environnement pour le tagging de service unifié (DD_ENV, DD_SERVICE, DD_VERSION) dans les spécifications du modèle de pod, car le contrôleur d’admission propage les valeurs de tag en tant que variables d’environnement lors de l’injection de la bibliothèque.
Exemple :
apiVersion:apps/v1kind:Deploymentmetadata:labels:tags.datadoghq.com/env:"prod"# Tag de service unifié : tag env du déploiementtags.datadoghq.com/service:"my-service"# Tag de service unifié : tag service du déploiementtags.datadoghq.com/version:"1.1"# Tag de service unifié : tag version du déploiement# (...)spec:template:metadata:labels:tags.datadoghq.com/env:"prod"# Tag de service unifié : tag env du podtags.datadoghq.com/service:"my-service"# Tag de service unifié : tag service du podtags.datadoghq.com/version:"1.1"# Tag de service unifié : tag version du podadmission.datadoghq.com/enabled:"true"# Activer le contrôleur d'admission pour qu'il mute les nouveaux pods faisant partie de ce déploiementannotations:admission.datadoghq.com/java-lib.version:"<TAG_IMAGE_CONTENEUR>"spec:containers:- # (...)
L’injection de bibliothèque repose sur l’injection d’un conteneur init dédié dans les pods. Si l’injection a fonctionné, votre pod devrait contenir un conteneur init intitulé datadog-lib-init :
Vous pouvez également exécuter kubectl describe pod <my-pod> pour afficher le conteneur init datadog-lib-init.
L’instrumentation commence également à envoyer des données de télémétrie à Datadog (par exemple, des traces pour APM).
Si le lancement du pod de l’application échoue, exécutez kubectl logs <my-pod> --all-containers pour afficher les logs afin de déterminer si vous rencontrez l’un des problèmes connus ci-dessous.
Problème : l’annotation du pod pour la version de la bibliothèque dotnet inclut un suffixe -musl, mais le conteneur d’application s’exécute sur une distribution Linux reposant sur glibc.
Solution : supprimez le suffixe -musl de la version de la bibliothèque dotnet.
Problème : le conteneur de l’application s’exécute sur une distribution Linux reposant sur musl-libc (par exemple, Alpine), mais l’annotation du pod ne contient pas le suffixe -musl.
Solution : ajoutez le suffixe -musl à la version de la bibliothèque dotnet.
Pour les versions < 1.20.3 de Python, les logs d’injection Python sont enregistrés dans stderr. Passez à la version 1.20.3 ou à une version ultérieure pour supprimer par défaut les logs. Pour activer les logs, définissez la variable d’environnement DD_TRACE_DEBUG sur 1.
Problème : la bibliothèque ddtrace est déjà installée sur le système. Par conséquent, la logique d’injection annule le processus d’injection de bibliothèque afin d’éviter tout dysfonctionnement de l’application.
Solution : si vous souhaitez injecter des bibliothèques, supprimez l’installation de ddtrace. Sinon, plutôt que d’injecter des bibliothèques, utilisez la bibliothèque installée (voir la documentation).
L'injection de bibliothèque de tracing sur un host est disponible en version bêta.
Lorsque l’Agent et vos services s’exécutent sur un host réel ou virtuel, Datadog injecte la bibliothèque de tracing à partir d’une bibliothèque préchargée qui remplace les appels par execve. Tous les processus lancés récemment sont interceptés et la bibliothèque d’instrumentation indiquée est injectée dans les services.
Remarque : l’injection sous arm64 n’est pas prise en charge.
Prérequis : vous devez disposer d’un host exécutant Linux.
Si l’Agent Datadog n’est pas encore installé sur le host, ou si vous souhaitez mettre à niveau votre installation de l’Agent Datadog, utilisez le script d’installation dédié pour installer à la fois les bibliothèques d’injection et l’Agent Datadog :
Par défaut, l’exécution du script entraîne la prise en charge de Java, Node.js, Python, Ruby et .NET. Si vous souhaitez spécifier les langages à prendre en charge, définissez également la variable d’environnement DD_APM_INSTRUMENTATION_LIBRARIES (valeurs autorisées : java, js, python, ruby et dotnet). Pour spécifier plusieurs langages, séparez les valeurs par des virgules :
Quittez et ouvrez un nouveau shell pour utiliser la bibliothèque préchargée.
Une fois l’injection du host activée, vérifiez que les lignes suivantes se trouvent à la fin du fichier de configuration /etc/datadog-agent/datadog.yaml :
# COMMENCER LA CONFIGURATION LD PRELOADapm_config:receiver_socket:/opt/datadog/apm/inject/run/apm.socketuse_dogstatsd:truedogstatsd_socket:/opt/datadog/apm/inject/run/dsd.socketremote_configuration:enabled:true# TERMINER LA CONFIGURATION LD PRELOAD
Si ces propriétés sont définies sur d’autres valeurs, remplacez leur valeur afin qu’elles correspondent à celles indiquées ci-dessus. Si vous ne voyez pas ces propriétés, ajoutez-les. Redémarrez ensuite l’Agent Datadog.
Les variables d’environnement suivantes permettent de configurer l’injection de bibliothèque. Pour les passer, utilisez export via la ligne de commande (export DD_CONFIG_SOURCES=BASIC), la configuration du shell ou la commande de lancement.
Chacun des champs du fichier de configuration correspond à une variable d’environnement. Les variables d’environnement sont lues à partir de l’environnement du processus en cours de lancement et affectent uniquement ce processus.
Propriété du fichier de configuration
Variable d’environnement
log_level
DD_APM_INSTRUMENTATION_DEBUG
output_paths
DD_APM_INSTRUMENTATION_OUTPUT_PATHS
env
DD_ENV
config_sources
DD_CONFIG_SOURCES
La variable d’environnement DD_APM_INSTRUMENTATION_DEBUG peut uniquement être définie sur les valeurs true et false (valeur par défaut : false). Si vous la définissez sur true, log_level a pour valeur debug. Si vous la définissez sur false (ou ne la définissez pas), la valeur de log_level spécifiée dans le fichier de configuration est utilisée. Le niveau de log debug est le seul niveau pouvant être défini avec la variable d’environnement.
La variable d’environnement DD_INSTRUMENT_SERVICE_WITH_APM détermine si l’injection doit ou non être activée. Par défaut, sa valeur est TRUE. Définissez-la sur FALSE pour désactiver le processus d’injection de bibliothèque.
Par défaut, les paramètres suivants sont activés au sein d’un processus instrumenté :
Le tracing
L’injection de logs, tant que l’application applique une journalisation structurée (généralement, au format JSON). Pour que les traces s’affichent dans des logs non structurés, vous devez modifier la configuration des logs de votre application, afin d’inclure des placeholders pour l’ID de trace et l’ID de span. Consultez la section Associer les logs aux traces pour en savoir plus.
Les métriques de santé
Les métriques runtime
Vous pouvez modifier ces paramètres pour l’ensemble des processus instrumentés. Pour ce faire, définissez la propriété config_sources dans le fichier de configuration. Pour modifier les paramètres pour un seul processus, définissez la variable d’environnement DD_CONFIG_SOURCES du processus. Voici les paramètres autorisés pour les sources de configuration :
Nom de la source de configuration
Utilité
BASIC
Applique la configuration spécifiée plus haut. Si aucune source de configuration n’est spécifiée, celle-ci est utilisée par défaut.
LOCAL:CHEMIN
Applique la configuration au chemin spécifié dans le système de fichiers local. Le format du fichier de configuration est décrit plus bas. Exemple : LOCAL:/opt/config/my_process_config.yaml.
BLOB:URL
Applique la configuration au chemin spécifié dans un stockage d’objet compatible avec S3. L’URL de connexion et le format du fichier de configuration sont décrits plus bas. Exemple : BLOB:s3://config_bucket/my_process_config.yaml?region=us-east-1.
Les valeurs BASIC, LOCAL et BLOB doivent être écrites en majuscules.
Les valeurs des sources de configuration peuvent être séparées par des points-virgules afin de spécifier plusieurs emplacements possibles. La première configuration qui ne renvoie pas d’erreur est utilisée. Les configurations ne sont pas combinées à partir de plusieurs sources de configuration. L’exemple suivant vérifie si un compartiment S3 comporte une configuration, passe ensuite au système de fichiers local, puis utilise la configuration par défaut intégrée :
Voici la liste des solutions de stockage de blobs prises en charge :
Amazon S3 : définissez l’URL à l’aide du préfixe s3://. Si l’authentification est effectuée via la CLI AWS, ces identifiants sont utilisés.
Consultez la documentation sur le SDK AWS (en anglais) pour en savoir plus sur la configuration d’identifiants à l’aide de variables d’environnement.
GCP GCS : définissez l’URL avec le préfixe gs://. Les identifiants par défaut de l’application sont utilisés. L’authentification s’effectue via la commande gcloud auth application-default login. Consultez la documentation relative à l’authentification de Google Cloud pour en savoir plus sur la configuration d’identifiants à l’aide de variables d’environnement.
Stockage Blob Azure : définissez l’URL avec le préfixe azblob://, et pointez vers un nom de conteneur de stockage. Les identifiants figurant dans AZURE_STORAGE_ACCOUNT (à savoir, le nom du compartiment), ainsi que dans AZURE_STORAGE_KEY et/ou AZURE_STORAGE_SAS_TOKEN, sont utilisés. Pour en savoir plus sur la configuration des paramètres BLOB et LOCAL, consultez la rubrique Spécifier la source de configuration.
Les options de configuration des bibliothèques de traceur qui ne sont pas mentionnées dans la configuration de l’injection peuvent tout de même être utilisées normalement dans les propriétés ou les variables d’environnement.
Lancez vos services, en indiquant la configuration de bibliothèque préchargée dans la commande de lancement. Si le paramètre DD_CONFIG_SOURCES n’est pas spécifié, la valeur définie pour config_sources dans le fichier de configuration /etc/datadog-agent/inject/host_config.yaml est utilisée. Si ce paramètre n’est lui-même pas défini, DD_CONFIG_SOURCES prend pour valeur BASIC :
Entraînez votre application afin qu’elle puisse commencer à générer des données de télémétrie, qui sont représentées sous forme de traces dans APM.
L'injection de bibliothèque de tracing sur des hosts ou des conteneurs est disponible en version bêta.
Lorsque votre Agent s’exécute sur un host et que vos services s’exécutent dans des conteneurs, Datadog injecte la bibliothèque de tracing en interceptant la création de conteneur et en configurant le conteneur Docker.
Tous les processus lancés récemment sont interceptés et la bibliothèque d’instrumentation indiquée est injectée dans les services.
Remarque : l’injection sous arm64 n’est pas prise en charge.
Si l’Agent Datadog n’est pas encore installé sur le host, ou si vous souhaitez mettre à niveau votre installation de l’Agent Datadog, utilisez le script d’installation dédié pour installer à la fois les bibliothèques d’injection et l’Agent Datadog :
Par défaut, l’exécution du script entraîne la prise en charge de Java, Node.js, Python, Ruby et .NET. Si vous souhaitez spécifier les langages à prendre en charge, définissez également la variable d’environnement DD_APM_INSTRUMENTATION_LIBRARIES (valeurs autorisées : java, js, python, ruby et dotnet). Pour spécifier plusieurs langages, séparez les valeurs par des virgules :
Une fois l’injection du host activée, vérifiez que les lignes suivantes se trouvent à la fin du fichier de configuration /etc/datadog-agent/datadog.yaml :
# COMMENCER LA CONFIGURATION LD PRELOADapm_config:receiver_socket:/opt/datadog/apm/inject/run/apm.socketuse_dogstatsd:truedogstatsd_socket:/opt/datadog/apm/inject/run/dsd.socketremote_configuration:enabled:true# TERMINER LA CONFIGURATION LD PRELOAD
Si ces propriétés sont définies sur d’autres valeurs, remplacez leur valeur afin qu’elles correspondent à celles indiquées ci-dessus. Si vous ne voyez pas ces propriétés, ajoutez-les. Redémarrez ensuite l’Agent Datadog.
Si la configuration par défaut ne vous convient pas, vous devez modifier /etc/datadog-agent/inject/docker_config.yaml et ajoutez la configuration YAML suivante pour l’injection :
Activez ou désactivez l’injection de bibliothèque et spécifiez une liste d’emplacements triée et séparée par des points-virgules où la configuration est stockée. La première valeur renvoyée sans erreur est utilisée. La configuration n’est pas unifiée à partir de toutes les sources de configuration. Voici la liste des valeurs autorisées :
BLOB:<URL> : chargez la configuration à partir d’un stockage de blobs (compatible avec S3) situé à l’adresse <URL>.
LOCAL:<CHEMIN> : chargez la configuration à partir d’un fichier du système de fichiers local situé à l’emplacement <CHEMIN>.
BASIC : utilisez les valeurs par défaut. Si config_sources n’est pas spécifié, cette configuration est utilisée.
Les valeurs BASIC, LOCAL et BLOB doivent être écrites en majuscules.
Les valeurs des sources de configuration peuvent être séparées par des points-virgules afin de spécifier plusieurs emplacements possibles. La première configuration qui ne renvoie pas d’erreur est utilisée. La configuration n’est pas unifiée à partir de plusieurs sources de configuration. L’exemple suivant vérifie si un compartiment S3 comporte une configuration, passe ensuite au système de fichiers local, puis utilise la configuration par défaut intégrée :
Définissez ce paramètre sur debug pour consigner en détail ce qui se passe ou sur info, warn ou error pour écrire moins d’informations. Valeur par défaut : info
output_paths
La liste des emplacements dans lesquels les logs sont rédigés. Valeur par défaut : stderr
Facultatif : env
Spécifie le tag DD_ENV pour les conteneurs exécutés dans Docker. Exemples : dev, prod, staging. Valeur par défaut : aucune.
Définissez service_language sur l’une des valeurs suivantes :
java
node
dotnet
python
ruby
Dans ce fichier de configuration, version a toujours pour valeur 1. Il s’agit de la version du schéma de configuration utilisé, et non de la version du contenu.
Les options de configuration des bibliothèques de traceur qui ne sont pas mentionnées dans la configuration de l’injection peuvent tout de même être utilisées normalement dans les propriétés ou les variables d’environnement.
Voici la liste des solutions de stockage de blobs prises en charge :
Amazon S3 : définissez l’URL à l’aide du préfixe s3://. Si l’authentification est effectuée via la CLI AWS, ces identifiants sont utilisés.
Consultez la documentation sur le SDK AWS (en anglais) pour en savoir plus sur la configuration d’identifiants à l’aide de variables d’environnement.
GCP GCS : définissez l’URL avec le préfixe gs://. Les identifiants par défaut de l’application sont utilisés. L’authentification s’effectue via la commande gcloud auth application-default login. Consultez la documentation relative à l’authentification de Google Cloud pour en savoir plus sur la configuration d’identifiants à l’aide de variables d’environnement.
Stockage Blob Azure : définissez l’URL avec le préfixe azblob://, et pointez vers un nom de conteneur de stockage. Les identifiants figurant dans AZURE_STORAGE_ACCOUNT (à savoir, le nom du compartiment), ainsi que dans AZURE_STORAGE_KEY et/ou AZURE_STORAGE_SAS_TOKEN, sont utilisés. Pour en savoir plus sur la configuration des paramètres BLOB et LOCAL, consultez la rubrique Spécifier la source de configuration.
Si les variables d’environnement DD_ENV, DD_SERVICE ou DD_VERSION sont spécifiées dans une image de conteneur de service, ces valeurs sont utilisées pour taguer les données de télémétrie du conteneur.
Si ces variables ne sont pas spécifiées, DD_ENV utilise, le cas échéant, la valeur env définie dans le fichier de configuration /etc/datadog-agent/inject/docker_config.yaml. DD_SERVICE est récupéré à partir du nom de l’image Docker. Pour une image my-service:1.0, le tag DD_SERVICE de my-service est appliqué.
Lancez votre Agent et vos services conteneurisés comme vous le feriez en temps normal.
Entraînez votre application afin qu’elle puisse commencer à générer des données de télémétrie, qui sont représentées sous forme de traces dans APM.
L'injection de bibliothèque de tracing dans des conteneurs est disponible en version bêta.
Lorsque votre Agent et vos services s’exécutent dans des conteneurs Docker distincts sur le même host, Datadog injecte la bibliothèque de tracing en interceptant la création du conteneur et en configurant le conteneur Docker.
Tous les processus lancés récemment sont interceptés et la bibliothèque d’instrumentation spécifiée est injectée dans les services.
Utilisez le script shell install_script_agent7.sh pour installer automatiquement la prise en charge de l’injection Docker. Vous devez au préalable avoir installé Docker sur la machine du host.
Cela permet d’installer les bibliothèques de tous les langages pris en charge. Pour installer seulement les bibliothèques de certains langages, définissez la variable d’environnement DD_APM_INSTRUMENTATION_LIBRARIES. Les valeurs java, js, python, ruby et dotnet sont autorisées :
Activez ou désactivez l’injection de bibliothèque et spécifiez une liste d’emplacements triée et séparée par des points-virgules où la configuration est stockée. La première valeur renvoyée sans erreur est utilisée. La configuration n’est pas unifiée à partir de toutes les sources de configuration. Voici la liste des valeurs autorisées :
BLOB:<URL> : chargez la configuration à partir d’un stockage de blobs (compatible avec S3) situé à l’adresse <URL>.
LOCAL:<CHEMIN> : chargez la configuration à partir d’un fichier du système de fichiers local situé à l’emplacement <CHEMIN>.
BASIC : utilisez les valeurs par défaut. Si config_sources n’est pas spécifié, cette configuration est utilisée.
Les valeurs BASIC, LOCAL et BLOB doivent être écrites en majuscules.
Les valeurs des sources de configuration peuvent être séparées par des points-virgules afin de spécifier plusieurs emplacements possibles. La première configuration qui ne renvoie pas d’erreur est utilisée. La configuration n’est pas unifiée à partir de plusieurs sources de configuration. L’exemple suivant vérifie si un compartiment S3 comporte une configuration, passe ensuite au système de fichiers local, puis utilise la configuration par défaut intégrée :
Définissez service_language sur l’une des valeurs suivantes :
java
node
dotnet
python
ruby
Dans ce fichier de configuration, version a toujours pour valeur 1. Il s’agit de la version du schéma de configuration utilisé, et non de la version du contenu.
Les options de configuration des bibliothèques de traceur qui ne sont pas mentionnées dans la configuration de l’injection peuvent tout de même être utilisées normalement dans les propriétés ou les variables d’environnement.
Voici la liste des solutions de stockage de blobs prises en charge :
Amazon S3 : définissez l’URL à l’aide du préfixe s3://. Si l’authentification est effectuée via la CLI AWS, ces identifiants sont utilisés.
Consultez la documentation sur le SDK AWS (en anglais) pour en savoir plus sur la configuration d’identifiants à l’aide de variables d’environnement.
GCP GCS : définissez l’URL avec le préfixe gs://. Les identifiants par défaut de l’application sont utilisés. L’authentification s’effectue via la commande gcloud auth application-default login. Consultez la documentation relative à l’authentification de Google Cloud pour en savoir plus sur la configuration d’identifiants à l’aide de variables d’environnement.
Stockage Blob Azure : définissez l’URL avec le préfixe azblob://, et pointez vers un nom de conteneur de stockage. Les identifiants figurant dans AZURE_STORAGE_ACCOUNT (à savoir, le nom du compartiment), ainsi que dans AZURE_STORAGE_KEY et/ou AZURE_STORAGE_SAS_TOKEN, sont utilisés. Pour en savoir plus sur la configuration des paramètres BLOB et LOCAL, consultez la rubrique Spécifier la source de configuration.
Dans le fichier Docker Compose qui lance vos conteneurs, utilisez les paramètres suivants pour l’Agent., en définissant en toute sécurité votre propre clé d’API Datadog pour ${DD_API_KEY}
Si les variables d’environnement DD_ENV, DD_SERVICE ou DD_VERSION sont spécifiées dans une image de conteneur de service, ces valeurs sont utilisées pour taguer les données de télémétrie du conteneur.
Si ces variables ne sont pas spécifiées, DD_ENV utilise, le cas échéant, la valeur env définie dans le fichier de configuration /etc/datadog-agent/inject/docker_config.yaml. DD_SERVICE est récupéré à partir du nom de l’image Docker. Pour une image my-service:1.0, le tag DD_SERVICE de my-service est appliqué.
Les fonctionnalités et les options de configuration prises en charge pour la bibliothèque de tracing sont les mêmes pour l’injection de bibliothèque, ainsi que pour les autres méthodes d’installation. Elles peuvent être définies à l’aide de variables d’environnement. Consultez la section relative à la configuration de la bibliothèque Datadog correspondant à votre langage pour en savoir plus.
Pour Kubernetes, définissez la variable d’environnement DD_APPSEC_ENABLED ou DD_PROFILING_ENABLED sur true dans le fichier de déploiement du pod de l’application sous-jacent.
Pour hosts and containers, définissez la variable d’environnement de conteneur DD_APPSEC_ENABLED ou DD_PROFILING_ENABLED sur true. Vous pouvez également ajouter une section additional_environment_variables dans la configuration d’injection, comme dans l’exemple YAML suivant :
Seules les clés de configuration commençant par DD_ peuvent être définies à la section additional_environment_variables de la source de configuration d’injection.