Surveiller l’ensemble de la solution
Dans cette unité, nous examinons le monitoring de l’ensemble de la solution.
Introduction
L’activation du monitoring dans les environnements informatiques complexes actuels nécessite la collecte de données opérationnelles à partir de chaque couche et composant d’un système distribué. Vous avez besoin d’insights approfondis sur ces données et de les regrouper avec différentes perspectives pour prendre en charge la multitude de parties prenantes de votre organisation.
Azure Monitor collecte des données à partir de différents types de sources où vous pouvez les utiliser pour l’analyse, la visualisation et l’alerte. Il vous donne des aperçus détaillés sur toutes vos ressources supervisées et même sur les données provenant d’autres services qui stockent leurs données dans Azure Monitor.
Log Analytics
Les journaux de bord sont des événements qui se sont produits au sein du système. Les journaux peuvent contenir des types de données différents et être structurés ou contenir du texte de forme libre avec un timestamp. Il est possible de les créer de façon sporadique lorsque des événements dans l’environnement génèrent des entrées de journal. Un système sous une charge importante génère normalement plus de volume de journaux.
Les journaux Azure Monitor sont utiles pour identifier les causes racines des problèmes. Les données collectées par les journaux Azure Monitor sont stockées dans un ou plusieurs espaces de travail Log Analytics. Les données sont extraites d’un espace de travail Log Analytics à l’aide d’une requête de journal, qui est une requête en lecture seule visant à traiter les données et à retourner des résultats. Les requêtes de journal sont écrites en KQL (Langage de requête Kusto), le langage de requête qu’Azure Data Explorer utilise.
Remarque
Votre exemple d’application Azure Spring Apps a déjà été configuré avec un espace de travail Log Analytics. Pour plus d’informations sur la syntaxe KQL, consultez l’unité de résumé à la fin de cette formation.
Utiliser Log Analytics
Il existe trois façons d’accéder aux journaux de votre application : Stockage Azure, Azure Events Hub et Log Analytics. Nous allons nous concentrer ici sur Log Analytics, car il est le plus courant et est intégré dans Azure Spring Apps pour le monitoring des métriques.
Important
Le temps d’ingestion des données de journal dans Azure Monitor peut prendre jusqu’à 15 minutes. Si les données sont introuvables dans Log Analytics, il est possible que l’ingestion des données de journal Azure Spring Apps prenne plus de temps.
Ouvrez le portail Azure.
Sélectionnez Azure Spring Apps dans la liste des services Azure.
Sélectionnez votre instance Azure Spring Apps.
Ensuite, sous la section Monitoring, sélectionnez Journaux.
Dans la zone de recherche Requête :
Pour afficher les journaux, exécutez une requête telle que :
AppPlatformLogsforSpring | limit 50Pour afficher les métriques, saisissez une requête telle que :
AzureMetrics | limit 50Vous pouvez rechercher les journaux de l’application ou de l’instance spécifique en définissant une condition de filtre :
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Analyser les journaux d’application
Les journaux d’application fournissent des informations critiques et des journaux d’activité détaillés sur l’intégrité de votre application, ses performances et bien plus encore. Dans la section suivante, nous fournissons des requêtes pour vous aider à comprendre les états actuels et passés de votre application.
Afficher les journaux d’application à partir d’Azure Spring Apps
Ouvrez le portail Azure.
Sélectionnez Azure Spring Apps dans la liste des services Azure.
Sélectionnez votre instance Azure Spring Apps.
Ensuite, sous la section Monitoring, sélectionnez Journaux.
Dans la zone de recherche Requête :
Pour consulter la liste des journaux d’application à partir d’Azure Spring Apps, triés par heure avec les journaux les plus récents affichés en premier, exécutez la requête suivante :
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | sort by TimeGenerated descPour examiner les entrées de journal non triées qui mentionnent une erreur ou une exception, exécutez la requête suivante :
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | where Log contains "error" or Log contains "exception"Pour créer un graphique à secteurs qui affiche le nombre d’erreurs et d’exceptions journalisées par votre application, exécutez la requête suivante :
AppPlatformLogsforSpring | where TimeGenerated > ago(1h) | where Log contains "error" or Log contains "exception" | summarize count_per_app = count() by AppName | sort by count_per_app desc | render piechart
Analyse de base de données
La surveillance des données relatives à vos serveurs vous aide à résoudre les problèmes et à optimiser votre charge de travail. Azure Database pour MySQL propose diverses métriques qui fournissent des insights sur le comportement de votre serveur.
Dans Azure Database pour MySQL, le journal des requêtes lentes est disponible pour les utilisateurs. L’accès au journal des transactions n’est pas pris en charge. Vous pouvez utiliser le journal des requêtes lentes pour identifier les goulots d’étranglement en matière de performances afin de les dépanner.
Dans notre exemple d’application, vos journaux de requêtes lents sont configurés pour être redirigés vers des journaux de Azure Monitor Logs par le biais des journaux de diagnostic et vous pouvez effectuer une analyse plus poussée de vos requêtes lentes. Voici quelques exemples de requêtes pour vous aider à démarrer :
Important
Le temps d'ingestion des données de journal MySQL dans Azure Monitor peut prendre jusqu'à 30 minutes. Si les données ne se trouvent pas dans Log Analytics, le temps nécessaire à l’ingestion des données de journal MySQL peut prendre du temps supplémentaire.
Connectez-vous au portail Azure.
Sélectionnez votre serveur Azure Database pour MySQL que vous utilisez pour votre plateforme Azure Spring Apps.
Ensuite, sous la section Monitoring, sélectionnez Journaux.
Dans la zone de recherche Requête :
Pour récupérer toutes les requêtes de plus d’une seconde, exécutez la requête suivante :
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_sPour répertorier les cinq plus longues requêtes, exécutez la requête suivante :
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | order by query_time_d desc | take 5Pour résumer les requêtes lentes selon le temps de requête minimal, maximal, moyen et d’écart type, exécutez la requête suivante :
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_sPour représenter sous forme de graphique la distribution de requête lente sur un serveur particulier, exécutez la requête suivante :
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m) | render timechart
Vous pouvez également utiliser les journaux d’audit pour suivre l’activité au niveau de la base de données. Ils sont couramment utilisés pour la conformité. Les journaux d’audit sont intégrés aux journaux de diagnostic Azure Monitor. Dans votre exemple, nous avons activé les journaux d’audit sur votre serveur MySQL pour pouvoir effectuer une analyse plus poussée de vos événements audités.
Voici un exemple de requête qui récupère le journal de MySQL général :
AzureDiagnostics | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated desc
Monitoring de l’interface utilisateur
Si vous ajoutez Application Insights à votre script de page, vous obtenez le minutage des chargements de page et des appels AJAX, le nombre d’exceptions du navigateur et d’échecs d’AJAX et leurs détails, ainsi que le nombre d’utilisateurs et de sessions. Vous pouvez segmenter toutes ces métriques par page, par version de système d’exploitation ou de navigateur client, par emplacement géographique et en fonction d’autres aspects. Vous pouvez définir des alertes sur les nombres d’échecs ou de chargement de page lent, et en insérant des suivis des appels dans votre code JavaScript, vous pouvez suivre l’utilisation des différentes fonctionnalités de votre application de page web.
Vous pouvez utiliser Application Insights avec toutes les pages web. Il vous suffit pour cela d’ajouter un court extrait de code JavaScript. Si votre service Web est Java, vous pouvez utiliser les kits SDK côté serveur conjointement au kit SDK JavaScript côté client pour acquérir une compréhension des performances de votre application.
Remarque
Pour plus d’informations sur le monitoring de l’interface utilisateur, consultez l’unité de Résumé à la fin de cette formation.

