Les tests HTTP vous permettent d'envoyer des requêtes HTTP aux endpoints d’API de vos applications pour vérifier qu’elles répondent aux requêtes et respectent les conditions que vous avez définies, comme le temps de réponse global, le code de statut, ainsi que les contenus de l’en-tête ou du corps du message.
Les tests HTTP peuvent être exécutés depuis des emplacements gérés et des emplacements privés, selon que vous souhaitez surveiller vos endpoints à l’extérieur ou au sein de votre réseau. Les tests HTTP peuvent être exécutés selon un programme, à la demande ou directement dans vos pipelines de CI/CD.
Après avoir sélectionné le type de test que vous souhaitez créer (HTTP
, SSL
, TCP
ou DNS
), vous pouvez définir votre requête de test.
GET
, POST
, PATCH
, PUT
, HEAD
, DELETE
et OPTIONS
. Les URL http
et https
sont prises en charge.user-agent
).<COOKIE_NOM1>=<COOKIE_VALEUR1>; <COOKIE_NOM2>=<COOKIE_VALEUR2>
.text/plain
, application/json
, text/xml
, text/html
ou None
) que vous voulez ajouter à votre requête HTTP.http://<VOTRE_UTILISATEUR>:<VOTRE_MOT_DE_PASSE>@<VOTRE_IP>:<VOTRE_PORT>
).env
et tout autre tag de votre choix à votre test HTTP. Vous pourrez ensuite utiliser ces tags pour filtrer rapidement vos tests Synthetic depuis la page d’accueil de la surveillance Synthetic.Cliquez sur Test URL pour essayer la configuration de requête. Un aperçu de la réponse s’affiche sur le côté droit de votre écran.
Les tests HTTP peuvent être exécutés :
Les assertions définissent un résultat de test escompté. Lorsque vous cliquez sur Test URL
, les assertions de base pour response time
, status code
et header
content-type
sont ajoutées en fonction de la réponse obtenue. Vous devez définir au moins une assertion à surveiller pour votre test.
Type | Opérateur | Type de valeur |
---|---|---|
body | contains , does not contain , is , is not ,matches , does not match ,jsonpath | Chaîne Regex Chaîne, Regex |
header | contains , does not contain , is , is not ,matches , does not match | Chaîne Regex |
response time | is less than | Nombre entier (ms) |
status code | is , is not | Nombre entier |
Remarque : les tests HTTP peuvent décompresser les corps de réponse contenant les en-têtes content-encoding
suivants : br
, deflate
, gzip
et identity
.
Vous pouvez créer jusqu’à 10 assertions par test API en cliquant sur New assertion ou directement sur l’aperçu de la réponse :
Définissez des conditions d’alerte afin de spécifier les circonstances dans lesquelles vous souhaitez qu’un test échoue et déclenche une alerte.
Lorsque vous définissez les conditions d’alerte sur An alert is triggered if any assertion fails for X minutes from any n of N locations
, une alerte se déclenche uniquement si les deux conditions suivantes se vérifient :
Votre test peut déclencher de nouvelles tentatives en cas d’échec. Par défaut, les tentatives sont effectuées 300 ms après le premier échec. Cet intervalle peut être configuré via l'API.
La disponibilité d’un emplacement est calculée pour chaque évaluation (quels que soient les résultats du dernier test avant l’évaluation). La disponibilité totale est calculée selon les conditions d’alerte configurées. Les notifications envoyées se basent sur la disponibilité totale.
Votre test envoie une notification selon les conditions d’alerte définies au préalable. Référez-vous à cette section pour définir les conditions et le message à envoyer à vos équipes.
Tout comme pour les monitors, sélectionnez les utilisateurs et/ou services qui doivent recevoir des notifications. Pour ce faire, ajoutez @notification
au message, ou cherchez des membres d’équipe ou des intégrations connectées à l’aide de la liste déroulante.
Saisissez un message de notification pour le test. Ce champ accepte le format de mise en forme Markdown standard ainsi que les variables conditionnelles suivantes :
Variable conditionnelle | Description |
---|---|
{{#is_alert}} | S’affiche lorsque le test envoie une alerte. |
{{^is_alert}} | S’affiche lorsque le test n’envoie pas d’alerte. |
{{#is_recovery}} | S’affiche lorsque le test est rétabli depuis un état d’alerte. |
{{^is_recovery}} | S’affiche lorsque le test n’est pas rétabli depuis un état d’alerte. |
Indiquez une fréquence de renvoi du message de notification en cas d’échec d’un test. Si vous ne souhaitez pas renvoyer de notification en cas d’échec, définissez l’option sur Never renotify if the monitor has not been resolved
.
Les notifications par e-mail incluent le message défini dans cette section ainsi qu’un résumé des assertions qui ont échoué. Exemples de notification :
Cliquez sur Save pour enregistrer votre test. Datadog se charge alors de son exécution.
Vous pouvez créer des variables locales en définissant leurs valeurs sur l’un des builtins disponibles ci-dessous :
Pattern | Description |
---|---|
{{ numeric(n) }} | Génère une chaîne numérique de n chiffres. |
{{ alphabetic(n) }} | Génère une chaîne alphabétique de n lettres. |
{{ alphanumeric(n) }} | Génère une chaîne alphanumérique de n caractères. |
{{ date(n, format) }} | Génère une date dans l’un des formats acceptés. Sa valeur correspond à la date d’initiation du test + n jours. |
{{ timestamp(n, unit) }} | Génère un timestamp dans l’une des unités acceptées. Sa valeur correspond au timestamp d’initiation du test +/- n unités choisies. |
Les variables globales définies sur la page Settings
et les variables définies localement peuvent être utilisées dans l’URL, les options avancées et les assertions de vos tests HTTP.
Pour afficher la liste de vos variables, saisissez {{
dans le champ souhaité :
Un test est considéré comme FAILED
s’il ne répond pas à une ou plusieurs de ses assertions ou si la requête a échoué prématurément. Dans certains cas, le test peut en effet échouer sans que les assertions n’aient pu être comparées à l’endpoint. Voici la liste des erreurs concernées :
Erreur | Description |
---|---|
CONNRESET | La connexion a été interrompue de façon soudaine par le serveur à distance. Causes possibles : erreur ou défaillance du serveur Web lors de la réponse ou perte de connectivité du serveur Web. |
DNS | L’entrée DNS est introuvable pour l’URL du test. Causes possibles : URL du test mal configurée, configuration des entrées DNS incorrecte, etc. |
INVALID_REQUEST | La configuration du test n’est pas valide (par exemple, en raison d’une faute de frappe dans l’URL). |
SSL | La connexion SSL n’a pas pu être effectuée. Consultez la page relative aux erreurs pour en savoir plus. |
TIMEOUT | La requête n’a pas pu être effectuée dans un délai raisonnable. Deux types d’erreur TIMEOUT peuvent se produire.- Une erreur TIMEOUT: The request couldn’t be completed in a reasonable time. indique que la requête a expiré lors de la connexion au socket TCP.- Une erreur TIMEOUT: Retrieving the response couldn’t be completed in a reasonable time. indique que la requête a expiré lors de son traitement global (qui comprend la connexion au socket TCP, le transfert de données et les assertions). |
Documentation, liens et articles supplémentaires utiles: