Traduit de l'anglais à l'aide de l'IA
Veuillez noter que cet article a été traduit à l'aide de la technologie IA. Bien que nous travaillions à maintenir l'exactitude, certains détails peuvent ne pas refléter parfaitement le texte original. Si vous avez des doutes sur une information, veuillez vous référer à la version anglaise.
La configuration de dépannage avancé des erreurs API vous permet de créer des règles pour collecter plus d'informations sur les erreurs API (en-têtes, contenu du corps de la requête/réponse), ainsi que de collecter des erreurs API avec un code d'état, pas seulement dans la plage 4XX-5XX, afin que vous puissiez résoudre les erreurs plus rapidement.
Utilisez le dépannage avancé des erreurs API pour :
- Configurer la collecte des erreurs 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 API dans le flux d'événements de la lecture 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 tableaux de bord et alertes d'erreurs 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 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 aucune donnée personnelle.
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 API pour les 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 cryptage 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, la balise ne procédera pas à la collecte de données cryptées.
Vue d'ensemble de l'onglet de dépannage des erreurs API
1. Accédez à la Console en cliquant sur votre icône de profil, puis sur 'Console'.
2. Cliquez sur l'onglet 'Dépannage des erreurs avancées'.
Vue d'ensemble des règles de collecte des erreurs API
Pour chaque règle répertoriée, vous pouvez voir les informations suivantes (de gauche à droite) :
- Le nom de la règle
- Le(s) code(s) d'état 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 :
- Rechercher une règle : recherchez des règles existantes en fonction d'un terme contenu dans le nom ou le code d'état du domaine.
- Trier les règles : cliquez sur les en-têtes de colonne pour trier les règles par nom, code d'état, domaine ou date (créée ou mise à jour pour la dernière fois).
-
Voir les détails 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 d'état dans la plage 4XX-500, avec juste les points de données par défaut : URL de la requête, code d'état 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 API et des détails des erreurs API :
- GraphQL : Cette règle est conçue pour collecter les erreurs graphQL de base qui ne sont pas collectées par défaut, puisque le code d'état 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é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://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 de 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 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 (“invalid” 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 'age' sur le type 'Customer'.", "code": "1003" } ], "data": { "customer": { "id": "123", "name": "John Doe" } } }
Valeur de contenu du corps à utiliser : errors
Valeur de 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 pour 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 (demande ou réponse, chiffré ou non chiffré).
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 en clair.
- Si le chiffrement n'est pas activé, l'en-tête ne peut être collecté qu'en clair. 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 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 tableau de bord et d'Alertes, ce sont des éléments du corps de la réponse qui seront collectés en clair.
Pour définir un élément du corps de 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 réponse pour dépannage
Visibles au niveau de l'événement individuel dans la Relecture de Session, ce sont des éléments du corps de la demande/réponse que vous souhaitez collecter pour le dépannage.
Pour définir un élément du corps de réponse pour dépannage à collecter :
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 en clair.
- Pour la réponse : l'élément du corps pour dépannage ne peut être collecté qu'en 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é en clair. 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 Demande.
5. Cliquez sur “Appliquer”.
Types de corps pris en charge
La collection des é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 octets | La taille doit être inférieure à 64 000 octets |
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 la 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 la modal de la règle à l'étape 2.
4. Appliquez les modifications.
5. Naviguez vers l'autre modal 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”.
FAQs
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 demande 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 de la lecture.
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 modalité 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.