Felsöka autoskalning i Azure

Azure Monitor autoskalning hjälper dig att köra rätt mängd resurser för att hantera belastningen på ditt program. Det gör att du kan lägga till resurser för att hantera ökad belastning och även spara pengar genom att ta bort resurser som är inaktiva. Du kan skala baserat på ett schema, fast datum/tid eller resursmått som du väljer. Mer information finns i Översikt över autoskalning.

Autoskalningstjänsten tillhandahåller mått och loggar för att förstå vilka skalningsåtgärder som har inträffat och utvärderingen av de villkor som ledde till dessa åtgärder. Du hittar svar på frågor som:

  • Varför har min tjänst skalat ut eller in?
  • Varför skalas inte min tjänst?
  • Varför misslyckades en autoskalningsåtgärd?
  • Varför tar en autoskalningsåtgärd tid att skala?

Mått för automatisk skalning

Autoskalning ger dig fyra mått för att förstå hur det fungerar.

  • Observerat måttvärde – Värdet för det mått som du valde att vidta skalningsåtgärden på, som visas eller beräknas av autoskalningsmotorn. Eftersom en enda autoskalningsinställning kan ha flera regler och därför flera måttkällor kan du filtrera med "måttkälla" som en dimension.
  • Tröskelvärde för mått – Det tröskelvärde som du anger för att vidta skalningsåtgärden. Eftersom en enda autoskalningsinställning kan ha flera regler och därför flera måttkällor kan du filtrera med hjälp av "måttregel" som en dimension.
  • Observerad kapacitet – Det aktiva antalet instanser av målresursen som visas av autoskalningsmotorn.
  • Skalningsåtgärder har initierats – Antalet åtgärder för att skala ut och skala in som har initierats av autoskalningsmotorn. Du kan filtrera efter utskalning jämfört med att skala in åtgärder.

Du kan använda Metrics Explorer för att visa måtten ovan på ett och samma ställe. Diagrammet bör visa:

  • det faktiska måttet
  • måttet som visas/beräknas av autoskalningsmotorn
  • tröskelvärdet för en skalningsåtgärd
  • kapacitetsändringen

Exempel 1 – Analysera en enkel autoskalningsregel

Vi har en enkel autoskalningsinställning för en VM-skalningsuppsättning som:

  • skalar ut när den genomsnittliga CPU-procenten för en uppsättning är större än 70 % i 10 minuter
  • skalar in när CPU-procenten för uppsättningen är mindre än 5 % i mer än 10 minuter.

Nu ska vi granska måtten från autoskalningstjänsten.

Screenshot shows a virtual machine scale set percentage CPU example.

Virtual machine scale set percentage CPU example

Bild 1a – Cpu-procentmått för VM-skalningsuppsättning och observerat mått för mått för autoskalning

Metric Threshold and Observed Capacity

Bild 1b – Tröskelvärde för mått och observerad kapacitet

I bild 1b är tröskelvärdet för mått (ljusblå linje) för utskalningsregeln 70. Observerad kapacitet (mörkblå linje) visar antalet aktiva instanser, vilket för närvarande är 3.

Anteckning

Du måste filtrera tröskelvärdet för mått efter regeln för måttutlösare för att visa utskalningströskeln och skalan i regeln (minska).

Exempel 2 – Avancerad automatisk skalning för en VM-skalningsuppsättning

Vi har en autoskalningsinställning som gör att en resurs för VM-skalningsuppsättning kan skalas ut baserat på dess egna mått Utgående flöden. Observera att alternativet divide metric by instance count (Dividera måttet med antal instanser) för måtttröskeln är markerat.

Skalningsåtgärdsregeln är:

Om värdet för Utgående trafik Flow per instans är större än 10 ska tjänsten för autoskalning skala ut med 1 instans.

I det här fallet beräknas autoskalningsmotorns observerade måttvärde som det faktiska måttvärdet dividerat med antalet instanser. Om det observerade måttvärdet är mindre än tröskelvärdet initieras ingen utskalningsåtgärd.

Screenshot shows the Average Outbound Flows page with an example of a virtual machine scale set autoscale metrics charts.

Virtual machine scale set autoscale metrics charts example

Bild 2 – Exempel på måttdiagram för VM-skalningsuppsättning för autoskalning

I bild 2 kan du se två måttdiagram.

Diagrammet längst upp visar det faktiska värdet för måttet Utgående flöden. Det faktiska värdet är 6.

Diagrammet längst ned visar några värden.

  • Det observerade måttvärdet (ljusblå) är 3 eftersom det finns 2 aktiva instanser och 6 dividerat med 2 är 3.
  • Observerad kapacitet (lila) visar antalet instanser som visas av autoskalningsmotorn.
  • Tröskelvärde för mått (ljusgrönt) är inställt på 10.

Om det finns flera skalningsåtgärdsregler kan du använda delning eller alternativet lägg till filter i Metrics Explorer-diagrammet för att titta på mått efter en specifik källa eller regel. Mer information om hur du delar upp ett måttdiagram finns i Avancerade funktioner för måttdiagram – delning

Exempel 3 – Förstå autoskalningshändelser

På skärmen för autoskalningsinställning går du till fliken Körningshistorik för att se de senaste skalningsåtgärderna. På fliken visas även ändringen i Observerad kapacitet över tid. Om du vill ha mer information om alla autoskalningsåtgärder, inklusive åtgärder som att uppdatera/ta bort inställningar för autoskalning, kan du visa aktivitetsloggen och filtrera efter autoskalningsåtgärder.

Autoscale settings run history

Autoskala resursloggar

På samma sätt som andra Azure-resurser tillhandahåller autoskalningstjänsten resursloggar. Det finns två typer av loggar.

  • Autoskalningsutvärderingar – Autoskalningsmotorn registrerar loggposter för varje enskild villkorsutvärdering varje gång den gör en kontroll. Posten innehåller information om de observerade värdena för måtten, de regler som utvärderas och om utvärderingen resulterade i en skalningsåtgärd eller inte.

  • Autoskalningsåtgärder – Motorn registrerar händelser för skalningsåtgärder som initieras av autoskalningstjänsten och resultatet av dessa skalningsåtgärder (lyckat, misslyckat och hur mycket skalning som har skett enligt tjänsten för autoskalning).

Precis som med Azure Monitor tjänster som stöds kan du använda Inställningar för att dirigera loggarna:

  • till Log Analytics-arbetsytan för detaljerad analys
  • för Event Hubs och sedan till verktyg som inte kommer från Azure
  • till ditt Azure Storage-konto för arkivering

Autoscale Diagnostic Settings

Föregående bild visar de diagnostiska Azure Portal för automatisk skalning. Där kan du välja fliken Diagnostik-/resursloggar och aktivera logginsamling och routning. Du kan också utföra samma åtgärd med REST API, CLI, PowerShell och Resource Manager-mallar för Diagnostic Inställningar genom att välja resurstypen Microsoft.Insights /AutoscaleSettings.

Felsöka med hjälp av autoskalningsloggar

För bästa felsökningsupplevelse rekommenderar vi att du dirigerar loggarna Azure Monitor loggar (Log Analytics) via en arbetsyta när du skapar inställningen för autoskalning. Den här processen visas i bilden i föregående avsnitt. Du kan validera utvärderingarna och skalningsåtgärderna bättre med Log Analytics.

När du har konfigurerat att autoskalningsloggarna ska skickas till Log Analytics-arbetsytan kan du köra följande frågor för att kontrollera loggarna.

Kom igång genom att prova den här frågan för att visa de senaste utvärderingsloggarna för autoskalning:

AutoscaleEvaluationsLog
| limit 50

Eller prova följande fråga för att visa de senaste skalningsåtgärdsloggarna:

AutoscaleScaleActionsLog
| limit 50

Använd följande avsnitt för dessa frågor.

Det uppstod en skalningsåtgärd som jag inte förväntade mig

Kör först frågan för skalningsåtgärden för att hitta den skalningsåtgärd som du är intresserad av. Om det är den senaste skalningsåtgärden använder du följande fråga:

AutoscaleScaleActionsLog
| take 1

Välj fältet CorrelationId från loggen för skalningsåtgärder. Använd CorrelationId för att hitta rätt utvärderingslogg. När du kör frågan nedan visas alla regler och villkor som utvärderats, vilket leder till skalningsåtgärden.

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId>"

Vilken profil orsakade en skalningsåtgärd?

En skalad åtgärd har inträffat, men du har överlappande regler och profiler och behöver spåra vad som orsakade åtgärden.

Hitta correlationId för skalningsåtgärden (enligt förklaring i exempel 1) och kör sedan frågan i utvärderingsloggarna för att lära dig mer om profilen.

AutoscaleEvaluationsLog
| where CorrelationId = "<correliationId_Guid>"
| where ProfileSelected == true
| project ProfileEvaluationTime, Profile, ProfileSelected, EvaluationResult

Hela profilutvärderingen kan också tolkas bättre med hjälp av följande fråga

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName contains == "profileEvaluation"
| project OperationName, Profile, ProfileEvaluationTime, ProfileSelected, EvaluationResult

Ingen skalningsåtgärd har inträffat

Jag förväntade mig en skalningsåtgärd och den inträffar inte. Det kanske inte finns några händelser eller loggar för skalningsåtgärder.

Granska måtten för autoskalning om du använder en måttbaserad skalningsregel. Det är möjligt att det observerade måttvärdet eller observerad kapacitet inte är det du förväntade dig att de skulle vara och därför utbrandade inte skalningsregeln. Du skulle fortfarande se utvärderingar, men inte en utskalningsregel. Det är också möjligt att nedskalningstiden behöll en skalningsåtgärd.

Granska utvärderingsloggarna för autoskalning under den tidsperiod som du förväntade dig att skalningsåtgärden skulle ske. Granska alla utvärderingar som den gjorde och varför den valde att inte utlösa en skalningsåtgärd.

AutoscaleEvaluationsLog
| where TimeGenerated > ago(2h)
| where OperationName == "MetricEvaluation" or OperationName == "ScaleRuleEvaluation"
| project OperationName, MetricData, ObservedValue, Threshold, EstimateScaleResult

Skalningsåtgärden misslyckades

Det kan finnas fall där autoskalningstjänsten vidtog skalningsåtgärden, men systemet valde att inte skala eller inte kunde slutföra skalningsåtgärden. Använd den här frågan för att hitta de misslyckade skalningsåtgärderna.

AutoscaleScaleActionsLog
| where ResultType == "Failed"
| project ResultDescription

Skapa aviseringsregler för att meddelas om autoskalningsåtgärder eller fel. Du kan också skapa aviseringsregler för att få aviseringar om autoskalningshändelser.

Schema för automatisk skalning av resursloggar

Mer information finns i Autoskala resursloggar

Nästa steg

Läs information om metodtips för automatisk skalning.