Utiliser le 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 graphique comprend des composants physiques tels que les hôtes, les systèmes d'exploitation, les machines virtuelles Java (JVMs) ( Java ), les nœuds Java ( Cassandra ) et les bases de données Java ( MySQL ). Le graphique inclut également des composants logiques tels que des traces, des applications, des services, des clusters et des espaces table. Grâce à la détection automatique des composants et de leurs dépendances par les agents et les capteurs d' Instana, le graphe est mis à jour en continu et en temps réel afin de refléter l'état actuel.
Le graphique met à jour en permanence les informations d'état pour chaque nœud. Les informations d'état comprennent des métriques, des données de configuration et une valeur d'intégrité 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 afin d'identifier des regroupements logiques, tels que des services et des applications. L'identification de regroupements logiques permet de mieux comprendre l'impact des problèmes sur ces composants de niveau supérieur et aide à déterminer la criticité de ces problèmes. L'ensemble du graphe est persistant et l' Instana e peut se déplacer dans le temps pour exploiter l'intégralité de la base de connaissances du graphe dans le cadre de nombreux cas d'utilisation opérationnels.
À l'aide du graphique dynamique, Instana évalue l'impact des modifications et des incidents sur les applications ou les services. Si l'impact est critique, Instana regroupe un ensemble de problèmes et de modifications liés entre eux au sein d'un incident. Un incident permet de suivre l'évolution des problèmes et des changements au fil du temps, ce qui permet à l' Instana e d'identifier directement la cause première de l'incident. Les modifications sont détectées automatiquement et l' Instana e en calcule l'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 unElasticsearch cluster pour rechercher des produits via 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 seulElasticsearch nœud. Comme le nœud « Elasticsearch » est une application de type « Java », le graphique se présente comme suit :

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étecte l'adresse JVM, le processus, le conteneur Docker (si le nœud s'exécute dans un conteneur) et l'hôte sur lequel l'agent est en cours d'exécution. Si l'application s'exécute dans un environnement cloud tel qu'Amazon AWS, l'agent Instana détecte sa zone de disponibilité et l'intègre au graphique.
Dans le graphique dynamique, chaque composant est représenté par un nœud. Chaque nœud possède des propriétés (par exemple, JVM_Version=1.7.21). Instana recueille toutes les métriques pertinentes en temps réel. Ces indicateurs comprennent les statistiques réseau de l'hôte, les statistiques relatives au ramasse-miettes de l' 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.
Un Elasticsearch est constitué de plusieurs nœuds interconnectés pour former le cluster.

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 sur les quatreElasticsearch nœuds qui constituent le cluster.
L'unité logique deElasticsearch est l'indice. Elasticsearch les clients utilisent l'index pour accéder aux documents. Chaque index est divisé en une ou plusieurs partitions réparties sur les nœuds ES du cluster.
Le graphique capture les statistiques et l'état de santé de l'index utilisé par l'application.

Le graphique suivant comprend unSpring Boot application qui accède auElasticsearch indice.

Le capteur Instana Java enregistre les traces distribuées relatives à 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 permet de mieux comprendre les différents problèmes d' Elasticsearch s et montre comment Instana analyse leur impact sur l'état général du service.
Considérez les problèmes suivants :
- Un problème d'E/S sur un seul hôte, qui entraîne des performances de lecture/écriture lentes pour les données de l'index ou de la grappe.
- 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 requêtes ne peuvent pas être traitées tant qu'un thread n'est pas disponible pour les traiter.


L'hôte (1) rencontre des problèmes d'E/S. Le système de renseignement sur l'état de santé affiche l'état de santé de l'hôte en jaune, puis envoie un problème au système de suivi des problèmes. Ensuite, les problèmes d'E/S sur l'hôte (1) impactent l'ES (Elasticsearch ) Nœud (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 de renseignement sur la santé déclenche un autre problème. Instana établit un lien entre les deux problèmes et les regroupe en un seul incident. Cet incident n'est pas marqué 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 le regroupement des requêtes. Comme les performances sont fortement affectées par la surcharge du pool de threads, Instana attribue au nœud un statut « 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 pool de fils
Instana présente l'évolution de l'incident, et l'utilisateur peut explorer en détail les composants présents au moment de l'incident, y compris l'environnement historique exact et les indicateurs de performance.
Instana offre les fonctionnalités suivantes :
- Capacité à combiner des informations physiques, de processus et de trace dans le graphique et à comprendre leurs dépendances.
- Intelligence pour comprendre l’état 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 métriques, ses modifications et ses problèmes. Instana offre une fonctionnalité de « décalage temporel » permettant d'analyser tout problème en ayant une vue d'ensemble claire de l'état et des 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 analyse l'impact de ces changements ou problèmes, le tout sans aucune 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 section « Configuration des services ».
Vous pouvez utiliser la puissante fonctionnalité Dynamic Focus pour parcourir les graphes et définir la portée.