Hello! Je suis Sam,

Développeur web
RubyOnRails, Nodejs et Go

Bonnes pratiques de monitoring fonctionnel

Le précédent post évoquait la nécessité de mesurer le bon usage des fonctionnalités d'une application web.

Dans cet article je partage quelques bonnes pratiques.

Mettre en place les bons indicateurs

Comme toute analyse il ne faut pas tomber dans les mesures en apparence interessantes mais au final n'apportant rien aux prises de décisions. Il faut éviter de chercher des métriques qui apportent des biais.

Typiquement mesurer uniquement le nombre d'erreurs 500 n'est pas un bon indicateur. Il faut le mettre en contexte avec les autres codes d'erreur HTTP (2XX, etc). Par exemple mesurer la proportion entre ces éléments. Il est préférable d'avoir des seuils.

Autre mesure interessante, le temps de réponse des pages. Vérifier que les pages sont bien rendues en moins de 130ms.

Eviter le bruit

Souvent il est important d'éviter le bruit. On peut éviter ceci en lissant les courbes par exemple. Eviter le bruit est possible en mesurant les données sur des temps relativement long: plusieurs jours.

Mesurer les causes et non les symptômes

Au début d'un projet de monitoring fonctionnel, on aura tendance à mesurer la charge CPU ou la RAM utilisée. Ce sont des indicateurs facile à remonter. En soit, ceci peut être utile mais ces métriques sont plus les symptômes de votre application qu'une cause. Il est plus interessant d'aller chercher ce qui cause ces éléments. Est-ce une nouvelle fonctionnalité ? Une nouvelle version de lib. ? Une augmentation de l'audience ?

Il faut des métriques proches de vos fonctionnalités/utilisateurs et non ceux qui sont proches de vos machines. Exemple: nombre de réponses bien rendues/erreurs, taux de latence, erreurs dans les fonctionnalités asynchrones / messaging, proportion d'utilisation des données en cache, etc.

Ne mesurer que ce qui est utile

Il est inutile de vouloir tout mesurer. Vouloir acquérir trop d'information sans pouvoir s'en servir va amener à une surcharge de travail avec peu de résultats factuels. Et générer de la démotivation. Dans un premier temps, il est plus interessant de ne mesurer que ce que vous pourrez analyser et améliorer.

Parcours utilisateur

Mettez en place des indicateurs basés sur vos parcours utilisateurs. Commencez par identifiez vos parcours business. C'est à dire ceux qui apportent un service à vos utilisateurs et génèrent du business. Puis identifiez les métriques nécessaires à ces parcours (temps d'usage des features, temps de réponse, erreurs, etc.). Vous aurez une vision globale.