Reconnaissance et surveillance automatiques

La détection et la surveillance automatiques permettent une gestion efficace et adaptative des systèmes, ce qui contribue à garantir une couverture complète des composants physiques, logiques et métier dans les applications à grande échelle. Cette approche détecte les anomalies en temps réel afin de minimiser l'impact des pannes. Cette solution de surveillance avancée offre une approche complète et adaptative de la gestion des systèmes, ce qui est essentiel pour garantir la fiabilité et les performances des applications modernes et dynamiques.

Les outils traditionnels de surveillance des performances des applications ( Application Performance Management, APM) vous permettent d'examiner et de mettre en corrélation manuellement les données afin de détecter les goulots d'étranglement et les erreurs dans les environnements de production. Cependant, les outils APM traditionnels sont confrontés à des défis tels que la résolution des problèmes liés à la complexité des grandes échelles et à la nature dynamique des systèmes modernes. Vous devez mettre en corrélation les composants et les indicateurs interdépendants afin d'identifier les problèmes.

Une approche fondée sur l'apprentissage automatique permet d'améliorer considérablement la gestion des systèmes. Pour obtenir des résultats optimaux, cette approche doit s'appuyer sur un modèle de base solide et complet. Les applications en microservices sont constituées de nombreux modules qui évoluent constamment. Vous devez donc bien comprendre tous les modules et leurs dépendances, ce qui nécessite une approche approfondie de l'analyse.

Composants de la détection et de la surveillance automatiques

La détection et la surveillance automatiques couvrent les composants physiques, les composants logiques et les composants métier.

composants physiques

Le tableau suivant présente les composants physiques et leur description :

Composants Description
Centre de données ou zones de disponibilité Ces zones sont réparties sur différents continents et dans différentes régions. Elles peuvent tomber en panne ou avoir des performances différentes.
Hôtes ou machines Qu'il s'agisse d'une solution physique, virtuelle ou fournie sous forme de service. Chaque serveur dispose de ressources, telles que le processeur, la mémoire et les périphériques d'E/S, qui peuvent constituer un goulot d'étranglement. Chaque hôte s'exécute dans une zone.
Conteneurs Il s'exécute sur un hôte et nécessite un planificateur, tel qu' Kubernetes, pour gérer les conteneurs.
Processus S'exécute dans un conteneur ou sur l'hôte. Ces processus peuvent inclure des environnements d'exécution, tels que Java ou PHP, ainsi que des intergiciels, tels que Tomcat, Oracle ou Elasticsearch.
Clusters De nombreux services peuvent fonctionner en tant que groupe ou cluster, de sorte qu'ils apparaissent comme un processus distribué unifié aux yeux du monde extérieur. Le nombre d'instances dans un cluster peut changer et avoir un impact sur les performances du cluster.

Composants logiques

Le tableau suivant présente les composants logiques et leur description :

Composants Description
services Unités logiques de travail pouvant comporter plusieurs instances et différentes versions, qui s'exécutent sur les composants physiques mentionnés précédemment.
Noeuds finaux API publique d'un service permettant de mettre à la disposition du reste du système des commandes spécifiques.
Perspectives d'application ou applications Une vue d'ensemble d'un ensemble de services et de points de terminaison définis par un contexte commun et déclarés à l'aide de balises.
Traces Séquence de communications synchrones et asynchrones entre les services. Les services communiquent entre eux et fournissent un résultat pour une demande d'utilisateur. Le processus de transformation des données dans un flux de données peut impliquer de nombreux services.
Appels Demande entre deux services. Une trace est composée d'un ou plusieurs appels.

Composantes métier

Le tableau suivant présente les composantes métier et leur description :

Composants Description
Services aux entreprises Ensembles de services et d'applications qui apportent une valeur ajoutée et des services uniques à l'entreprise.
Processus métier Ensemble d'étapes techniques qui constituent un processus. Par exemple, cela pourrait correspondre au suivi de l'« achat » dans le commerce électronique, suivi du suivi de la commande dans l'ERP, puis du suivi de la logistique d' FedEx's s lors de la livraison aux clients.

Il est courant que des milliers d'instances de service, dans différentes versions, s'exécutant sur des centaines d'hôtes répartis sur plusieurs zones et continents, fournissent une application à ses utilisateurs. Cela crée un réseau de dépendances entre les composants qui doivent fonctionner parfaitement ensemble afin que la qualité de service de l'application soit assurée et que la valeur métier soit fournie. Un outil de surveillance traditionnel peut alerter lorsqu'un composant unique franchit un seuil. Cependant, la défaillance d'un ou de plusieurs de ces composants ne signifie pas que la qualité de l'application est définitivement affectée. C'est pourquoi les outils de surveillance modernes doivent avoir une vue d'ensemble du réseau de composants et de leurs interdépendances afin de surveiller, d'analyser et de prévoir efficacement la qualité de service.

Identification et répertoriage des modifications

Le nombre de services et de leurs dépendances dans les applications modernes est plus élevé que dans les applications reposant sur une architecture orientée services (SOA), ce qui pose un défi aux outils de surveillance. Le rythme effréné des changements apportés aux applications, dû aux méthodologies de livraison continue, aux outils d'automatisation et aux plateformes de conteneurs, ne fait qu'aggraver le problème. Dans cet environnement dynamique, il n'est pas réaliste de suivre manuellement les changements et de configurer en permanence les outils de surveillance pour les blocs nouvellement déployés.

Pour relever ce défi, une solution de surveillance moderne doit détecter automatiquement et instantanément chaque bloc avant de les analyser et de les comprendre. Cette fonctionnalité permet de garantir que les modifications ultérieures sont enregistrées, ce qui permet de reconstituer un mode à tout moment afin d'enquêter sur des incidents.

Les modifications peuvent se produire dans n'importe quel bloc de construction à n'importe quel moment, comme illustré dans l'image suivante:

Figure 1. Reconnaissance automatique
Modifications

Le processus complet de découverte de Instana

Instana L'APM dynamique s'appuie sur l'architecture d'agents d' Instana, qui utilise des capteurs. Les capteurs sont des programmes compacts et automatisés conçus pour surveiller des entités spécifiques. Un seul agent (un par hôte), déployé sous forme de processus autonome sur l'hôte ou sous forme de conteneur via le planificateur de conteneurs, gère ces capteurs.

L'agent détecte et surveille automatiquement divers composants physiques, tels que AWS zones de disponibilité, Docker conteneurs s'exécutant sur l'hôte ou Kubernetes, ainsi que des processus, tels que HAProxy, Nginx, JVM, Spring Boot, Postgres, Cassandra ou Elasticsearch, et même des clusters de ces processus, comme un cluster Cassandra. Pour chaque composant détecté, l'agent recueille ses données de configuration et commence à surveiller les modifications. Il transmet également toutes les secondes les indicateurs essentiels pour chaque composant. L'agent détecte et utilise automatiquement les indicateurs fournis par les services, tels que JMX ou Dropwizard.

Figure 2. Détection automatique de l'agent
Agent

Par la suite, l'agent injecte des fonctions de traçage dans le code du service. Par exemple, il intercepte les appels HTTP, les appels de base de données et les requêtes à Elasticsearch. L'agent enregistre le contexte de chaque appel, comme les traces de pile ou la charge utile.

Le traitement et l'analyse des données collectées pour les transformer en traces, l'identification des dépendances et des services, ainsi que la détection des anomalies et des problèmes s'effectuent sur le serveur. L'agent est donc compact et peut être déployé sur des milliers d'hôtes.

Instana est conçu pour permettre une détection automatique, immédiate et continue, destinée à la nouvelle génération de solutions de surveillance.

Collecte des données

Instana est une solution de surveillance qui utilise un seul agent doté de plusieurs capteurs et prend en charge plus d'une centaine de technologies. Les capteurs sont automatiquement détectés et surveillés, et les données sont transmises à l'agent. L'agent gère l'ensemble des communications avec le moteur de qualité de service d' Instana. Une fois détecté, les capteurs recueillent des données détaillées sur l'état du composant, adaptées à la technologie concernée. Les détecteurs sont mis à jour, chargés et déchargés par l'agent. Une interface en ligne de commande facultative permet d'accéder à l'état de l'agent, aux capteurs individuels et aux journaux de l'agent. Pour plus d'informations, consultez la section « Configuration et surveillance des technologies prises en charge ».

Le détecteur collecte les données suivantes:

  • Configuration: répertorie les paramètres et les états en cours pour le suivi des modifications.
  • Evénements: reconnaissance initiale, changements d'état (en ligne et hors ligne), événements intégrés qui déclenchent des problèmes ou des incidents en fonction des règles de santé défaillantes sur les entités, et événements personnalisés qui déclenchent des problèmes ou des incidents en fonction des seuils d'une métrique individuelle d'une entité.
  • Traces: capture la trace en fonction de la plateforme du langage de programmation.
  • Métriques: attributs qualitatifs de la technologie qui indiquent les performances.

Les capteurs de Instana effectuent une détection récursive; c'est le cas, par exemple, du capteur « Java Machine », qui remonte la pile pour détecter des frameworks tels que Tomcat ou SpringBoot. Sur la base des informations recueillies, le capteur aide l'agent à charger les capteurs supplémentaires appropriés. De plus, les fonctionnalités d' Instana permettent de traiter et d'analyser les données, d'identifier les dépendances et les services, et de détecter les anomalies et les problèmes survenant sur le serveur. Par conséquent, l'agent est léger et peut être déployé sur des milliers d'hôtes.

Figure 3 Collecte des données
Pipeline

Le backend d' Instana utilise la technologie de streaming, qui permet de traiter des millions d'événements par seconde transmis par les agents. Ce moteur de diffusion en flux est efficace en temps réel et ne prend que 3 secondes pour traiter la situation et l'afficher à l'utilisateur.