Övervaka hela lösningen
I den här lektionen tittar vi på övervakning av hela lösningen.
Introduktion
För att möjliggöra övervakning i dagens komplexa databehandlingsmiljöer krävs insamling av driftdata från varje lager och komponent i ett distribuerat system. Du behöver djupgående insikter om dessa data och kombinera dem med olika perspektiv för att stödja de många intressenterna i din organisation.
Azure Monitor samlar in data från olika typer av källor, där du kan använda dem för analys, visualisering och aviseringar. Det ger dig djupa insikter om alla dina övervakade resurser och även med data från andra tjänster som lagrar deras data i Azure Monitor.
Log Analytics
Loggar är händelser som inträffat i systemet. Loggar kan innehålla olika typer av data och kan vara strukturerad eller fritext med en tidsstämpel. Loggar kan skapas sporadiskt när händelser i miljön genererar loggposter. Ett system med hög belastning genererar vanligtvis mer loggvolym.
Loggar i Azure Monitor är värdefulla för att identifiera de bakomliggande orsakerna till problem. Data som Azure Monitor-loggar samlar in lagras på en eller flera Log Analytics-arbetsytor. Data hämtas från en Log Analytics-arbetsyta med hjälp av en loggfråga, vilket är en skrivskyddad begäran om att bearbeta data och returnera resultat. Loggfrågor skrivs i Kusto-frågespråk (KQL), vilket är samma frågespråk som Azure Data Explorer använder.
Kommentar
Ditt Azure Spring Apps-exempelprogram har redan konfigurerats med en Log Analytics-arbetsyta. Mer information om KQL-syntax finns i sammanfattningsenheten i slutet av den här utbildningen.
Använda Log Analytics
Det finns faktiskt tre sätt att komma åt programmets loggar: Azure Storage, Azure Events Hub och Log Analytics. Vi fokuserar här på Log Analytics eftersom det är det vanligaste och är integrerat i Azure Spring Apps för måttövervakning.
Viktigt!
Loggdatainmatningstiden i Azure Monitor kan ta upp till 15 minuter. Om data inte hittas i Log Analytics kan det ta ytterligare tid att mata in Azure Spring Apps-loggdata.
Öppna Azure-portalen.
Välj Azure Spring Apps i listan över Azure-tjänster.
Välj din Azure Spring Apps-instans.
Under avsnittet Övervakning väljer du Loggar.
I sökrutan Fråga:
Om du vill visa loggar kör du en fråga som:
AppPlatformLogsforSpring | limit 50Om du vill visa mått anger du en fråga som:
AzureMetrics | limit 50Du kan söka i loggarna för det specifika programmet eller instansen genom att ange ett filtervillkor:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Analysera programloggarna
Programloggar innehåller viktig information och utförliga loggar om programmets hälsa, prestanda med mera. I nästa avsnitt tillhandahåller vi frågor som hjälper dig att förstå programmets aktuella och tidigare tillstånd.
Visa programloggar från Azure Spring Apps
Öppna Azure-portalen.
Välj Azure Spring Apps i listan över Azure-tjänster.
Välj din Azure Spring Apps-instans.
Under avsnittet Övervakning väljer du Loggar.
I sökrutan Fråga:
Om du vill granska en lista över programloggar från Azure Spring Apps, sorterade efter tid med de senaste loggarna som visas först, kör du följande fråga:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | sort by TimeGenerated descOm du vill granska osorterade loggposter som nämner ett fel eller undantag kör du följande fråga:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | where Log contains "error" or Log contains "exception"Om du vill skapa ett cirkeldiagram som visar antalet fel och undantag som loggas av ditt program kör du följande fråga:
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
Databasövervakning
Genom att övervaka data om dina servrar kan du felsöka och optimera för din arbetsbelastning. Azure Database for MySQL innehåller olika mått som ger insikter om serverns beteende.
I Azure Database for MySQL är den långsamma frågeloggen tillgänglig för användare. Åtkomst till transaktionsloggen stöds inte. Du kan använda loggen för långsamma frågor för att identifiera flaskhalsar i prestanda för felsökning.
I vårt exempelprogram konfigureras dina långsamma frågeloggar så att de skickas till Azure Monitor-loggar via diagnostikloggar, och du kan göra ytterligare analyser av dina långsamma frågor. Här följer exempelfrågor som hjälper dig att komma igång/
Viktigt!
MySQL-loggdatainmatningstiden i Azure Monitor kan ta upp till 30 minuter. Om data inte hittas i Log Analytics kan det ta ytterligare tid att mata in MySQL-loggdata.
Logga in på Azure-portalen.
Välj din Azure Database for MySQL-server som du använder för dina Azure Spring Apps.
Under avsnittet Övervakning väljer du Loggar.
I sökrutan Fråga:
Om du vill hämta alla frågor längre än en sekund kör du följande fråga:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_sKör följande fråga för att lista de fem längsta frågorna:
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 5Om du vill sammanfatta långsamma frågor med minsta, högsta, genomsnittliga och standardavvikelsens frågetid kör du följande fråga:
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_sKör följande fråga för att visa den långsamma frågefördelningen på en viss server:
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
Du kan också använda granskningsloggen för att spåra aktiviteter på databasnivå. Det används ofta för efterlevnad av regler. Revisionsloggar är integrerade med Azure Monitor Diagnostic Logs. I ditt exempel har vi aktiverat granskningsloggar på MySQL-servern så att du kan göra ytterligare analys av dina granskade händelser.
Här är en exempelfråga som hämtar den allmänna MySQL-loggen:
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
Gränssnittsövervakning
Om du lägger till Application Insights i sidskriptet får du tidsinställningar för sidinläsningar och AJAX-anrop, antal och information om webbläsarfel och AJAX-fel, även användare och antal sessioner. Du kan segmentera alla dessa mått efter sida, klientoperativsystem och webbläsarversion, geo-plats och andra dimensioner. Du kan ange aviseringar om antal fel eller långsam sidinläsning, och genom att infoga spårningsanrop i JavaScript-koden kan du spåra hur de olika funktionerna i ditt webbsideprogram används.
Du kan använda Application Insights med valfri webbsida. du lägger bara till en kort bit JavaScript. Om din webbtjänst är Java kan du använda SDK:er på serversidan med JavaScript SDK på klientsidan för att få en förståelse för appens prestanda.
Kommentar
Mer information om UI-övervakning finns i sammanfattningsenheten i slutet av den här utbildningen.