Autoskalning med gästmått i en mall för Linux-skalningsuppsättningar

Det finns två breda typer av mått i Azure som samlas in från virtuella datorer och skalningsuppsättningar: värdmått och gästmått. På en hög nivå, om du vill använda standardmått för CPU, disk och nätverk, passar värdmåtten bra. Men om du behöver ett större urval av mått bör du titta på gästmått.

Värdmått kräver inte ytterligare konfiguration eftersom de samlas in av den virtuella värddatorn, medan gästmått kräver att du installerar Windows Azure Diagnostics-tillägget eller Linux-Azure Diagnostics-tillägget på den virtuella gästdatorn. En vanlig orsak till att använda gästmått i stället för värdmått är att gästmått ger ett större urval av mått än värdmått. Ett sådant exempel är mått för minnesförbrukning, som endast är tillgängliga via gästmått. Värdmått som stöds visas här och vanliga gästmått visas här. Den här artikeln visar hur du ändrar mallen för grundläggande livskraftiga skalningsuppsättningar för att använda regler för automatisk skalning baserat på gästmått för Linux-skalningsuppsättningar.

Ändra malldefinitionen

I en tidigare artikel hade vi skapat en mall för grundläggande skalningsuppsättningar. Vi kommer nu att använda den tidigare mallen och ändra den för att skapa en mall som distribuerar en Linux-skalningsuppsättning med gästmåttbaserad autoskalning.

Lägg först till parametrar för storageAccountName och storageAccountSasToken. Diagnostikagenten lagrar måttdata i en tabell i det här lagringskontot. Från och med Linux Diagnostics Agent version 3.0 stöds inte längre användning av en lagringsåtkomstnyckel. Använd i stället en SAS-token.

     },
     "adminPassword": {
       "type": "securestring"
+    },
+    "storageAccountName": {
+      "type": "string"
+    },
+    "storageAccountSasToken": {
+      "type": "securestring"
     }
   },

Ändra sedan skalningsuppsättningen extensionProfile så att den inkluderar diagnostiktillägget. I den här konfigurationen anger du resurs-ID för skalningsuppsättningen för att samla in mått från, samt lagringskontot och SAS-token som ska användas för att lagra måtten. Ange hur ofta måtten aggregeras (i det här fallet varje minut) och vilka mått som ska spåras (i det här fallet procent använt minne). Mer detaljerad information om den här konfigurationen och andra mått än minnesanvändning i procent finns i den här dokumentationen.

                 }
               }
             ]
+          },
+          "extensionProfile": {
+            "extensions": [
+              {
+                "name": "LinuxDiagnosticExtension",
+                "properties": {
+                  "publisher": "Microsoft.Azure.Diagnostics",
+                  "type": "LinuxDiagnostic",
+                  "typeHandlerVersion": "3.0",
+                  "settings": {
+                    "StorageAccount": "[parameters('storageAccountName')]",
+                    "ladCfg": {
+                      "diagnosticMonitorConfiguration": {
+                        "performanceCounters": {
+                          "sinks": "WADMetricJsonBlob",
+                          "performanceCounterConfiguration": [
+                            {
+                              "unit": "percent",
+                              "type": "builtin",
+                              "class": "memory",
+                              "counter": "percentUsedMemory",
+                              "counterSpecifier": "/builtin/memory/percentUsedMemory",
+                              "condition": "IsAggregate=TRUE"
+                            }
+                          ]
+                        },
+                        "metrics": {
+                          "metricAggregation": [
+                            {
+                              "scheduledTransferPeriod": "PT1M"
+                            }
+                          ],
+                          "resourceId": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]"
+                        }
+                      }
+                    }
+                  },
+                  "protectedSettings": {
+                    "storageAccountName": "[parameters('storageAccountName')]",
+                    "storageAccountSasToken": "[parameters('storageAccountSasToken')]",
+                    "sinksConfig": {
+                      "sink": [
+                        {
+                          "name": "WADMetricJsonBlob",
+                          "type": "JsonBlob"
+                        }
+                      ]
+                    }
+                  }
+                }
+              }
+            ]
           }
         }
       }

Lägg slutligen till en autoscaleSettings resurs för att konfigurera autoskalning baserat på dessa mått. Den här resursen har en dependsOn sats som refererar till skalningsuppsättningen för att säkerställa att skalningsuppsättningen finns innan du försöker skala den automatiskt. Om du väljer ett annat mått att autoskala på använder du konfigurationen counterSpecifier från diagnostiktillägget som metricName i autoskalningskonfigurationen. Mer information om autoskalningskonfiguration finns i metodtipsen för automatisk skalning och referensdokumentationen för REST API för Azure Monitor.

+    },
+    {
+      "type": "Microsoft.Insights/autoscaleSettings",
+      "apiVersion": "2015-04-01",
+      "name": "guestMetricsAutoscale",
+      "location": "[resourceGroup().location]",
+      "dependsOn": [
+        "Microsoft.Compute/virtualMachineScaleSets/myScaleSet"
+      ],
+      "properties": {
+        "name": "guestMetricsAutoscale",
+        "targetResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]",
+        "enabled": true,
+        "profiles": [
+          {
+            "name": "Profile1",
+            "capacity": {
+              "minimum": "1",
+              "maximum": "10",
+              "default": "3"
+            },
+            "rules": [
+              {
+                "metricTrigger": {
+                  "metricName": "/builtin/memory/percentUsedMemory",
+                  "metricNamespace": "",
+                  "metricResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]",
+                  "timeGrain": "PT1M",
+                  "statistic": "Average",
+                  "timeWindow": "PT5M",
+                  "timeAggregation": "Average",
+                  "operator": "GreaterThan",
+                  "threshold": 60
+                },
+                "scaleAction": {
+                  "direction": "Increase",
+                  "type": "ChangeCount",
+                  "value": "1",
+                  "cooldown": "PT1M"
+                }
+              },
+              {
+                "metricTrigger": {
+                  "metricName": "/builtin/memory/percentUsedMemory",
+                  "metricNamespace": "",
+                  "metricResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]",
+                  "timeGrain": "PT1M",
+                  "statistic": "Average",
+                  "timeWindow": "PT5M",
+                  "timeAggregation": "Average",
+                  "operator": "LessThan",
+                  "threshold": 30
+                },
+                "scaleAction": {
+                  "direction": "Decrease",
+                  "type": "ChangeCount",
+                  "value": "1",
+                  "cooldown": "PT1M"
+                }
+              }
+            ]
+          }
+        ]
+      }
     }
   ]
 }

Nästa steg

Du kan distribuera föregående mall genom att följa Azure Resource Manager-dokumentationen.

Du kan starta den här självstudieserien från den grundläggande mallartikeln för skalningsuppsättningar.

Du kan se hur du ändrar mallen för grundläggande skalningsuppsättningar för att distribuera skalningsuppsättningen till ett befintligt virtuellt nätverk.

Du kan se hur du ändrar mallen för grundläggande skalningsuppsättning för att distribuera skalningsuppsättningen med en anpassad avbildning.

Du kan se hur du ändrar mallen för grundläggande skalningsuppsättningar för att distribuera en Linux-skalningsuppsättning med gästbaserad autoskalning.

Mer information om skalningsuppsättningar finns på översiktssidan för skalningsuppsättningar.