Difference between revisions of "VT2019 Performance Monitoring"

From air
Jump to navigation Jump to search
m
Line 48: Line 48:
   
 
=Sources=
 
=Sources=
  +
* https://neilpatel.com/blog/loading-time/?wide=1 : Conséquences des délais de chargement sur la satisfaction client

Revision as of 12:31, 24 November 2019

Abstract

Introduction

Né du besoin de surveiller la disponibilité, le temps de réponse et le comportement de nos applications et services courants, le performance monitoring (surveillance des performances) n'est en réalité qu'une suite d'outils permettant de suivre de bout en bout les données émanant de la ou les source(s) que l'on veut surveiller, jusqu'à une interface lisible, permettant de faire ressortir toutes éventuelles irrégularités et de lancer des alertes si nécessaire.

Fonctionnement

La plupart des solutions de performance monitoring peuvent être décomposés en trois parties distinctes :

- La récolte des données

- Le stockage des données

- La visualisation et l'analyse des données

Recolte des données

La recolte de données est la première étape pour toute surveillance de données. Les métriques surveillées peuvent être très diverses, donc les moyens de les récolter varient tout autant. Heureusement l'idée est simple : il suffit de récolter les données à partir d'une source et de les écrire dans la base de donnée. Ces sources sont aujourd'hui très variées, il est possible de surveiller des serveurs, des bases de données, toute application produisant des logs (sites webs, application mobiles), des réseaux et leurs charges, voir même des utilisateurs directement. On peut inclure aujourd'hui toutes les données émanant des capteurs de l'Internet of Things, qui représentent une source conséquente de données dont la majorité a pour unique vocation d'être monitoré (température, surveillance..)

Ainsi, beaucoup d'outils sont disponibles avec des plug-ins permettant d'adapter la récolte des données à tout projets existants relativement facilement. Cependant, les métriques recherchées sont souvent bas niveau (charge CPU, charge réseau, RAM utilisée..), ainsi l'application de récolte doit être installée directement sur tous les systèmes que l'on souhaite surveiller.

Stockage des données

Afin de pouvoir stocker toutes les données générée par les systèmes et récupérée par l'outil de récolte, il est judicieux de faire appel à des bases de données temporelle. En effet, ce sont des bases de données qui sont pensées pour fonctionner avec une notion de temps. Ainsi, il est possible de stocker un flux de donnée avec une métrique de temps et de pouvoir très facilement représenter ces données par la suite.

Visualisation et analyse des données

La partie la plus intéressante d'un point de vue monitoring est la visualisation de données. Le principe est de récupérer les métriques de la base de donnée temporelle et de les afficher sur un dashboard de manière concise, lisible et permettant ainsi en un clin d'oeil de repérer les anomalies d'un système ou d'un groupement de systèmes. Aujourd'hui, les outils de visualisation populaire sont des interfaces webs, permettant facilement la visualisation des données à distance. Il est possible de garder le stockage et la visualisation des données sur le même serveur de manière centralisé, comparé aux outils de récolte qui doivent être déployés.

Exemple d'outils utilisés ensemble

Telegraf + influxdb + Grafana

ELK

Importance du monitoring de performance dans le domaine du web

Différentes études montrent qu'un site web qui met trois secondes à charger fait perdre 40% de ses visiteurs. Le délai entre chaque changement de pages contribue aussi grandement à détourner les clients. Dans un marché ou la concurrence est rude, il est aujourd'hui indispensable d'avoir un site qui est non seulement rapide mais sans bugs et sur tout support (mobile et desktop). On va ainsi surveiller plusieurs métriques, en voici quelques exemples :

- Le temps jusqu'à l'arrivée du premier octet au client

- Le temps de chargement de la page

- La durée du rendu côté client

- La durée du DNS..


Démonstration

Sources