Application Monitoring est un service de surveillance des performances des applications (APM) proposé dans le cadre d'Application Real-Time Monitoring Service (ARMS). Installez un agent pour surveiller l'état de santé de vos applications, identifier les interfaces lentes ou défaillantes et diagnostiquer les goulets d'étranglement liés aux performances en production, sans modifier votre code.
Instrumentation automatique
Application Monitoring utilise l'instrumentation du bytecode au moment de l'exécution pour fournir des fonctionnalités APM sans aucune modification du code de votre application. Les développeurs n'ont pas besoin d'interagir avec l'agent pendant le développement. Les applications déployées dans des clusters Container Service for Kubernetes (ACK) ou sur des instances Elastic Compute Service (ECS) peuvent utiliser le Integration Center pour injecter automatiquement les agents, ce qui simplifie l'intégration.
Topologie des applications
L'agent détecte automatiquement les dépendances amont et aval entre vos applications. Il capture les traces distribuées via des frameworks RPC (tels que Dubbo) et HTTP (tels que Spring Cloud), puis les affiche sous forme de topologie visuelle des applications. La topologie couvre également les middlewares tels que MySQL, Redis et RocketMQ. Utilisez la topologie des applications pour identifier les goulets d'étranglement en matière de performances et les appels anormaux dans l'ensemble de votre système.
Surveillance des interfaces
Application Monitoring détecte et surveille automatiquement les interfaces HTTP et RPC de votre application. Pour chaque interface, il collecte des métriques telles que le nombre d'appels, le temps de réponse, le nombre d'erreurs et le nombre d'exceptions. Utilisez le tableau de bord de surveillance des interfaces et la vue en cascade des traces pour identifier précisément le composant à l'origine d'un problème de performance dans une trace.
Analyse des traces
Application Monitoring propose des outils d'analyse des traces qui vous permettent de combiner des conditions de filtrage et des dimensions d'agrégation pour analyser les traces en temps réel. Voici quelques cas d'utilisation courants :
Consultez la répartition temporelle des appels lents qui dépassent une durée spécifiée.
Analysez la répartition des requêtes en erreur sur différents hôtes.
Surveillez les variations du trafic provenant de clients ou d'endpoints spécifiques.
Analyse des requêtes SQL lentes
Application Monitoring propose une analyse des requêtes SQL lentes pour les bases de données relationnelles SQL (telles que MySQL et PostgreSQL) et les bases de données NoSQL (telles que Redis et MongoDB). Vous pouvez identifier les instructions SQL présentant une latence élevée, analyser les transactions lentes et retracer les requêtes lentes jusqu'au code applicatif appelant.
Insight intelligent
En cas de pic du temps de réponse ou d'augmentation du taux d'erreur, l'Insight intelligent identifie automatiquement la cause racine. Sans configuration manuelle, l'Insight intelligent analyse les données historiques des applications à l'aide d'algorithmes intégrés pour fournir une analyse des causes racines et des recommandations exploitables. Abonnez-vous aux alertes pour les événements d'Insight intelligent afin de recevoir des notifications proactives.
Profilage continu
Le profilage continu diagnostique l'utilisation du CPU et de la mémoire au niveau du code avec une surcharge de performance minimale. Le profilage continu fournit des ventilations granulaires par nom de méthode, nom de classe et numéro de ligne. Utilisez ces données pour optimiser les chemins critiques, réduire la latence, augmenter le débit et diminuer les coûts liés aux ressources.
Alertes
Application Monitoring propose plus de 50 règles d'alerte prédéfinies couvrant les métriques JVM, les métriques d'hôte et les performances des interfaces. Personnalisez les seuils et combinez les règles selon vos besoins. Via ARMS Alert Management, vous pouvez configurer :
La convergence des alertes pour réduire le bruit lié aux notifications en double
Des notifications multicanaux, notamment via DingTalk, e-mail et webhooks
Des politiques d'escalade pour acheminer les alertes non acquittées
Écosystème open source
Application Monitoring s'intègre à la norme OpenTelemetry, permettant la corrélation des traces distribuées across plusieurs langages de programmation et piles technologiques hétérogènes. Les métriques d'application collectées par Application Monitoring sont stockées dans des instances Managed Service for Prometheus associées à votre compte. Des tableaux de bord Grafana par défaut sont fournis ; vous pouvez également créer des tableaux de bord personnalisés ou effectuer un développement secondaire en utilisant PromQL.
Étapes suivantes
Pour commencer à surveiller votre application, consultez le guide de démarrage rapide correspondant à votre langage de programmation. Par exemple, consultez la rubrique Surveiller une application Java déployée dans un cluster ACK.
Pour afficher les dépendances amont et aval de votre application, consultez la rubrique Dépendances.
Pour configurer les alertes de vos applications, consultez la rubrique Règles d'alerte.