Elastic Observability : Optimisation des charges de travail avec Universal Profiling
Aperçu
Présentation d'Elastic Observability
Familiarisez-vous avec Elastic Observability et bénéficiez d'un aperçu sur la manière d'ingérer, d'afficher et d'analyser les logs client depuis vos applications à l'aide d'Elastic Cloud. Découvrez comment vous pouvez moderniser les applications et adopter le cloud en toute confiance.
Entrons dans le vif du sujet
Création d'un compte Elastic Cloud
Une fois que vous avez accédé à cloud.elastic.co et créé votre compte, suivez cette vidéo pour découvrir comment lancer votre première suite Elastic dans l'une des régions (plus de 50) prises en charge dans le monde.
Une fois votre déploiement effectué, sélectionnez Optimize my workloads with Universal Profiling (Optimiser mes charges de travail avec Universal Profiling) dans l'onglet Observability.
Vous serez ensuite invité à ajouter vos données pour commencer. Sélectionnez Set up Universal Profiling (Configurer Universal Profiling).
S'il s'agit de la première fois que vous utilisez l'agent Universal Profiling, vous serez invité à le configurer. Pour ce faire, suivez les instructions suivantes.
Vous trouverez ci-dessous un exemple d'exécution des commandes susmentionnées dans le cluster Microsoft Azure AKS.
Lorsque vous commencez à collecter des données, accédez à Stacktraces (Traces d'appels) sous Universal Profiling dans le menu de gauche. L'affichage des traces d'appels permet de voir ce qui est le plus chronophage. Passez votre souris sur le graphique pour afficher le modèle en forme de vague correspondant aux threads individuels.
La vue des traces d'appels montre les graphiques de traces d'appels regroupés par thread, hôte, déploiement Kubernetes et conteneur. Elle peut être utilisée pour détecter des pics inattendus d'utilisation du CPU entre les différents threads et s'intéresser de plus près à une période de temps plus courte afin d'approfondir l'analyse à l'aide d'un graphique en flamme.
L'affichage des données prend environ 3 minutes. Consultez cet article de blog pour en savoir plus sur la lecture des traces d'appels.
Utilisation d'Elastic Observability
Analysez les graphiques en flamme
Accédez aux Flamegraphs (Graphiques en flamme) sous Universal Profiling dans le menu de gauche. Le profilage va de pair avec les graphiques en flamme. Il représente, de gauche à droite, le code le plus coûteux ou la fonction la plus onéreuse.
Vous passerez sans doute la majorité de votre temps sur la page Flamegraph (Graphique en flamme), en particulier lors du débogage et de l'optimisation. Nous vous recommandons de consulter cet article de blog pour l'identification de problèmes et les opportunités d'optimisation avec les graphiques en flamme. Les trois éléments/conditions clés auxquels faire attention sont la largeur, la hiérarchie et la hauteur.
- Parcourez rapidement le graphique de gauche à droite en vous concentrant sur la largeur pour les fonctions gourmandes en CPU.
- Parcourez le graphique verticalement pour examiner la pile et détecter les problèmes.
- Recherchez les piles très hautes pour identifier les problèmes éventuels dans le code.
Pour commencer l'exploration, nous vous recommandons de la limiter à un thread, un hôte, un déploiement ou un conteneur spécifique. Pour ce faire, saisissez-la dans la barre de recherche.
REMARQUE : Elastic Universal Profiling est la seule solution de profilage continu du marché. Elle offre une visibilité linguistique mixte, du noyau au code natif en passant par les langages de programmation de haut niveau, sans nécessiter l'apposition de symboles de débogage sur l'hôte.
Lors de l'analyse du graphique, tenez compte du fait que plus une ligne est longue, plus elle prendra du temps CPU. Un panneau comportant plus d'informations s'affiche si vous sélectionnez l'une des lignes. La ligne Fonction correspond à la ligne de code qui a été exécutée à un moment donné. D'autres informations clés, telles que le CPU total, les émissions de CO2 annualisées et le coût en dollars annualisé sont également affichées.
Comparer le code avant et après modification
Grâce aux différents graphiques en flamme, vous pouvez comparer le code avant et après les modifications, pour ensuite passer à la mise en production. La couleur bleu sarcelle représente l'amélioration et le rouge la régression.
La capture d'écran ci-dessous montre, de par sa couleur, que le conteneur optimisé s'est amélioré.
Cliquez sur la flèche déroulante située en regard de Gained overall performance (Gain de performances global) pour afficher les valeurs des améliorations globales.
Cliquez ensuite sur l'icône Swap sides (Changer de vue), située entre les conteneurs comparés et représentant deux flèches pointant dans des directions opposées, pour revenir au code du conteneur antérieur à l'optimisation. Il en ressort une régression.
Cliquez sur la flèche déroulante située en regard de Loss overall performance (Perte de performances globale) pour afficher les valeurs de régression globales.
Sélectionnez Go to monitor (Accéder au moniteur) pour obtenir immédiatement des informations détaillées. Les graphiques s'afficheront une fois que plusieurs tests auront été réalisés. En attendant, vous pouvez voir la disponibilité des tests, leur durée d'exécution et leur calendrier. Vous pouvez aussi analyser le graphique en cascade. Pour ce faire, cliquez sur l'icône située en dessous de l'option View test run (Afficher le test).
Étapes suivantes
Nous vous remercions de prendre le temps de collecter et d'analyser les logs avec Elastic Cloud. Si vous êtes novice avec Elastic, profitez de notre essai gratuit de 14 jours.
Également, lorsque vous commencerez avec Elastic, vous comprendrez certains éléments opérationnels, de sécurité et de données que vous devrez gérer en tant qu'utilisateur lors du déploiement dans votre environnement.
Ressources d'observabilité
- Explorez la galerie de démonstration sur l'observabilité
- Commencez à collecter et à analyser vos logs
- Commencez à monitorer les performances de votre application (APM/suivi)
- Commencez à monitorer vos hôtes
- Commencez à monitorer les clusters Kubernetes
- Commencez à créer un moniteur synthétique