La configuration avancée de dépannage des erreurs d'API vous permet de créer des règles pour collecter plus d'informations sur les erreurs d'API (en-têtes, contenu du corps de la requête/réponse), ainsi que de collecter les erreurs d'API avec un code d'état, pas seulement dans la gamme 4XX-5XX, afin que vous puissiez résoudre les erreurs plus rapidement.
Utilisez le dépannage avancé des erreurs d'API pour :
- Configurer la collecte des erreurs d'API pour les requêtes réseau où le code d'état HTTP est inférieur à 400.
- Voir les types suivants de détails supplémentaires sur les erreurs d'API dans le flux d'événements de la révision de session :
- Les en-têtes HTTP de la requête et de la réponse
- Le corps (les données envoyées par la requête ou reçues dans la réponse)
- Les éléments du corps (éléments spécifiques du corps de la requête/réponse)
- Les paramètres de requête du point de terminaison de la requête (de l'URL des informations que vous demandez).
- Tirer parti des éléments du corps de réponse non chiffrés dans le dashboard des erreurs & Alerts et le Contexte d'analyse pour surveiller, identifier et quantifier les erreurs en fonction du contenu du corps de réponse.
Une fois configuré, en savoir plus sur la façon de tirer parti des détails de dépannage des erreurs d'API.
Protection des données personnelles
En fonction des en-têtes personnalisés que vous ajoutez, les détails de dépannage peuvent contenir des données personnelles. Afin de protéger les données contre un déchiffrement facile par quiconque, vous pouvez et devez chiffrer les en-têtes personnalisés contenant des données personnelles.
Les en-têtes et les éléments du corps ont l'option d'être collectés non chiffrés pour faciliter et accélérer l'exposition des détails de dépannage. Cette option ne doit être utilisée que si vous êtes certain que le point de données collecté que vous ajoutez ne contient pas de données personnelles.
Le corps entier de la requête et/ou de la réponse ainsi que les paramètres de requête ne peuvent être collectés que de manière chiffrée.
Nous ne vous permettons pas de collecter des en-têtes spécifiques contenant des données personnelles : cookies, en-têtes d'autorisation et d'autorisation de proxy, car ceux-ci contiennent des données sensibles qui ne peuvent pas être traitées.
Visitez notre article sur la confidentialité et les données personnelles pour plus d'informations.
Chiffrement des détails de dépannage
Prérequis pour la configuration du chiffrement : Une paire de clés publique/privée doit être configurée à l'avance, avant que vous puissiez ajouter et exposer les détails de dépannage de l'API pour les en-têtes personnalisés chiffrés.
Vous pouvez trouver des instructions pour la configuration de la clé de chiffrement ici.
Limitation
Sur le web, notre mécanisme de chiffrement repose sur 2 API de navigateur qui sont largement prises en charge par la plupart des navigateurs les plus populaires (API CryptoKey et API de cryptographie Web). Cependant, certains navigateurs et anciennes versions de navigateurs ne les prennent pas en charge. Dans ce cas, la balise ne procédera pas à la collecte de données chiffrées.
Aperçu de l'onglet de dépannage des erreurs d'API
1. Accédez à la console en cliquant sur votre icône de profil, suivie de 'Console'.
2. Cliquez sur l'onglet 'Résolution avancée des erreurs'.
Aperçu des règles de collecte d'erreurs d'API
Pour chaque règle listée, vous pouvez voir les informations suivantes (de gauche à droite) :
- Le nom de la règle
- Le(s) code(s) de statut de la règle
- L'URL de la requête
- La date à laquelle la règle a été créée et mise à jour pour la dernière fois (et le nom de l'auteur)
Pour vous aider à décider si vous devez créer une nouvelle règle ou modifier une règle existante, utilisez les actions ci-dessous :
- Recherche de règle : recherchez des règles existantes en fonction d'un terme contenu dans le nom ou le code de statut du domaine.
- Trier les règles : cliquez sur les en-têtes de colonne pour trier les règles par nom, code de statut, domaine ou date (créée ou mise à jour pour la dernière fois).
-
Voir le détail de la règle : cliquez sur l'icône “œil” à droite de la règle pour ouvrir le panneau latéral et voir les conditions de collecte et les points de données collectés.
La "règle par défaut"
Cette règle représente le comportement par défaut de collecte de toutes les requêtes réseau avec un code de statut dans la gamme 4XX-500, avec juste les points de données par défaut : URL de la requête, Code de statut et Méthode. Elle ne peut pas être modifiée ou supprimée.
Règles prédéfinies
Ces règles prédéfinies sont déjà incluses dans votre projet et permettent la collecte automatique des erreurs d'API et des détails des erreurs d'API :
- GraphQL : Cette règle est conçue pour collecter les erreurs de base de graphQL qui ne sont pas collectées par défaut, puisque le code de statut est généralement 200. Cette règle peut être modifiée et supprimée si nécessaire.
- En-têtes sur tous les points de terminaison : Cette règle est utilisée pour configurer la collecte des en-têtes pour toutes les erreurs API 4XX-5XX. La liste des en-têtes peut être modifiée, mais la règle ne peut pas être supprimée.
Création d'une nouvelle règle
Étape 1 : Nommer et ajouter des conditions de règle
1. Cliquez sur le bouton ‘+ Nouvelle règle’.
2. Nom de la règle : donnez un nom à votre règle dans le champ de nom de la règle. Ce nom doit être unique.
3. URL de la requête : La règle correspondra à toutes les requêtes où l'URL contient la valeur que vous avez ajoutée dans le champ. Notez qu'il n'est pas possible d'utiliser exactement la même collection de conditions qu'une autre règle existante.
Exemple (si vous souhaitez faire correspondre l'URL de la requête) : https://subdomain.domain.com/path/sub-path?query=param
La valeur suivante y correspondra :
- URL complète : https://subdomain.domain.com/path/sub-path?query=param
- Domaine & protocole HTTP : https://subdomain.domain.com
- Domaine uniquement : domain.com
- Chemin uniquement : /path/sub-path
- Domaine + chemin : subdomain.domain.com/path/sub-path
4. Code de statut : vous pouvez soit sélectionner le groupe 4XX-5XX pour correspondre aux codes de statut HTTP couvrant les erreurs, soit définir un code de statut spécifique.
5. Contenu du corps de la réponse : spécifiez ce qui doit être écrit dans le corps de la réponse dans le champ Contenu du corps pour que cette règle soit collectée. Vous pouvez entrer jusqu'à 64 caractères. Ce champ est facultatif pour tous les codes de statut sauf si le code de statut “200” est spécifié, il est alors nécessaire de spécifier un contenu de corps de réponse, idéalement identifiant une erreur. Cela est fait pour éviter de collecter toutes les requêtes réseau comme des erreurs d'API.
Logique et limitations du contenu du corps de la réponse
C'est une logique de filtrage et la logique est 'contient' donc un test exact n'est pas une exigence. Le contenu du corps de la réponse n'est pas sensible à la casse (“non valide” correspondra à une valeur comme “INVALID_CODE”).
Exemple :
Vous souhaitez collecter la requête lorsque la réponse contient une erreur.
Exemple de corps de réponse :
{ "errors": [ { "message": "Impossible de requêter le champ 'âge' sur le type 'Client'.", "code": "1003" } ], "data": { "customer": { "id": "123", "name": "John Doe" } } }
Valeur du contenu du corps à utiliser : errors
Valeur du contenu du corps à utiliser (avec des caractères spéciaux) : errors\"\:\[\{
Limite sur le contenu du corps de la réponse :
- Sur les applications mobiles Android, la correspondance du contenu du corps fonctionnera si le corps de la réponse a une taille maximale de 1 Mo.
- Sur les applications mobiles iOS, il n'y a pas de limite sur la taille du contenu du corps de la réponse.
- Sur le web, il n'y a pas de limite sur la taille du contenu du corps de la réponse.
6. Cliquez sur ‘Suivant’ pour continuer la création de la règle.
Étape 2 : Ajout de points de données collectés
Après avoir saisi le nom, les conditions et l'URL de la requête dans votre règle (et le contenu du corps si le code de statut est 200), vous pouvez ajouter des points de données collectés. Par défaut, Contentsquare collecte l'URL de la requête, le code de statut et la méthode.
En-têtes
1. Cliquez sur “+ Ajouter”. Notez que vous pouvez ajouter plusieurs en-têtes à la fois en cliquant sur le bouton “+”. Cela est utile s'ils partagent tous les mêmes conditions (requête ou réponse, cryptée ou non cryptée).
2. Entrez le nom de l'en-tête.
3. Cryptage :
- Si le chiffrement est activé, l'état par défaut sera « chiffré ». Désactivez-le pour collecter l'en-tête non chiffré.
- Si le chiffrement n'est pas activé, l'en-tête ne peut être collecté que non chiffré. Assurez-vous de ne pas collecter un en-tête contenant des informations personnelles.
4. Par défaut, « Demande » est sélectionné. Vous pouvez le mettre à jour pour collecter une Réponse à la place.
5. Cliquez sur « Appliquer ».
Éléments du corps
Obtenez plus de flexibilité dans les points de données que vous souhaitez exploiter, en collectant des éléments spécifiques du corps de la demande ou de la réponse au format JSON, en utilisant un langage de requête basé sur JSON Path.
Remarque : Vous ne pouvez pas modifier un élément du corps, mais vous pouvez le supprimer et le recréer.
La longueur du chemin JSON est limitée à 60 caractères.
Éléments du corps de la réponse pour analyse
Utilisés pour le regroupement et le filtrage des erreurs (dans le Contexte d'analyse) et pour la création de widgets de dashboard et d'alerte, ce sont des éléments du corps de la réponse qui seront collectés non chiffrés.
Pour définir un élément du corps de la réponse à collecter pour analyse :
1. Cliquez sur « + Ajouter ».
2. Entrez le chemin JSON de l'élément que vous souhaitez collecter. Vous pouvez également ajouter plusieurs entrées à la fois en cliquant sur le bouton « + ».
3. Cliquez sur « Appliquer ».
Éléments du corps de la réponse pour dépanner
Visibles au niveau de l'événement individuel dans Session Replay, ce sont des éléments du corps de la demande/réponse que vous souhaitez collecter pour dépanner.
Pour définir un élément du corps de la réponse à collecter pour dépanner :
1. Cliquez sur « + Ajouter ».
2. Entrez le chemin JSON de l'élément que vous souhaitez collecter. Vous pouvez également ajouter plusieurs entrées à la fois en cliquant sur le bouton « + ».
3. Chiffrement :
- Si le chiffrement est activé, l'état par défaut sera « chiffré ». Désactivez-le pour collecter l'élément du corps non chiffré.
- Pour la réponse : l'élément du corps pour dépanner ne peut être collecté que chiffré, car les éléments du corps de réponse non chiffrés sont ajoutés pour analyse (dans la section ci-dessus).
- Si le chiffrement n'est pas activé, seul l'élément du corps de la demande peut être collecté non chiffré. Assurez-vous de ne pas collecter un élément du corps contenant des informations personnelles.
4. Par défaut, « Réponse » est sélectionné. Vous pouvez soit collecter l'élément du corps pour la Réponse, soit pour la Demande.
5. Cliquez sur « Appliquer ».
Types de corps pris en charge
La collection d'éléments de corps est disponible pour les corps de requête/réponse sous les conditions suivantes :
Web | Applications mobiles |
Doit avoir un en-tête ‘content-type’ défini sur ‘application/json’ ou ‘application/graphql’ | Le format du corps doit être de tout type JSON |
La taille doit être inférieure à 64 000 bytes | La taille doit être inférieure à 64 000 bytes |
Exemples d'éléments de corps :
“errors[0].message” pour collecter le message d'erreur non chiffré
“errors[0].code” pour collecter le code d'erreur non chiffré
“data.emailAddress” pour collecter l'adresse e-mail chiffrée car il s'agit de données personnelles
Corps entier (chiffré)
Cochez la case pour collecter soit le corps de la requête, soit le corps de la réponse, ou les deux. Essayez d'éviter d'inclure des points de terminaison et des champs contenant des données sensibles qui ne peuvent pas être affichées ou suivies, car ces informations ne sont pas autorisées.
Types de corps pris en charge & limitations
Web | Applications mobiles |
application/json |
Le SDK tentera d'analyser le corps en tant que chaîne, quel que soit le format
|
Limitations de la collection de corps entier :
Le corps de la requête sera collecté si sa taille ne dépasse pas 64 Ko.
Le corps de la réponse sera collecté si sa taille ne dépasse pas : 5 Ko
Paramètres de requête (chiffrés)
Cochez la case pour collecter les paramètres de requête. Les paramètres de requête seront collectés si leur taille ne dépasse pas 2 Ko.
Points de données par défaut
Par défaut, nous collectons l'URL de la requête, le code d'état et la méthode.
Modification et suppression des règles
Dans la liste des règles, cliquez sur l'icône “œil” à droite de la règle pour ouvrir le panneau latéral de la règle.
Pour modifier :
1. Cliquez sur l'icône de crayon du nom de la règle ou de la section Conditions.
2. Ouvrez le modal de la règle à l'étape 1.
3. Cliquez sur l'icône de crayon de la section des points de données collectés pour ouvrir le modal de la règle à l'étape 2.
4. Appliquez les modifications nécessaires.
5. Naviguez vers l'autre modal si nécessaire pour appliquer des modifications supplémentaires.
6. Cliquez sur “Économiser” pour appliquer les modifications.
Pour supprimer :
1. Cliquez sur le bouton “Supprimer la règle” en bas.
2. Confirmez l'action de suppression en cliquant à nouveau sur “Supprimer”.
FAQ
Puis-je suivre rétroactivement les détails de dépannage des erreurs ?
Non, les détails de dépannage des erreurs ne sont collectés qu'après la définition de la configuration.
Que se passe-t-il lorsqu'une requête dépasse les limites acceptées ?
Il y a trois points de données avec les limites suivantes :
- Limite de paramètre de requête : 2 Ko
- Limite de taille du corps de la requête : 64 Ko
- Limite de taille du corps de la réponse : 5 Ko
Chacun de ces points de données est évalué indépendamment des autres. Lorsque la limite est atteinte, nous ne collecterons pas les données. Pour chacun, nous pousserons "..." non chiffré. Cela sera reflété dans les détails de dépannage du replay.
Pourquoi le corps de la requête ou/et de la réponse semble-t-il encodé, même après déchiffrement ?
Cela peut se produire si la requête a l'en-tête Transfer-Encoding
défini sur gzip
valeur. Chrome DevTools décompresse automatiquement le corps, donc cela n'est pas perceptible lors de son utilisation. Cependant, lorsqu'il est vu dans le modal de dépannage du Player, le corps n'est pas décompressé automatiquement. Des outils tiers peuvent être utilisés pour le décompresser après déchiffrement.