La configuration de résolution des erreurs d'API avancée 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 des erreurs d'API avec un code d'état, pas seulement dans la fourchette 4XX-5XX, afin que vous puissiez résoudre les erreurs plus rapidement.
Utilisez la résolution des erreurs d'API avancée 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 les dashboards & alertes d'erreurs et le Contexte d'analyse pour monitorer, 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 résolution 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 d'API pour des en-têtes personnalisés chiffrés.
Vous pouvez trouverdes 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 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, le tag 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 dernière mise à jour (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 :
- Rechercher une 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 dernière mise à jour).
-
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 fourchette 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.
Créer 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://sous-domaine.domaine.com/chemin/sous-chemin?requête=param
La valeur suivante y correspondra :
- URL complet : 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 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 d'interroger 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 à 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”. Remarque, 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, chiffrée ou non chiffrée).
2. Entrez le nom de l'en-tête.
3. Chiffrement :
- 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, “Requête” est sélectionné. Vous pouvez mettre à jour cela 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 de la requête ou du corps 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 de 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 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 réponse à collecter pour l'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 réponse pour résoudre
Visibles au niveau de l'événement individuel dans le replay de session, ce sont des éléments du corps de la requête/réponse que vous souhaitez collecter pour résoudre.
Pour définir un élément du corps de réponse à collecter pour résoudre :
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 résoudre ne peut être collecté que chiffré, car les éléments du corps de réponse non chiffrés sont ajoutés pour l'analyse (dans la section ci-dessus).
- Si le chiffrement n'est pas activé, seul l'élément du corps de la requête 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 ou la Requête.
5. Cliquez sur “Appliquer”.
Types de corps pris en charge
La collecte 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 comme une chaîne, quel que soit le format
|
Limitations de la collecte de l'ensemble du corps :
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 de statut et la méthode.
Modifier et supprimer 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 la modale 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 la modale de la règle à l'étape 2.
4. Appliquez les modifications.
5. Naviguez vers l'autre modale si nécessaire pour appliquer des modifications supplémentaires.
6. Cliquez sur “Enregistrer” 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 la modale de dépannage du Lecteur, le corps n'est pas décompressé automatiquement. Des outils tiers peuvent être utilisés pour le décompresser après déchiffrement.