Felsöka autoskalning i Azure Monitor

Med autoskalning i Azure Monitor kan du ha rätt mängd resurser som körs 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, ett fast datum eller ett resursmått som du väljer. Mer information finns i Översikt för autoskala.

Autoskalningstjänsten tillhandahåller mått och loggar som hjälper dig 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 skalats ut eller skalats 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?

Skalningsuppsättningar för virtuella Flex-datorer

Skalningsåtgärder för automatisk skalning fördröjs upp till flera timmar efter att en manuell skalningsåtgärd har tillämpats på en Flex Microsoft.Compute/virtualMachineScaleSets-resurs (VMSS) för en specifik uppsättning virtual machine-åtgärder.
Till exempel borttagning av Azure VM CLI eller Rest API för virtuella Azure-datorer Ta bort där åtgärden utförs på en enskild virtuell dator.

I dessa fall är autoskalningstjänsten inte medveten om de enskilda VM-åtgärderna.

Undvik det här scenariot genom att använda samma åtgärd, men på nivån Vm-skalningsuppsättning. Till exempel Azure VMSS CLI Delete-instans eller Azure VMSS Rest API Delete Instance. Autoskalning identifierar ändringen av antalet instanser i VM-skalningsuppsättningen och utför lämpliga skalningsåtgärder.

Autoskalningsmått

Autoskalning ger dig fyra mått för att förstå dess åtgärd:

  • Observerat måttvärde: Värdet för det mått som du valde att utföra skalningsåtgärden på, vilket visas eller beräknas av autoskalningsmotorn. Eftersom en enskild autoskalningsinställning kan ha flera regler och därför flera måttkällor kan du filtrera med hjälp av "måttkälla" som en dimension.
  • Tröskelvärde för mått: Tröskelvärdet som du anger för att utföra skalningsåtgärden. Eftersom en enskild 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 enligt autoskalningsmotorn.
  • Initierade skalningsåtgärder: Antalet utskalnings- och inskalningsåtgärder som initierats av autoskalningsmotorn. Du kan filtrera efter utskalning jämfört med inskalningsåtgärder.

Du kan använda måttutforskaren för att kartlägga de föregående måtten på ett och samma ställe. Diagrammet bör visa:

  • Verkligt mått.
  • Mått som visas/beräknas av autoskalningsmotorn.
  • Tröskelvärde för en skalningsåtgärd.
  • Kapacitetsändring.

Exempel 1: Analysera en autoskalningsregel

En autoskalningsinställning för en VM-skalningsuppsättning:

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

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

Följande diagram visar ett cpu-mått i procent för en VM-skalningsuppsättning.

Screenshot that shows a virtual machine scale set percentage CPU example.

I nästa diagram visas måttet Observerat måttvärde för en autoskalningsinställning.

Screenshot that shows another virtual machine scale set percentage CPU example.

Det sista diagrammet visar måtttröskel - och observerade kapacitetsmått . Måtttröskelmåttet högst upp för utskalningsregeln är 70. Måttet Firad kapacitet längst ned visar antalet aktiva instanser, som för närvarande är 3.

Screenshot that shows Metric Threshold and Observed Capacity.

Kommentar

Du kan filtrera tröskelvärdet för mått efter regeln för måttutlösningsutskalning (öka) för att se utskalningströskeln och efter inskalningsregeln (minska).

Exempel 2: Avancerad autoskalning för en VM-skalningsuppsättning

Med en autoskalningsinställning kan en vm-skalningsuppsättningsresurs skala ut baserat på ett eget mått för utgående flöden . Alternativet Dividera mått efter instansantal för måtttröskeln är valt.

Skalningsåtgärdsregeln är om värdet för Utgående flöde per instans är större än 10, ska autoskalningstjänsten skalas 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.

Följande skärmbilder visar två måttdiagram.

Diagrammet Avg Outbound Flows visar värdet för måttet Utgående flöden . Det faktiska värdet är 6.

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

Följande diagram visar några värden:

  • Måttet Observerat måttvärde i mitten är 3 eftersom det finns två aktiva instanser och 6 dividerat med 2 är 3.
  • Måttet Firad kapacitet längst ned visar antalet instanser som visas av en autoskalningsmotor.
  • Måtttröskelmåttet högst upp är inställt på 10.Screenshot that shows a virtual machine scale set autoscale metrics charts example.

Om det finns flera skalningsregler kan du använda delning eller alternativet Lägg till filter i diagrammet metrics explorer för att titta på ett mått efter en specifik källa eller regel. Mer information om hur du delar upp ett måttdiagram finns i Avancerade funktioner i 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. Mer information om alla autoskalningsåtgärder, inklusive åtgärder som att uppdatera/ta bort autoskalningsinställningar, finns i aktivitetsloggen och filtrera efter autoskalningsåtgärder.

Screenshot that shows autoscale settings run history.

Autoskalning av resursloggar

Autoskalningstjänsten tillhandahåller resursloggar. Det finns två kategorier 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.
  • Skalningsåtgärder för automatisk skalning: Motorn registrerar skalningsåtgärdshändelser som initierats av autoskalningstjänsten och resultatet av dessa skalningsåtgärder (lyckade, misslyckade och hur mycket skalning som har inträffat enligt autoskalningstjänsten).

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

  • Log Analytics-arbetsytan för detaljerad analys.
  • Azure Event Hubs och sedan till icke-Azure-verktyg.
  • Ditt Azure Storage-konto för arkiv.

Screenshot that shows autoscale diagnostic settings.

Föregående skärmbild visar fönstret Diagnostikinställningar för automatisk skalning i Azure-portalen. Där kan du välja fliken Diagnostik-/resursloggar och aktivera loggsamling och routning. Du kan också utföra samma åtgärd med hjälp av REST-API:et, Azure CLI, PowerShell och Azure Resource Manager-mallarna för diagnostikinställningar genom att välja resurstyp som Microsoft.Insights/Autoskala Inställningar.

Felsöka med hjälp av autoskalningsloggar

För bästa felsökningsupplevelse rekommenderar vi att du dirigerar loggarna till Azure Monitor-loggar (Log Analytics) via en arbetsyta när du skapar autoskalningsinställningen. Den här processen visas i skärmbilden i föregående avsnitt. Du kan verifiera utvärderingarna och skala åtgärderna bättre med hjälp av 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 att besvara dessa frågor.

En skalningsåtgärd inträffade som du inte förväntade dig

Kör först frågan för en skalningsåtgärd för att hitta skalningsåtgärden 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 i CorrelationId skalningsåtgärdernas logg. Använd CorrelationId för att hitta rätt utvärderingslogg. När du kör följande fråga visas alla regler och villkor som utvärderades och ledde 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 måste spåra vilken som orsakade åtgärden.

Hitta skalningsåtgärden CorrelationId , enligt beskrivningen i exempel 1. 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å förstås 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

En skalningsåtgärd inträffade inte

Du förväntade dig en skalningsåtgärd och det inträffade inte. Det kanske inte finns några skalningsåtgärdshändelser eller loggar.

Granska måtten för autoskalning om du använder en måttbaserad skalningsregel. Det är möjligt att värdet för observerat mått eller observerad kapacitet inte är vad du förväntade dig att de skulle vara, så skalningsregeln utlöses inte. Du skulle fortfarande se utvärderingar, men inte en utskalningsregel. Det är också möjligt att nedkylningstiden hindrade en skalningsåtgärd från att inträffa.

Granska utvärderingsloggarna för autoskalning under den tidsperiod då du förväntade dig att skalningsåtgärden skulle inträffa. Granska alla utvärderingar som den gjorde och varför den beslutade 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 ett fall där autoskalningstjänsten utförde skalningsåtgärden, men systemet beslutade att inte skala eller misslyckades med att 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 få meddelanden om autoskalningsåtgärder eller fel. Du kan också skapa aviseringsregler för att få aviseringar om autoskalningshändelser.

Schema för autoskalning av resursloggar

Mer information finns i Autoskala resursloggar.

Nästa steg

Läs information om metodtips för autoskalning.