Diagramme de Sankey des résultats de requêtes API : des endpoints aux erreurs
Suivez les requêtes API de l'endpoint à la classe de statut puis à la cause de chaque erreur. Voyez quels endpoints produisent des échecs et pourquoi, puis remplacez les chiffres par vos journaux.
Un Sankey des résultats d'API suit les requêtes de l'endpoint qui les a reçues jusqu'au succès ou à une classe d'erreur, puis répartit chaque classe d'erreur par cause. Il désigne l'endpoint et la cause à corriger en premier.
L'exemple compte un million de requêtes réparties sur quatre endpoints. Parmi elles, 920 000 réussissent, 60 000 sont des erreurs client (4xx) et 20 000 des erreurs serveur (5xx). La dernière colonne donne la cause de chaque erreur : entrée invalide, jeton expiré, ressource introuvable et limitation de débit côté client ; délai dépassé, défaillance d'une dépendance et bug côté serveur.
Un taux d'erreur par endpoint n'est qu'un seul chiffre. Le Sankey garde le trajet : dans l'exemple, Paiement a le taux d'erreur serveur le plus élevé (7 sur 150) et Connexion le taux d'erreur client le plus élevé (22 sur 200). Les chiffres sont inventés. Utilisez des comptes sur une fenêtre donnée, et précisez si les nouvelles tentatives sont comptées une fois ou à chaque fois. La même idée appliquée aux alertes plutôt qu'aux requêtes est /fr/sankey/incident-response.
Comment lire ce diagramme
- 920 des 1 000 milliers de requêtes (92 %) réussissent ; 6 % sont des erreurs client et 2 % des erreurs serveur.
- Paiement a le taux d'erreur serveur le plus élevé : 7 sur 150 (environ 5 %).
- Connexion a le taux d'erreur client le plus élevé : 22 requêtes sur 200 (11 %). Les jetons expirés causent 20 des 60 erreurs client.
- La moitié des erreurs serveur (10 sur 20) sont des délais dépassés.
Les données derrière le diagramme
Chiffres inventés à titre d'illustration. Ce ne sont pas des données sur une entreprise, une équipe ou un système réels.
| De | Vers | Quantité (milliers de requêtes) |
|---|---|---|
| Recherche | Succès (2xx) | 370 |
| Recherche | Erreur client (4xx) | 22 |
| Recherche | Erreur serveur (5xx) | 8 |
| Paiement | Succès (2xx) | 135 |
| Paiement | Erreur client (4xx) | 8 |
| Paiement | Erreur serveur (5xx) | 7 |
| Connexion | Succès (2xx) | 175 |
| Connexion | Erreur client (4xx) | 22 |
| Connexion | Erreur serveur (5xx) | 3 |
| Catalogue | Succès (2xx) | 240 |
| Catalogue | Erreur client (4xx) | 8 |
| Catalogue | Erreur serveur (5xx) | 2 |
| Erreur client (4xx) | Entrée invalide | 25 |
| Erreur client (4xx) | Jeton expiré | 20 |
| Erreur client (4xx) | Introuvable | 10 |
| Erreur client (4xx) | Débit limité | 5 |
| Erreur serveur (5xx) | Délai dépassé | 10 |
| Erreur serveur (5xx) | Défaillance d'une dépendance | 6 |
| Erreur serveur (5xx) | Bug | 4 |
Les mêmes données en CSV
source,target,value
Recherche,Succès (2xx),370
Recherche,Erreur client (4xx),22
Recherche,Erreur serveur (5xx),8
Paiement,Succès (2xx),135
Paiement,Erreur client (4xx),8
Paiement,Erreur serveur (5xx),7
Connexion,Succès (2xx),175
Connexion,Erreur client (4xx),22
Connexion,Erreur serveur (5xx),3
Catalogue,Succès (2xx),240
Catalogue,Erreur client (4xx),8
Catalogue,Erreur serveur (5xx),2
Erreur client (4xx),Entrée invalide,25
Erreur client (4xx),Jeton expiré,20
Erreur client (4xx),Introuvable,10
Erreur client (4xx),Débit limité,5
Erreur serveur (5xx),Délai dépassé,10
Erreur serveur (5xx),Défaillance d'une dépendance,6
Erreur serveur (5xx),Bug,4Comment cela fonctionne
Exporter une fenêtre de journaux de requêtes
Prenez une heure, un jour ou une semaine, avec l'endpoint et le code de statut de chaque requête.
Regrouper les endpoints et les codes de statut
Gardez les quatre à six endpoints les plus sollicités et regroupez les autres sous Autres. Regroupez les codes de statut par classe.
Ajouter la cause de chaque erreur
Utilisez le code ou le message d'erreur que renvoie votre service. Regroupez les causes en cinq à sept libellés.
Vérifier l'équilibre
Chaque classe d'erreur doit sortir autant de requêtes qu'elle en reçoit. Les succès s'arrêtent à la deuxième colonne.
Questions fréquentes
Faut-il montrer les redirections (3xx) ?
Seulement si elles comptent pour votre question. Sinon, comptez-les comme des succès, ou laissez-les de côté et dites-le dans la note sur les données.
Puis-je l'utiliser pour la surveillance en temps réel ?
Non. C'est une image d'une fenêtre fixe. Un outil de supervision convient mieux aux taux en direct ; le diagramme sert à expliquer d'où viennent les échecs.
Modifier ce Sankey d'API
Ouvrez l'exemple comme votre propre diagramme et saisissez vos comptes de requêtes.