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

APM (application performance monitoring) instrumente le code en exécution pour rapporter latency, erreurs, throughput et traces par requête en production.

Qu'est-ce que l'application performance monitoring (APM) ?

L'application performance monitoring (APM) instrumente le code applicatif en exécution pour rapporter latency, taux d'erreurs, throughput et execution traces pour chaque requête qui arrive en production. Là où les logs disent ce qui s'est passé, APM montre combien de temps chaque étape a pris, quel downstream call a ralenti la requête et quelle ligne de code a levé l'exception. Les données sont indexées par requête et agrégées par endpoint, host, service et fenêtre temporelle.

Un agent APM tourne in-process (une library dans la JVM, Node runtime, .NET CLR, interpréteur Python, VM Ruby) et se branche sur les web frameworks, clients de base de données, clients HTTP, consumers de message queue et libraries de cache. Chaque call instrumenté émet un span : start time, end time, parent span, tags. Les spans assemblés en trace donnent le cycle complet de la requête du clic frontend au retour de la ligne base de données.

APM vs synthetic monitoring vs RUM

Trois catégories de monitoring qu'on confond :

  • APM : agent dans ton code applicatif. Rapporte le trafic réel de production avec granularité par requête. Meilleur choix pour trouver l'endpoint ou la query lent.
  • Synthetic monitoring : check scripted depuis un emplacement connu à intervalle fixe. Rapporte disponibilité et performance prévisible. Voir synthetic monitoring.
  • RUM (real-user monitoring) : JS beacon dans le navigateur. Rapporte ce que les utilisateurs réels ont vécu y compris réseau, device, géographie. Voir RUM.

Tu as besoin des trois. APM dit : le serveur a émis 200 en 80 ms. RUM dit : l'utilisateur à Sydney a vu une page de 4 secondes à cause d'un réseau last-mile lent. Synthetic dit : la homepage a répondu toutes les 5 minutes depuis us-east-1, même à 3 h du matin.

Ce qu'APM capture

  • Request rate et error rate par endpoint, service et host. La méthode RED (Rate, Errors, Duration).
  • Percentiles de latency p50, p95, p99 par endpoint. Voir latency pour comprendre pourquoi les moyennes trompent.
  • Distributed traces à travers les microservices : HTTP client vers gateway vers auth service vers product service vers base de données, chaque hop horodaté.
  • Performance des queries : liste de slow queries, détection N+1, attentes de connection pool.
  • Latency des external calls : APIs third-party, S3, Stripe, payment gateways. Souvent la pièce la plus lente.
  • Métriques runtime : heap JVM, GC pause time, lag de l'event loop Node, contention du GIL Python.
  • Exceptions et stack traces groupés par fingerprint avec compte d'occurrences.

Signaux APM clés à alerter

  1. Latency p95 de l'endpoint 2x au-dessus de la baseline. Attrape régression graduelle et incidents soudains.
  2. Error rate de l'endpoint au-dessus de 1% (ou ton SLO). Tracker 5xx et 4xx séparément.
  3. Apdex score sous threshold (0.7 est la yellow line classique).
  4. Drop de throughput sous baseline RPS : souvent le premier signe d'un load balancer qui drop une cible.
  5. Spike de latency d'external call : API downstream ou base lente, ton service héritant de l'attente.

Comment déployer APM

Choisir un vendor (Datadog, New Relic, Dynatrace, Honeycomb, AppDynamics, Elastic APM) ou de l'OSS (Jaeger plus Prometheus pour traces et metrics). Installer l'agent du langage : un library import plus une env var de service name pour la plupart des stacks. Les premiers traces arrivent en minutes. Puis ajouter des custom spans autour des opérations métier (checkout, ai-generation, batch-job).

APM est le plus utile combiné avec des load tests. Lancer load testing, soak testing et spike testing contre staging avec APM actif permet de voir exactement quel endpoint atteint son plafond le premier et pourquoi.

Si ton équipe doit combiner load testing et analyse APM-grade de traces sous charge de production, LoadFocus propose des services de load testing où des ingénieurs conçoivent les scenarios et corrèlent les traces APM avec les profils de charge.

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.

×