L’APM (Application Performance Monitoring) est une approche complète de surveillance des performances logicielles, incluant la collecte de métriques, le traçage des requêtes et le diagnostic d’erreurs en temps réel. Selon Gartner IT Glossary, 2024, l’APM combine trois domaines clés : la surveillance de l’expérience utilisateur, la détection des défaillances dans l’architecture applicative et l’analyse des données d’exécution pour un diagnostic approfondi des incidents.
Points clés
L’APM (Application Performance Monitoring) est la discipline de gestion des performances applicatives, couvrant la collecte, la visualisation et l’analyse des données de fonctionnement du logiciel. Contrairement à la surveillance ponctuelle de métriques individuelles (CPU, mémoire), l’APM fournit une vision holistique : comment l’application se comporte du point de vue de l’utilisateur, comment ses composants interagissent et où se produisent les goulots d’étranglement.
Le concept d’APM a émergé dans les années 2010 avec la transition des applications monolithiques vers l’architecture microservices. Lorsque le nombre de services a dépassé 10–15 unités, les méthodes de surveillance traditionnelles ont cessé de fonctionner — il était impossible de déterminer quel service spécifique provoquait le ralentissement de l’ensemble de la requête. Les solutions APM ont résolu ce problème grâce au traçage distribué et à la construction automatique de carte de services.
Selon Grand View Research (2024), le marché de l’APM est évalué à 8,2 milliards de dollars américains et croît de 11,5 % par an. Les principaux moteurs sont la migration vers le cloud, l’augmentation du nombre de microservices et l’exigence croissante de qualité de l’expérience utilisateur dans les applications mobiles et les services web.
L’APM moderne repose sur trois types de données qui forment ensemble une image complète de l’état de l’application. Les métriques sont des agrégats numériques : temps de réponse, nombre de requêtes, taux d’erreur. Elles répondent à la question « que se passe-t-il » et permettent de configurer des alertes basées sur des valeurs seuils.
Le traçage (traçage distribué) répond à la question « pourquoi cela se produit-il ». Chaque requête entrante est tracée à travers tous les microservices, bases de données et appels externes. Le système APM combine métriques et traçage : si la métrique de temps de réponse a augmenté, le développeur navigue vers le tableau de bord des traces et voit la requête exacte qui a causé le ralentissement, décomposée par service.
Les journaux fournissent le contexte — un message d’erreur spécifique, une valeur de variable, une pile d’appels. Les plateformes APM modernes (Datadog, New Relic, Grafana) lient les journaux aux traces via un trace_id commun, permettant de passer d’un graphique de métrique au journal d’une requête spécifique. Selon Datadog (2025), la corrélation des journaux avec les traces réduit le temps moyen de diagnostic d’incident de 45 à 12 minutes.
| Signal | Question | Unité |
|---|---|---|
| Métriques | Que se passe-t-il ? | Agrégats numériques |
| Traçage | Pourquoi cela se produit-il ? | Spans et traces |
| Journaux | Qu’est-ce qui a exactement mal fonctionné ? | Enregistrements textuels |
L’architecture APM classique se compose de trois niveaux : agent, collecteur et backend. Un agent est une bibliothèque intégrée dans l’application ou exécutée à ses côtés (sidecar). L’agent intercepte les appels entrants et sortants, collecte les données d’exécution et les envoie au collecteur via un canal sécurisé.
Un agent APM pour Java peut se connecter via javaagent au niveau JVM, instrumentant automatiquement toutes les requêtes HTTP, les appels de base de données, les files d’attente de messages et les API externes. Pour les plateformes mobiles, l’agent se connecte en tant que SDK et collecte les métriques depuis l’appareil. L’agent New Relic pour Android, par exemple, suit automatiquement toutes les requêtes réseau via OkHttp, les clients HTTP et WebView.
import com.newrelic.agent.android.NewRelic;
public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("YOUR_TOKEN")
.start(this);
}
}
Ce code initialise l’agent New Relic dans une application Android. Après le lancement, l’agent collecte automatiquement les métriques des requêtes réseau, les erreurs, les ANR et les données de performance de l’interface utilisateur sans instrumentation supplémentaire de chaque écran. L’agent s’exécute dans un thread d’arrière-plan et n’affecte pas les performances de l’interface principale de l’application.
Le collecteur reçoit les données de milliers d’agents, agrège les métriques, effectue un échantillonnage des traces et stocke les données dans un stockage à long terme avec des capacités de stockage à chaud et à froid. Le backend APM fournit des tableaux de bord, des alertes, des cartes de services et une API pour l’intégration avec des systèmes externes (Slack, PagerDuty, Jira, ServiceNow). Datadog traite plus de 10 millions de points de données par seconde via ses collecteurs, situés dans plus de 20 régions du monde pour une latence de transmission minimale.
L’Apdex (Application Performance Index) est une norme ouverte pour mesurer la satisfaction des utilisateurs quant au temps de réponse de l’application. La valeur Apdex est calculée à l’aide de la formule : (nombre d’utilisateurs satisfaits + nombre d’utilisateurs tolérants / 2) / nombre total d’utilisateurs. Le résultat est un nombre de 0 à 1, où 1 signifie que tous les utilisateurs sont satisfaits.
Les seuils Apdex sont définis individuellement pour chaque application. Pour les applications mobiles, un seuil de satisfaction typique est un temps de réponse jusqu’à 1,5 seconde, tolérable jusqu’à 4,5 secondes. Tout ce qui dépasse 4,5 secondes est considéré comme inacceptable. Un score Apdex de 0,94 et plus est considéré comme excellent pour un environnement de production.
L’Apdex est utilisé non seulement comme métrique de qualité, mais aussi comme seuil pour les alertes. Si l’Apdex descend en dessous de 0,85 pendant 10 minutes, le système APM envoie une notification à l’équipe d’astreinte. C’est une approche plus équilibrée que de se fier aux valeurs absolues du temps de réponse, qui peuvent fluctuer selon l’heure de la journée et la charge.
L’APM mobile a ses propres spécificités : l’application s’exécute sur l’appareil de l’utilisateur, qui peut se trouver dans différentes conditions réseau, avoir différentes quantités de mémoire libre et versions d’OS. L’APM mobile doit tenir compte de tous ces facteurs et fournir une ventilation des métriques par modèles d’appareils, versions d’OS, régions et opérateurs réseau.
Les agents APM mobiles collectent les métriques sur l’appareil et les envoient au serveur par lots à des intervalles de 1 à 5 minutes. Cela minimise l’impact sur le trafic de l’utilisateur. En cas de perte de connexion, les données sont sauvegardées dans un cache local et envoyées lors de la connexion suivante. Firebase Performance et Dynatrace Mobile prennent en charge la retransmission automatique en cas de perte réseau.
Des métriques spécifiques s’ajoutent aux métriques APM standard dans le développement mobile : temps de démarrage à froid, FPS lors du défilement, consommation mémoire, fréquence ANR (Android) et nombre de terminaisons watchdog (iOS). New Relic Mobile suit en outre les vues cartographiques, le pourcentage d’utilisation du cache et le temps de rendu de ViewControllers spécifiques.
import NewRelic
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NewRelic.startInteraction(withName: "ProfileView")
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
NewRelic.stopCurrentInteraction()
}
}
Le code Swift crée une trace d’interaction pour l’écran de profil utilisateur. New Relic mesurera automatiquement le temps de chargement des données, le rendu de l’interface utilisateur et toutes les requêtes réseau effectuées pendant l’affichage de cet écran.
Le marché de l’APM compte des dizaines de solutions qui diffèrent par la profondeur de surveillance, le coût et les plateformes supportées. Datadog APM est leader dans l’intégration des métriques, des traces et des journaux dans une interface unique. New Relic offre le traçage le plus détaillé pour les plateformes mobiles. Dynatrace utilise le moteur d’IA Davis pour la détection automatique des causes racines.
| Plateforme | Agent mobile | Traçage distribué | Offre gratuite |
|---|---|---|---|
| Datadog | iOS, Android | Oui | Non |
| New Relic | iOS, Android | Oui | 100 Go/mois |
| Dynatrace | iOS, Android | Oui | 15 jours |
| Grafana | Via OpenTelemetry | Oui | Oui (OSS) |
Le choix de la plateforme APM dépend de la taille de l’équipe, de la pile technologique et du budget. Pour les startups, Firebase Performance combiné avec Grafana pour le backend est optimal. Pour les projets d’entreprise avec des exigences SLA élevées — Datadog ou Dynatrace avec un ensemble complet d’outils d’observabilité et d’analyse des causes racines pilotée par IA.
Foire aux questions
La surveillance classique suit les métriques d’infrastructure : CPU, mémoire, disque. L’APM observe le niveau applicatif : temps d’exécution de transactions spécifiques, requêtes SQL, appels HTTP entre microservices. L’APM peut montrer que le CPU est normal, mais que l’application est lente à cause d’une requête lente vers la base de données.
Pour un seul service, une surveillance standard + des journaux suffisent pour une couverture de base. L’APM devient nécessaire lorsqu’il y a 5 services ou plus et qu’une requête traverse plusieurs d’entre eux dans un seul scéario utilisateur. L’APM fournit la réponse sur quel service spécifique ralentit tout le flux de la requête et où se situe le goulot d’étranglement.
Les agents APM consomment 1–3 % de CPU et 50–200 Mo de mémoire par serveur. Les coûts de licence varient de 15 à 80 dollars par hôte par mois. Le trafic de télémétrie est de 1 à 10 Go par jour par hôte selon l’intensité du traçage. OpenTelemetry + Grafana est une alternative gratuite à l’APM commercial.
Oui, les agents APM mobiles fonctionnent de manière autonome. Ils collectent les métriques sur l’appareil même si l’application n’a pas de côté serveur : temps de démarrage, FPS, crashs, requêtes réseau vers des API tierces. Les données sont envoyées à la plateforme APM lorsque l’appareil se connecte à Internet.
La configuration APM de base (seuils, tableaux de bord, alertes) est définie une fois et ajustée lors des changements d’architecture ou des mises à jour des benchmarks de performance. La configuration de l’agent est mise à jour automatiquement via le panneau de contrôle de la plateforme APM sans nécessité de redistribuer l’application ou de modifier le code.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi