|
1 | 1 | ---
|
2 |
| -Title: Comment rendre vos utilisateurs heureux (grâce à vos métriques applicatives) |
| 2 | +Title: Comment rendre vos utilisateurs heureux (avec vos métriques) |
3 | 3 | Category: Blog
|
4 | 4 | Tags: sre, métriques, expérience utilisateur, bonnes pratiques
|
5 |
| -Status: draft |
6 | 5 | Date: 2100-01-01
|
7 | 6 | ---
|
8 | 7 |
|
9 |
| -TODO |
| 8 | +Ça y est ! Mon application est déployée en production et reçoit du trafic ! C'est maintenant |
| 9 | +que les choses sérieuses commencent : les utilisateurs seront les meilleurs ambassadeurs pour |
| 10 | +en faire la promotion... ou pour en dire leur déception. Ce serait utile d'avoir des retours |
| 11 | +sur leur perception, de pouvoir mesurer leur expérience mais je n'ai pas le budget pour lancer |
| 12 | +une étude. |
| 13 | + |
| 14 | +Je fais donc avec les moyens du bord, et ils sont déjà riches ! Et si je commençais par utiliser |
| 15 | +mes métriques applicatives ? |
| 16 | + |
| 17 | +## Adopter de justes proportions |
| 18 | + |
| 19 | +En me mettant à la place de mes utilisateurs, je me dis que ce qui peut arriver de pire serait |
| 20 | +de tomber sur une erreur bloquante. C'est quelque chose que je peux mesurer en utilisant les |
| 21 | +codes HTTP des réponses de mon application. |
| 22 | + |
| 23 | +Je ne suis pas parfait : je sais qu'il y en a et qu'il risque d'y en avoir toujours, ne serait-ce |
| 24 | +que parce que mon infrastructure n'est pas parfaite et que certains composants peuvent parfois |
| 25 | +tomber. Je ne vise pas le zéro absolu mais j'aimerais en avoir le moins possible. Quand soudain, |
| 26 | +j'observe une augmentation exponentielle du nombre « d'erreurs 500 » ! |
| 27 | + |
| 28 | +{.center} |
| 29 | + |
| 30 | +Pourquoi cette augmentation subite ? Je n'ai pourtant pas déployé de nouvelle version depuis |
| 31 | +quelques jours. Je commence à paniquer. En regardant les logs, ce sont les mêmes erreurs que |
| 32 | +d'habitude. Je sais bien que j'aurais dû corriger ça avant mais il y en avait peu, ça n'était |
| 33 | +pas prioritaire. Là, c'est l'explosion ! |
| 34 | + |
| 35 | +L'explosion, vraiment ? Y en a-t-il vraiment plus qu'avant ? En quantité, c'est certain, mais |
| 36 | +qu'en est-il _proportionnellement_ au trafic de mon application ? |
| 37 | + |
| 38 | +* Si cette augmentation du nombre d'erreur s'observe à nombre constant de requêtes, il y a |
| 39 | + effectivement un problème dont je veux être alerté, et vite. |
| 40 | +* En revanche, si le nombre de requêtes varie dans les mêmes proportions que le nombre d'erreurs, |
| 41 | + cela semble plus cohérent. Être réveillé la nuit par une alerte qui indique que le trafic a |
| 42 | + augmenté mais tout est normal me mettrait de mauvaise humeur. |
| 43 | + |
| 44 | +{.center} |
| 45 | + |
| 46 | +Une façon d'éviter cette possible confusion est d'exprimer les indicateurs comme une _proportion_ |
| 47 | +_d'événements valides qui étaient bons_. Si cette formulation peut sembler abstraite, sa mise en |
| 48 | +place est beaucoup plus simple. Dans notre exemple d'un système répondant à des requêtes, on |
| 49 | +peut mesurer la proportion de requêtes ayant abouti à une réponse de code HTTP de classe 200, 300 |
| 50 | +ou 400 par rapport au nombre total de requêtes. |
| 51 | + |
| 52 | +> _Pourquoi prendre les codes HTTP de classe 400 comme des succès ?_ |
| 53 | +> |
| 54 | +> S'ils sont perçus comme une erreur vis-à-vis de votre client, il représentent en réalité un |
| 55 | +> cas prévu qui correspond à une action non-autorisée de votre utilisateur. Essayer d'accéder à |
| 56 | +> une page nécessitant une authentification sans s'être préalablement connecté n'est pas autorisé : |
| 57 | +> retourner autre chose qu'un code HTTP 403 serait probablement une erreur. |
| 58 | +
|
| 59 | +## Prendre le temps, et le bon |
| 60 | + |
| 61 | +J'ai compris la leçon et j'ai exprimé une métrique importante de mon application comme une |
| 62 | +proportion. Le système d'alerte se comporte comme une guirlande de Noël. L'alerte sonne, tout |
| 63 | +est rouge, et le temps que je regarde, tout est revenu à la normale. Je pars me faire un café |
| 64 | +et en revenant, l'alerte a encore oscillé trois fois entre « tout va bien » et « tout brûle ». |
| 65 | + |
| 66 | +En regardant la courbe, je reste circonspect. |
| 67 | + |
| 68 | +{.center} |
| 69 | + |
| 70 | +Je ne vois rien sur cette courbe. La variance est trop grande, je ne peux en dégager aucune tendance |
| 71 | +à l'œil nu. Une solution à cela est de lisser par une fonction d'agrégation sur une fenêtre du temps |
| 72 | +plus large que la période d'échantillonnage de vos métriques. |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | +{.center} |
| 77 | + |
| 78 | + |
| 79 | +## Dites 33 |
| 80 | + |
| 81 | +## Partez en voyage |
| 82 | + |
| 83 | +## C'est pas tout mais... |
| 84 | + |
| 85 | +pas révélateur de l'ux |
| 86 | + |
| 87 | +> Cet article a également été décliné sous forme d'une présentation aux |
| 88 | +> _Human Talks_ Paris le 14 janvier 2020 sous le titre |
| 89 | +> [How to make your users happy (with your metrics)](https://www.youtube.com/watch?v=gNMtIdWKfEg). |
0 commit comments