Utilisation du graphique dynamique

Le graphe dynamique est un modèle de votre application qui capture toutes les dépendances physiques et logiques entre ses composants. Le graphe comprend des composants physiques tels que des hôtes, des systèmes d'exploitation, des machines virtuelles Java (JVM), des nœuds Cassandra et des bases de données MySQL. Le graphe comprend également des composants logiques tels que les traces, les applications, les services, les clusters et les espaces de table. Grâce à la découverte automatique des composants et de leurs dépendances par les agents et les capteurs Instana, le graphe est continuellement mis à jour en temps réel pour refléter l'état actuel.

Le graphe met continuellement à jour les informations relatives à l'état de chaque nœud. Les informations sur l'état comprennent des métriques, des données de configuration et une valeur de santé calculée. La valeur de santé est calculée en utilisant une combinaison de connaissances sémantiques et d'approches d'apprentissage automatique. Instana analyse les dépendances au sein du graphe pour identifier les groupements logiques, tels que les services et les applications. L'identification de groupements logiques permet de mieux comprendre l'impact des problèmes sur ces composantes de niveau supérieur et de déterminer la criticité de ces problèmes. L'ensemble du graphe est persistant et Instana peut aller et venir dans le temps pour utiliser l'ensemble de la base de connaissances du graphe pour de nombreux cas d'utilisation opérationnelle.

En utilisant le graphique dynamique, Instana calcule l'impact des changements et des problèmes sur les applications ou les services. Si l'impact est critique, Instana combine un ensemble de problèmes et de changements corrélés en un incident. Un incident suit l'évolution des problèmes et des changements dans le temps, ce qui permet à Instana de remonter directement à la cause première de l'incident. Les changements sont automatiquement détectés et Instana calcule leur impact sur les nœuds environnants.

Le changement peut se manifester de plusieurs manières :

  • La dégradation de la santé, qui est alors identifiée comme un problème.
  • Modification de la configuration du système.
  • Déploiement, apparition ou disparition d'un nouveau processus, conteneur ou serveur.

Pour illustrer ce concept, considérons une application simple qui utilise une grappe Elasticsearch pour rechercher des produits par le biais d'une interface web. Cet exemple, qui est un microservice unique, montre comment le graphique dynamique modélise les clusters et les dépendances.

Applications dynamiques

Un modèle de graphique dynamique pour un cluster Elasticsearch est développé pour comprendre le fonctionnement du graphique dynamique et les avantages qu'il offre dans des environnements distribués et fluides.

Le modèle commence par un seul nœud Elasticsearch. Le nœud Elasticsearch étant une application Java, le graphique se présente comme suit :

Graphique des nœuds ES

Le graphique montre les composants découverts automatiquement sur l'hôte ainsi que leurs relations. Pour le nœud Elasticsearch, l'agent Instana découvre la JVM, le processus, le conteneur Docker (si le nœud s'exécute dans un conteneur) et l'hôte sur lequel l'agent s'exécute. Si l'application est exécutée dans un environnement en nuage tel qu'Amazon AWS, l'agent Instana découvre sa zone de disponibilité et l'inclut dans le graphique.

Dans le graphique dynamique, chaque composant est représenté par un nœud. Chaque nœud a des propriétés (par exemple, JVM_Version=1.7.21). Instana recueille toutes les mesures pertinentes en temps réel. Les mesures comprennent les statistiques du réseau de l'hôte, les statistiques de collecte des déchets de la JVM et le nombre de documents indexés par le nœud Elasticsearch.

Les connexions entre les nœuds du graphique représentent leurs relations. Dans ce cas, les relations sont des relations de type "runs on". Par exemple, le noeud ES "runs on" (s'exécute sur) la machine virtuelle Java.

Une grappe Elasticsearch se compose de plusieurs nœuds interconnectés pour former la grappe.

Graphique de la grappe ES

Ce graphe comprend un nœud de grappe qui représente l'état et la santé de l'ensemble de la grappe. Il établit des dépendances avec les quatre nœuds Elasticsearch qui constituent le cluster.

L'unité logique de Elasticsearch est l'index. Elasticsearch les clients utilisent l'index pour accéder aux documents. Chaque index est divisé en un ou plusieurs ensembles répartis sur les nœuds ES de la grappe.

Le graphique présente les statistiques et l'état de santé de l'index utilisé par l'application.

Graphique de l'indice ES

Le graphique suivant comprend une application Spring Boot qui accède à l'index Elasticsearch.

Spring Boot graphique

Le capteur Instana Java enregistre les traces distribuées de l'activité de l'application Spring Boot. Grâce à ces traces, Instana sait que l'application Spring Boot accède à un index Elasticsearch. Le graphique dynamique met en corrélation ces traces avec les composants logiques correspondants, ce qui permet de suivre les statistiques et les mesures de santé des différentes traces.

Ce graphique aide à comprendre les différents problèmes de Elasticsearch et montre comment Instana analyse leur impact sur la santé globale du service.

Examinez les problèmes suivants :

  1. Un problème d'E/S sur un seul hôte, qui entraîne des performances de lecture/écriture lentes pour les données d'un index ou d'un groupe de données.
  2. Un nœud Elasticsearch subit une surcharge du pool de threads, ce qui entraîne la mise en file d'attente des requêtes. Ces demandes ne peuvent pas être traitées tant qu'un thread n'est pas disponible pour les traiter.

Incident graphique

Description de l'incident

L'hôte (1) rencontre des problèmes d'E/S. Le système de veille sanitaire affiche l'état de santé de l'hôte en jaune et signale un problème au système de suivi des problèmes. Ensuite, les problèmes d'E/S sur l'hôte (1) se répercutent sur le nœud ES ( Elasticsearch ) (2). Le système de veille sanitaire détecte une dégradation du débit sur ce nœud et le marque en jaune. Le système d'information sur la santé est un autre problème. Instana établit une corrélation entre les deux problèmes et les ajoute à un seul incident. Cet incident n'est pas considéré comme problématique car la santé du cluster est bonne et la qualité du service n'est pas affectée.

Sur un autre nœud ES (3), le pool de threads de traitement des requêtes est surchargé, ce qui entraîne la mise en commun des requêtes. Comme les performances sont gravement affectées par la surcharge du pool de threads, Instana marque le statut du nœud en rouge. Cette surcharge affecte le cluster ES (4), qui devient jaune en raison de la diminution du débit. Les deux problèmes générés sont regroupés dans l'incident initial.

Comme le cluster affecte la performance de l'indice (5), l'indice est marqué en jaune et le problème est ajouté à l'incident. Les performances des transactions de recherche de produits sont maintenant affectées et l'analyse de l'état des performances marque la transaction en jaune (6), ce qui affecte également l'état de l'application (7).

Comme l'application et la transaction sont toutes deux affectées, l'incident a un statut jaune, ce qui indique que les performances de recherche du produit diminuent et que les utilisateurs sont affectés.

Il a mis en évidence les deux causes profondes :

  • Problème d'E/S
  • Problème de piscine à fil

Instana montre l'évolution de l'incident, et l'utilisateur peut explorer les composants au moment de l'incident, y compris l'environnement historique exact et les métriques.

Instana offre les possibilités suivantes :

  • Capacité à combiner les informations physiques, de processus et de traçabilité dans le graphique et à comprendre leurs dépendances.
  • Intelligence pour comprendre l'état de santé des composants individuels, des clusters, des applications et des traces.
  • Analyse d'impact intelligente pour comprendre si un problème est critique ou non.
  • Capacité à montrer la cause profonde d'un problème et à fournir des informations et un contexte exploitables.
  • Possibilité de stocker l'historique du graphique, ses propriétés, ses mesures, ses changements et ses problèmes. Instana offre une fonction de "décalage temporel" pour analyser tout problème avec une vue claire sur l'état et les dépendances de tous les composants.

Trouver la cause première des problèmes dans les environnements modernes devient de plus en plus difficile dans les années à venir. Comme l'illustre cet exemple simple, la résolution de ces problèmes nécessite une compréhension approfondie du contexte, des dépendances et de l'impact. La complexité augmente encore dans les systèmes "liquides" basés sur des microservices qui ajoutent et suppriment des services en permanence et dont les nouvelles versions sont diffusées fréquemment. Instana suit l'état et la santé en temps réel, et comprend l'impact de ces changements ou problèmes, le tout sans configuration manuelle et en temps réel.

Utilisation

Le graphique dynamique est automatiquement créé et mis à jour. Vous pouvez définir certains composants tels que les services, comme décrit dans la configuration des services.

Vous pouvez utiliser la puissante fonctionnalité Dynamic Focus pour la traversée de graphes et le scoping.