Qu'est-ce que l'Application Performance Monitoring (APM) ?

L'APM observe une application de l'intérieur : temps de réponse, erreurs et traces par endpoint. Fonctionnement, métriques et alertes à définir.

Qu'est-ce que l'Application Performance Monitoring (APM) ?

L'Application Performance Monitoring (APM, supervision des performances applicatives) observe une application en cours d'exécution de l'intérieur. Un petit agent dans votre code enregistre la durée de chaque requête, la requête de base de données ou l'appel externe qui l'a ralentie, et la ligne qui a levé une erreur. Vous obtenez temps de réponse, taux d'erreurs, débit et traces de requêtes pour le trafic réel de production, regroupés par endpoint, service et hôte.

Comment fonctionne l'APM

Un agent APM s'exécute dans le processus de votre application (JVM, Node.js, .NET, Python, Ruby) et s'accroche aux frameworks web, clients de base de données, clients HTTP, consommateurs de files et caches. Chaque appel instrumenté produit un span avec heure de début et de fin, un parent et des tags. Les spans reliés forment une trace : le parcours complet d'une requête, du point d'entrée à la base de données et retour. Agrégées, les traces alimentent les tableaux de bord que les équipes ouvrent pendant un incident.

Exemple : le paiement semble lent. La trace d'une requête lente montre 80 ms dans votre code et 1,9 s d'attente d'un prestataire de paiement. Sans la trace, vous devineriez entre l'application, la base de données et le réseau.

APM, monitoring synthétique et RUM

  • L'APM vit dans votre code et rapporte des requêtes réelles de production avec le détail par requête. Idéal pour trouver l'endpoint ou la requête lents.
  • Le monitoring synthétique exécute des vérifications scriptées depuis l'extérieur, à intervalle et depuis un lieu fixes. Idéal pour la disponibilité et pour repérer un problème quand aucun vrai utilisateur n'est connecté.
  • Le real user monitoring (RUM) s'exécute dans le navigateur et rapporte ce que de vrais visiteurs ont vécu, appareil et réseau compris. Idéal pour le point de vue de l'utilisateur.

Ils répondent à des questions différentes. L'APM peut indiquer que le serveur a répondu en 80 ms alors que le RUM montre qu'un visiteur sur un réseau mobile lent a attendu quatre secondes. L'APM est aussi un élément de l'observabilité, avec les logs et les métriques.

Ce que l'APM capture

  • Débit, erreurs et durée par endpoint (la méthode RED).
  • Percentiles de latence comme p50, p95 et p99. Voir la latence pour comprendre pourquoi les moyennes trompent.
  • Traces distribuées entre services, chaque saut chronométré.
  • Performance de la base de données : requêtes lentes, requêtes répétées dans une boucle (N+1) et attentes du pool de connexions.
  • Appels externes vers des API tierces et des prestataires de paiement, souvent la partie la plus lente et la plus difficile à corriger.
  • Santé du runtime : mémoire utilisée, pauses du ramasse-miettes, retard de l'event loop.
  • Exceptions avec stack traces, regroupées par cause avec un compteur.

Sur quoi alerter

  1. Latence p95 nettement au-dessus de sa base habituelle pour un endpoint.
  2. Taux d'erreurs au-dessus de votre objectif. Suivez 5xx et 4xx séparément, car les 4xx relèvent souvent d'un mauvais usage côté client.
  3. Chute du débit sous le niveau habituel, souvent le premier signe qu'un répartiteur de charge a perdu une cible.
  4. Hausse de la latence des appels externes, que votre service hérite comme retard propre.

Choisissez les seuils à partir de votre propre base de référence et de vos SLO, pas d'un chiffre générique.

Erreurs fréquentes

  • Alerter sur des moyennes, qui masquent la queue lente.
  • Ne tracer que les routes HTTP et jamais les étapes métier comme le paiement ou un traitement par lots. Ajoutez des spans personnalisés pour elles.
  • Échantillonner si fort que les requêtes lentes rares n'apparaissent jamais.
  • Laisser l'APM éteint en préproduction, si bien que les tests de charge n'apprennent pas où passe le temps.

Comment déployer l'APM

Choisissez un produit APM commercial ou une pile open source (traces et métriques via des standards ouverts), installez l'agent du langage, définissez un nom de service et vérifiez que les traces arrivent en quelques minutes. Ajoutez ensuite des spans personnalisés autour des opérations qui comptent pour votre métier. Pour comparer les produits, voir le guide du blog sur les outils d'APM.

APM et tests de charge

L'APM montre ce qui se passe en production. Les tests de charge montrent ce qui se passera avec plus de trafic. Lancez un test de charge sur la préproduction avec l'APM activé et vous voyez quel endpoint atteint sa limite en premier, et pourquoi. Un soak test plus long avec l'APM en marche révèle aussi la croissance de la mémoire dans le temps. Les tests de charge LoadFocus génèrent le trafic depuis 25 régions cloud et donnent à chaque exécution un verdict réussi ou échoué selon des seuils de temps de réponse et de taux d'erreurs.

LoadFocus n'est pas un APM et n'instrumente pas votre code. Le monitoring d'API en est le complément vu de l'extérieur : il vérifie vos endpoints selon un planning (toutes les 5 minutes avec le plan gratuit) et décompose chaque temps de réponse en DNS, connexion TCP, premier octet et téléchargement, pour repérer un problème même quand aucun vrai utilisateur ne le déclenche.

Questions fréquentes

Que signifie APM ?

Application Performance Monitoring. Certains éditeurs l'emploient aussi pour Application Performance Management, qui ajoute l'optimisation et la correction à la supervision.

Quelle différence entre APM et logs ?

Les logs enregistrent des événements ponctuels que vous choisissez d'écrire. L'APM enregistre automatiquement les durées et le contexte de chaque requête instrumentée : vous voyez où le temps est passé, pas seulement ce qui s'est produit.

L'APM, est-ce la même chose que l'observabilité ?

Non. L'APM est une pratique au sein de l'observabilité. Celle-ci couvre aussi les logs, les métriques d'infrastructure et la capacité de poser de nouvelles questions à votre télémétrie.

Ai-je encore besoin du monitoring synthétique avec l'APM ?

Oui. L'APM ne voit que le trafic qui atteint votre code. Une vérification synthétique depuis l'extérieur repère une panne, un enregistrement DNS défaillant ou un certificat expiré même si aucune requête n'arrive.

L'APM ralentit-il mon application ?

Un agent ajoute un peu de surcharge. La plupart des produits permettent de la maîtriser par échantillonnage. Mesurez-la en lançant le même test de charge avec et sans agent.

Quelle est la vitesse de votre site web?

Augmentez sa vitesse et son référencement naturel de manière transparente avec notre Test de Vitesse gratuit.

Test gratuit de vitesse du site Web

Analyser la vitesse de chargement de votre site Web et améliorer ses performances avec notre outil gratuit de vérification de la vitesse de la page.