Présentation

Les emplacements privés Synthetic proposent un ensemble d’options configurables pour répondre aux besoins de votre environnement. Toutes les options du worker d’emplacement privé sont disponibles en exécutant la commande help :

docker run --rm datadog/synthetics-private-location-worker --help
synthetics-pl-worker.exe --help

Consultez l’exemple dans le référentiel Helm de Datadog.

Personnaliser votre emplacement privé

Consultez la liste des paramètres disponibles ci-dessous. Ces options de configuration pour les emplacements privés peuvent être transmises comme paramètres dans votre fichier de configuration JSON ou comme arguments dans la commande de lancement, par exemple :

docker run -d --restart always -v $PWD/<MY_WORKER_CONFIG_FILE_NAME>.json:/etc/datadog/synthetics-check-runner.json datadog/synthetics-private-location-worker:latest --logFormat=json
synthetics-pl-worker.exe --config=<PathToYourConfiguration> --logFormat=json

Les arguments définis dans la commande de lancement ont la priorité sur le fichier de configuration. Cependant, ces options ne sont pas enregistrées et ne s’appliquent donc qu’à un lancement donné.

Principales options de configuration

Configuration du site Datadog

site
Type : chaîne
Valeur par défaut : datadoghq.com
Site Datadog à partir duquel l’emplacement privé récupère la configuration de test et vers lequel il envoie les résultats du test. Votre site est .

Configuration du DNS

Les paramètres suivants peuvent être utilisés pour personnaliser la résolution DNS sur vos tests API :

dnsUseHost
Type : Boolean
Valeur par défaut : true
Utiliser en priorité la configuration DNS locale du host (par exemple, la configuration de votre fichier etc/resolv.conf), puis les serveurs DNS spécifiés dans le paramètre dnsServer.
dnsServer
Type : tableau de chaînes
Valeur par défaut : ["8.8.8.8","1.1.1.1"]
Adresses IP des serveurs DNS utilisées dans l’ordre donné (par exemple, --dnsServer="8.8.4.4" --dnsServer="8.8.8.8").

Pour les tests Browser, la résolution DNS est effectuée directement par le navigateur. Ce dernier accède généralement aux serveurs DNS à partir du host. Vous avez également la possibilité de configurer la résolution DNS au niveau des conteneurs (par exemple, à l’aide du flag --dns pour Docker ou de dnsConfig.nameservers pour Kubernetes).

Configuration d’un proxy

Les paramètres suivants peuvent être utilisés pour configurer un proxy afin de se connecter à Datadog :

proxyDatadog
Type : chaîne
Valeur par défaut : none
URL de proxy utilisée par l’emplacement privé pour envoyer des requêtes à Datadog (par exemple, --proxyDatadog=http://<VOTRE_UTILISATEUR>:<VOTRE_MOT_DE_PASSE>@<VOTRE_IP>:<VOTRE_PORT>).
proxyIgnoreSSLErrors
Type : booléen
Valeur par défaut : false
Ignore les erreurs SSL lorsque l’emplacement privé utilise un proxy pour envoyer des requêtes à Datadog.
proxyEnableConnectTunnel
Type : Boolean
Valeur par défaut : none
Activer le tunneling HTTP CONNECT pour les proxies HTTP. Lorsque cette option n’est pas définie, le tunneling HTTP CONNECT est uniquement utilisé pour les proxies HTTPS.

Remarque : Les proxies HTTP de transfert comme Squid peuvent nécessiter la requête HTTP CONNECT pour établir la connexion TCP initiale entre l’emplacement privé et Datadog. Le paramètre proxyEnableConnectTunnel doit donc être défini sur true. Cependant, les proxies inverses comme HAProxy qui dirigent une requête HTTP CONNECT vers Datadog peuvent ne pas fonctionner avec cette option activée.

Remarque : le paramètre proxy est obsolète et doit être remplacé par proxyDatadog.

Les paramètres suivants peuvent être utilisés pour configurer un proxy par défaut à utiliser pour les tests Synthetic Monitoring :

proxyTestRequests
Type : String
Valeur par défaut : none
URL du proxy utilisée par l’emplacement privé pour envoyer les requêtes de test à l’endpoint. Prend en charge les fichiers HTTP(S), SOCKS et PAC avec la syntaxe suivante : pac+http://..., pac+https://..., pac+file://... ou pac+data:....
proxyTestRequestsBypassList
Type : Array of Strings
Valeur par défaut : none
Hosts pour lesquels le proxy défini avec proxyTestRequests n’est pas utilisé, par exemple : --proxyTestRequestsBypassList="example.org" --proxyTestRequestsBypassList="*.com".

Configuration avancée

concurrency
Type : nombre
Valeur par défaut : 10
Nombre maximum de tests exécutés simultanément.
maxNumberMessagesToFetch
Type : Number
Valeur par défaut : 10
Nombre maximum de tests récupérés depuis Datadog.
maxAPIDownloadBodySize
Type : Number
Valeur par défaut : 52428800
Taille maximale du corps HTTP pour un téléchargement, en octets. La valeur par défaut est de 50 Mo (50 * 1024 * 1024).
maxAPIBodySizeIfProcessed
Type : Number
Valeur par défaut : 5242880
Taille maximale du corps HTTP pour une assertion, en octets. La valeur par défaut est de 5 Mo (5 * 1024 * 1024).
apiRequestMaxTimeout
Type : Number
Valeur par défaut : 60000
Durée maximale d’exécution d’un test API, en millisecondes. La valeur par défaut est d’une minute (60 * 1000).

Remarque : Les conteneurs d’emplacement privé envoient les logs vers stdout et stderr sans les enregistrer dans le conteneur.

Toutes les options de configuration

--accessKey
Type : String
Valeur par défaut : none
Clé d’accès pour l’authentification auprès de l’API Datadog.
--secretAccessKey
Type : String
Valeur par défaut : none
Clé d’accès secrète pour l’authentification auprès de l’API Datadog.
--datadogApiKey
Type : String
Valeur par défaut : none
Clé d’API Datadog pour envoyer les artefacts des tests Browser (comme les captures d’écran).
--privateKey
Type : Array
Valeur par défaut : none
Clé privée utilisée pour déchiffrer les configurations de test.
--publicKey
Type : Array
Valeur par défaut : none
Clé publique utilisée par Datadog pour chiffrer les résultats de test. Composée de --publicKey.pem.
--site
Type : String
Valeur par défaut : datadoghq.com
Site Datadog depuis lequel l’emplacement privé récupère la configuration de test et envoie les résultats de test. Votre site est .
--concurrency
Type : Number
Valeur par défaut : 10
Nombre maximum de tests exécutés en parallèle.
--maxNumberMessagesToFetch
Type : Number
Valeur par défaut : 10
Nombre maximum de tests récupérés depuis Datadog.
--proxyDatadog
Type : String
Valeur par défaut : none
URL du proxy utilisée par l’emplacement privé pour envoyer des requêtes à Datadog (par exemple, --proxyDatadog=http://<YOUR_USER>:<YOUR_PWD>@<YOUR_IP>:<YOUR_PORT>).
--dumpConfig
Type : Boolean
Valeur par défaut : none
Afficher les paramètres de configuration du worker sans les secrets.
--enableStatusProbes
Type : Boolean
Activer les sondes de disponibilité et d’activité de l’emplacement privé. Cela active deux endpoints : http://127.0.0.1:8080/liveness et http://127.0.0.1:8080/readiness.
--statusProbesPort
Type : Number
Valeur par défaut : 8080
Remplacer le port des sondes de statut de l’emplacement privé.
--config
Type : String
Valeur par défaut : /etc/datadog/synthetics-check-runner.json
Windows : C:\ProgramData\Datadog-Synthetics\worker-config.json
Chemin vers le fichier de configuration JSON.
--proxyTestRequests
Type : String
Valeur par défaut : none
URL du proxy utilisée par l’emplacement privé pour envoyer les requêtes de test à l’endpoint. Les fichiers PAC sont pris en charge avec la syntaxe suivante : pac+https://... ou pac+http://....
proxyTestRequestsBypassList
Type : Array of Strings
Valeur par défaut : none
Hosts pour lesquels le proxy défini avec proxyTestRequests n’est pas utilisé, par exemple : --proxyTestRequestsBypassList="example.org" --proxyTestRequestsBypassList="*.com".
--proxyIgnoreSSLErrors
Type : Boolean
Valeur par défaut : false
Ignorer les erreurs SSL lorsque l’emplacement privé utilise un proxy pour envoyer des requêtes à Datadog.
--dnsUseHost
Type : Boolean
Valeur par défaut : true
Utiliser en priorité la configuration DNS locale du host (par exemple, la configuration de votre fichier etc/resolv.conf), puis les serveurs DNS spécifiés dans le paramètre dnsServer.
--dnsServer
Type : Array of Strings
Valeur par défaut : ["8.8.8.8","1.1.1.1"]
Adresses IP des serveurs DNS à utiliser dans l’ordre indiqué (par exemple, --dnsServer="8.8.4.4" --dnsServer="8.8.8.8").
--variableOverride
Type : String
Remplacer les variables utilisées dans les tests s’exécutant sur l’emplacement privé. Format : VARIABLE=value. Toutes les variables importées de cette façon sont masquées.
--environmentVariableOverride
Type : String
Remplacer les variables utilisées dans les tests s’exécutant sur l’emplacement privé par des variables d’environnement. Les variables d’environnement doivent être importées dans l’environnement conteneurisé. Avec Docker, par exemple : docker run --env VARIABLE gcr.io/datadoghq/synthetics-private-location-worker --environmentVariableOverride VARIABLE. Toutes les variables importées de cette façon sont masquées.
--retryAPIErrors
Type : Boolean
Valeur par défaut : false
Réessayer en cas d’erreur dans les tests API
--allowedIPRanges
Type : Array of Strings
Valeur par défaut : none
Autoriser l’accès à des adresses IP et/ou des plages CIDR spécifiques parmi les plages d’adresses IP bloquées via --enableDefaultBlockedIpRanges ou blockedIPRanges (par exemple, "allowedIPRanges.4": "10.0.0.0/8"). Remarque : allowedIPRanges a la priorité sur blockedIPRanges.
--blockedIPRanges
Type : Array of Strings
Valeur par défaut : none
Bloquer l’accès à des adresses IP et/ou des plages CIDR spécifiques, en plus ou non des plages d’adresses IP bloquées lorsque le paramètre --enableDefaultBlockedIpRanges est défini sur true (par exemple, --blockedIPRanges.4="127.0.0.0/8" --blockedIPRanges.6="::1/128".)
--enableDefaultBlockedIpRanges
Type : Boolean
Valeur par défaut : false
Empêcher les utilisateurs de créer des tests Synthetic sur des endpoints utilisant des plages d’adresses IP réservées (registre d’adresses à usage spécial IANA IPv4 et IPv6), à l’exception de celles explicitement définies avec le paramètre --allowedIPRanges.
--allowedDomainNames
Type : Array
Valeur par défaut : none
Autoriser l’accès aux noms de domaine dans les tests. A la priorité sur –blockedDomainNames, par exemple : --allowedDomainNames="*.example.com".
--blockedDomainNames
Type : Array
Valeur par défaut : none
Refuser l’accès aux noms de domaine dans les tests, par exemple : --blockedDomainNames="example.org" --blockedDomainNames="*.com".
--enableIPv6
Type : Boolean
Valeur par défaut : false
Utiliser IPv6 pour effectuer des tests. Remarque : IPv6 dans Docker n’est pris en charge qu’avec un host Linux.
--version
Type : Boolean
Valeur par défaut : none
Show version number of the worker.
--logFormat
Type : String
Valeur par défaut : pretty
Formater la sortie des logs entre "compact", "pretty", "pretty-compact" et "json". Définir le format des logs sur json permet d’analyser automatiquement ces logs lors de leur collecte par Datadog.
--verbosity
Type : Number
Valeur par défaut : 3
Niveau de verbosité de 1 (erreurs uniquement) à 4 (logs de débogage et plus). Pour définir le niveau de verbosité depuis la ligne de commande, utilisez les arguments -v, -vv, -vvv et -vvvv.

Niveau de verbositéArgument CLIOption de configuration JSON
DEBUG-vvvv"verbosity": 4
INFO (par défaut)-vvv"verbosity": 3
WARNING-vv"verbosity": 2
ERROR-v"verbosity": 1
--help
Type : Boolean
Valeur par défaut : none
Afficher la sortie de la commande help.

Variables d’environnement

Les options de commande peuvent également être définies à l’aide de variables d’environnement, par exemple DATADOG_API_KEY="...", DATADOG_WORKER_CONCURRENCY="15", DATADOG_TESTS_DNS_USE_HOST="true". Pour les options acceptant plusieurs arguments, utilisez la notation de tableau de chaînes JSON (DATADOG_TESTS_DNS_SERVER='["8.8.8.8", "1.1.1.1"]')

Variables d’environnement prises en charge :

DATADOG_ACCESS_KEY, DATADOG_API_KEY, DATADOG_PRIVATE_KEY, DATADOG_PUBLIC_KEY_PEM, DATADOG_SECRET_ACCESS_KEY, DATADOG_SITE, DATADOG_WORKER_CONCURRENCY, DATADOG_WORKER_LOG_FORMAT, DATADOG_WORKER_LOG_VERBOSITY, DATADOG_WORKER_MAX_NUMBER_MESSAGES_TO_FETCH, DATADOG_WORKER_PROXY, DATADOG_TESTS_DNS_SERVER, DATADOG_TESTS_DNS_USE_HOST, DATADOG_TESTS_PROXY, DATADOG_TESTS_PROXY_ENABLE_CONNECT_TUNNEL, DATADOG_TESTS_PROXY_IGNORE_SSL_ERRORS, DATADOG_ALLOWED_IP_RANGES_4, DATADOG_ALLOWED_IP_RANGES_6, DATADOG_BLOCKED_IP_RANGES_4, DATADOG_BLOCKED_IP_RANGES_6, DATADOG_ENABLE_DEFAULT_WINDOWS_FIREWALL_RULES, DATADOG_ALLOWED_DOMAIN_NAMES, DATADOG_BLOCKED_DOMAIN_NAMES, DATADOG_WORKER_ENABLE_STATUS_PROBES, DATADOG_WORKER_STATUS_PROBES_PORT

Pour aller plus loin