Introduction à la gestion de la performance des applications (APM) avec New Relic : Monitorer, debugger et optimiser une Plateforme WEB en Production

Vincent Dussud

L'optimisation des performances applicatives est un enjeu essentiel dans l'écosystème web actuel. Les architectures complexes et l'exigence d'une expérience utilisateur fluide nécessitent des outils de diagnostic allant au-delà de la simple surveillance d'infrastructure.


Cet article explore l'importance de la Gestion de la Performance des Applications (APM) et présente une mise en œuvre concrète de New Relic pour identifier les goulots d'étranglement en production.

 

Pourquoi les métriques classiques ne suffisent plus ?

Une plateforme de production génère des données de performance à plusieurs niveaux. Cependant, les indicateurs système traditionnels (CPU, RAM, disque, réseau) ne sont pas suffisants pour garantir une qualité d'expérience utilisateur optimale.


Le décalage entre l'expérience utilisateur et les métriques d'infrastructure

L'enjeu est de collecter des métriques de haut niveau en s'appuyant sur le trafic réel des utilisateurs. Cette méthode est privilégiée pour deux raisons essentielles :

  • L'expérience utilisateur finale : Il est essentiel de s'assurer que les performances perçues par les utilisateurs soient satisfaisantes. (La simple bonne santé matérielle ne garantit pas la fluidité applicative. )
  • Environnements Dev vs. Prod : Les environnements de développement ne reproduisent jamais les conditions de charge réelles (quantité d'utilisateur, variété des données, usages concurrents et variés, 24/24h... ). Une évaluation en temps réel de la performance perçue par les utiliseurs impliquent un surveillance de l'application en conditions réelles.

L'outil APM New Relic répond à ce besoin en posant des sondes directement sur les plateformes de production pour collecter des données en temps réel à la source (Apache, MySQL, PHP, Redis...).

 

L'analyse complète avec New Relic

New Relic est un outil APM qui permet de visualiser et d'analyser l'activité de la plateforme de bout en bout. Son efficacité a été démontrée à travers l'étude de cas des plateformes clients Sandaya et Quai des Notaires.


Surveillance côté client : le rendu navigateur (PPM)

Pour analyser la performance perçue par l'utilisateur, on s'intéresse aux PPM (pages par minute) et aux métriques des Core Web Vitals.

  • Mécanisme : New Relic injecte un petit bout de code JavaScript dans chaque page pour surveiller le comportement côté client, fournissant des données directement depuis les navigateurs.
  • Focus sur le rendu : L'analyse des temps de chargement révèle que le rendu côté navigateur représente une part importante du temps total. La complexité du DOM et l'exécution des actions JavaScript sont des facteurs qui peuvent fortement influencer ce temps.


Surveillance côté serveur : les transactions applicatives (RPM)

Côté serveur, l'indicateur clé est le RPM (requêtes par minute), qui mesure les appels que le serveur applicatif doit traiter. Ces métriques font abstraction des caches et proxys intermédiaires, offrant un reflet fidèle de l'activité réelle du serveur.


L'outil permet de suivre et de diagnostiquer des transactions web spécifiques :

  • Analyse d'utilisation : Visualisation du temps cumulé et du pourcentage d'utilisation du serveur par les différentes transactions.
  • Diagnostic inattendu : Cette fonctionnalité est cruciale pour détecter des problèmes non prévus, comme l'identification récente de pages consommatrices de temps dues à des opérations mathématiques complexes impliquées dans la génération de tokens d'authentification.

 

Identification des goulots d'étranglement

New Relic est un allié précieux pour identifier les lenteurs et leur cause, en décomposant les temps de traitement entre les différentes couches de l'application.


Les requêtes de base de données

L'outil permet de visualiser et de remonter les requêtes de base de données les plus lentes ou consommant le plus de temps en production. Un diagnostic rapide peut pointer vers des problèmes comme le "full scan", permettant de suggérer la création d'index pour l'optimisation.


Les dépendances externes

Les appels aux services externes (web external) représentent souvent une part significative du temps de traitement total de l'application. La surveillance de ces appels est essentielle, car ils constituent des goulots d'étranglement qui ne dépendent pas du serveur applicatif "local".

 

FAQ : Coûts, défis et retour sur investissement

 

SujetObservation
Les données sont elles fiables/représentatives ?

Bien que des bloqueurs (publicités, Ghostery) puissent empêcher une remontée exhaustive des informations, l'objectif est d'obtenir des statistiques et des tendances. Une audience de plus de 50 hits par minute est suffisante pour comprendre ce qui se passe en production.

Toutes ces métriques, ces sondes doit lmpacter sur les performances ? (Overhead)

L'APM génère une charge (overhead) sur le client et les serveurs. Cependant, les bénéfices en diagnostic de problèmes graves dépassent largement cet impact. New Relic utilise de l'échantillonnage pour réduire la charge sur les sites à forte audience.

Expertise et suivi

Une utilisation efficace nécessite une présence régulière et une expertise pour maîtriser l'outil et interpréter les variations. Le suivi et l'historique sont indispensables pour détecter les changements par rapport aux valeurs nominales. C'est un outil puissant qui ne donne son plein potentiel qu'avec des pilotes qui vont y passer 4-5 heures par mois ;)

Coût

Le coût est très variable et dépend de la quantité de données ingérées, du temps de rétention et des fonctionnalités activées. Néanmoins, la capacité à diagnostiquer rapidement un blocage en production fait de cet outil un investissement rentable.

 


En conclusion, l'expérience sur des projets a confirmé que New Relic apporte des bénéfices nets en production. Son agent est non intrusif (il ne nécessite pas de modifier le code de l'application), permettant un diagnostic rapide et précis des problématiques autrement difficiles à identifier.

 

Pour aller plus loin

Mais il ne s'agit là que d'une étape dans une démarche plus globale d'optimisation de la performance web. Une fois les problèmes détectés grâce à ce monitoring, il faut le régler. Pour cela, notre expert Axel Weber a rédigé plusieurs articles concernant l'optimisation du chemin critique du rendu, ou encore comment des approches essentielle comme la mise en cache, le packing et la minification peuvent réduire significativement le poids de vos ressources. 

 

Et pour aller encore plus vite, plongez dans nos articles sur le pattern PRPL, ou notre analyse sur l'impact de HTTP/2 dans l'amélioration des performances.
 

Besoin de conseils afin d'optimiser la performance de votre site web ? Contactez-nous !
Performances web : principal levier de votre chiffre d'affaires ! Je regarde

A lire aussi

Dans un contexte où les entreprises doivent traiter des volumes croissants de ...
De 10 à 200 millions de chiffre d’affaires en ligne en 4 ans : Comment Sandaya ...
Voir tous les articles