Comment fonctionne l’observabilité automatisée chez Dynatrace ?
Dynatrace propose une plateforme d'observabilité automatisée qui repose principalement sur le moteur d'intelligence artificielle Davis AI. Dans cet article nous expliquons les tenants et aboutissants des trois briques essentielles de cette plateforme propriétaire.
Dynatrace est une plateforme dédiée à l’observabilité des applications, des infrastructures et des règles métiers. Contrairement à certains de ces concurrents, l’éditeur a automatisé ce processus à l’aide d’un « moteur d’intelligence artificielle » nommé Davis AI. Contrairement à d’autres outils qui dépendent sur une intégration plus ou moins manuel des métriques, des logs, des traces, Dynatrace automatise l’indexation de ces informations, détecte les interdépendances, les anomalies et indique les causes profondes d’un problème.
Dans cet article, nous tentons d’expliquer le fonctionnement de Davis AI et les composants sur lesquels repose ce moteur. Nous souhaitons également clarifier le positionnement de Dynatrace en ce qui concerne l’explicabilité de son produit.
Si l’éditeur met principalement en avant Davis, il ne s’agit que d’une couche nécessaire à l’observabilité automatisée façon Dynatrace.
OneAgent : indexer automatiquement les métriques, les logs et les traces
Avant d’obtenir des réponses automatisées, il faut ingérer les données, les métriques, les logs, et les APM et les métadonnées convertis dans un format propriétaire. Comme d’autres acteurs, l’éditeur a mis en place un outil d’indexation automatique nommé OneAgent.
Cette sorte de sonde détecte l’ensemble les éléments nécessaires au suivi des microservices, hôtes et autres éléments au sein d’une infrastructure. La promesse de Dynatrace, c’est qu’elle traverse l’ensemble des piles technologiques et qu’elle compare les résultats avec des métriques de référence statuée par Dynatrace. Les données les plus pertinentes sont remontées dans la plateforme. Précisons que cette technologie propriétaire dépend de modules que l’éditeur doit développer pour chaque version d’un produit.
Malgré la promesse, l’indexation automatique a des limites. En cas de problème, OneAgent ne peut pas être paramétré par les utilisateurs. Ils doivent faire appel au support de Dynatrace en postant un ticket. Si ce service est inclus dans la licence, celui-ci n’est pas le plus réactif selon les avis postés sur TrustRadius et Gartner Peer Insights.
Par ailleurs, il faut bien comprendre que les modules de OneAgent augmentent la consommation de mémoire vive d’un processus ou d’une application. Dynatrace recommande d’allouer un budget additionnel pour 200 Mo par processus applicatif suivi. De manière empirique, l’éditeur constate que l’augmentation ne dépasse pas les 100 Mo de RAM.
Certains processus, notamment ceux liés à Kubernetes dépendent d’une limite d’utilisation de la mémoire vive. Si une application dépasse la RAM allouée, elle est automatiquement mise hors service. Il faut donc augmenter le seuil de mémoire vive disponible en conséquence.
Or, la consommation en RAM du OneAgent dépend des technologies surveillées, des paramètres associées et des applications elles-mêmes. Autrement dit, l’outil ne peut pas être directement mis en production avant des tests approfondis. Par exemple, le framework .NET consomme deux fois plus de RAM au démarrage auquel il faut ajouter la mémoire consommée par OneAgent. Précisons que Dynatrace collecte une centaine de métriques par hôte.
Afin de limiter ce phénomène, il est possible de gérer le trafic de traces et métriques récoltées par OneAgent. Cette tâche revient à la technologie PurePath qui permet par la suite de filtrer les résultats et de faciliter les analyses manuelles. Par défaut, PurePath reçoit 1000 traces distribuées par processus à la minute. Il est possible de diminuer ce ratio à 500 ou à 100.
Pour les éléments qui ne sont pas pris en compte, Dynatrace propose à ses clients d’ajouter manuellement les métriques qui ne sont pas pris en compte automatiquement. Ces données sont stockées dans ce qui semble être une base de données orientées graphes. Suivant le type d’installation et suivant les dires des clients, cette étape durerait 10 minutes à 2 heures.
Smartscape : visualiser les interdépendances entre les services
Cette indexation automatique sert à visualiser les données au sein du tableau de bord fourni par l’éditeur, mais doit également permettre de déclencher Smartscape. Cet outil repose sur une visualisation automatisée des interdépendances topologiques entres les composants d’une infrastructure.
Pour ce faire, les ingénieurs de Dynatrace ont conçu un algorithme sémantique capable d’identifier les relations entre les indicateurs remontés par OneAgent. Pour cela, l’algorithme « traverse » les stacks applicatives verticalement, puis horizontalement. Quand l’algorithme découvre un microservice, il va d’abord chercher le cluster et l’hôte dont il dépend, avant de s’attarder au lien qu’il entretient avec d’autres objets ou microservices et avant de recommencer la procédure de découverte.
Le tout est représenté sous la forme d’un graphique. Plus l’infrastructure est complexe, plus il est difficile de comprendre les relations entre infrastructure, microservices et applications. Pour faciliter la compréhension, Dynatrace propose une séparation automatique des éléments par couche d’infrastructure (IaaS, PaaS, microservices, applications, etc.).
L’éditeur propose un système entier de signalétique. Quand cela est possible, Dynatrace affiche les logos des services associés aux éléments déployés. Les composants défectueux sont signalés en rouge, tandis que les liens d’interdépendances sont affichés en violet. Un chiffre indique les composants à problème. Une barre de recherche associée à PurePath permet de rechercher des composants.
S’il n’y a pas eu de requêtes entre deux services pendant deux heures, cette inactivité est représentée par un ligne en pointillée. Si cela fait plus de 72 heures, la connexion n’est plus affichée.
Précisons que Smartscape affiche les données des 72 dernières heures (intervalle du rafraîchissement : 1 heure), une période qui ne peut pas être ajustée à l'aide du sélecteur de période globale, contrairement au tableau de bord qui représente la santé des services surveillés à l’aide de Dynatrace (pour les données d’il y a moins de 2 heures, l’intervalle de rafraîchissement est d’une minute).
Davis AI : automatiser l’observabilité
Développée depuis 6 ans, la technologie Davis AI repose sur une approche déterministe. Les équipes de Dynatrace assurent que cette technologie ne s’appuie pas sur des algorithmes de machine learning, mais sur un « moteur de causalité », un arbre de défaillances (une technique utilisée depuis des années par la NASA). La dizaine d’algorithmes associés à cet outil doivent corréler les événements qui « partagent la même cause profonde », selon la documentation technique fournie par l’éditeur.
Cette approche consiste à prendre en compte le contexte des alertes afin de définir un problème. À la détection d’un problème, Davis va remonter repérer les liens de cause à effet des erreurs subies par les utilisateurs jusqu’à identifier la source du problème. Dynatrace affirme qu’il est possible de détecter les erreurs de code, mais également déterminer l’impact des problèmes identifiés sur une application et sur les ressources nécessaires à son fonctionnement (CPU, RAM, VM…).
L’éditeur a « nourri » son moteur pour qu’il détecte 80 événements comme des crash, des changements d’état dans le déploiement, etc. Davis analyse, corrèle et rapporte les problèmes de disponibilité, les erreurs, les ralentissements, le manque de ressource, des informations et des alertes personnalisées. Il est possible de déterminer l’intervalle entre deux alertes, la sensibilité de la détection d’anomalies.
Attention toutefois, Davis met 5 à 15 minutes avant de trouver la cause profonde d’un problème et a besoin de 7 jours d’historique de données avant d’être véritablement opérationnel. Quand une défaillance profonde est repérée, il est possible de rejouer les liens de causalité entre les événements détectés par le moteur Davis et de bénéficier d’actions recommandées pour y remédier. C’est ce pourquoi Dynatrace considère qu’il bénéficie d’un bon niveau d’explicabilité.
Entre explicabilité et transparence, il faut choisir avec Dynatrace
Cependant, l’éditeur se veut plutôt conservateur et n’explique pas précisément quels types d’algorithmes fonctionnent en arrière-plan pour détecter les problèmes. « Nous pouvons parler pendant des heures des technologies qui régissent Davis, mais cela ne veut pas dire qu’ils sont explicables […] Vous ne voulez pas comprendre les détails du fonctionnement des algorithmes, mais ce qu’il s’est passé dans votre système et comment ces technologies peuvent vous aider à remédier les problèmes », considère Alois Reitbauer, Chief Technical Strategist chez Dynatrace.
Alois Reitbauer fait ainsi une différence entre explicabilité et transparence de l’IA. Il voit cela comme deux choses différentes qu’il ne veut pas imposer aux clients.
Cet argument, apprécié par des éditeurs comme SAP ou Salesforce, tend à prouver que Dynatrace, malgré le fait qu’il ait un pied dans l’open source avec l’outil d’auto-remédiation Keptn, dépend d’une vision propriétaire. Cela peut mener à une forme d’enfermement.
Le fait de dépendre des plugins dédiés et du support en cas de problème de l’outil d’observabilité est à prendre en compte au moment du choix de la solution de Dynatrace. Enfin, l’outil sied davantage aux infrastructures cloud qu’aux installations sur site. Les utilisateurs mentionnent que cela demande davantage de configuration pour collecter les données de systèmes plus anciens.