Dela via


Prestandaövervakning med Windows Azure Diagnostics-tillägget

Det här dokumentet beskriver de steg som krävs för att konfigurera en samling prestandaräknare via WAD-tillägget (Windows Azure Diagnostics) för Windows-kluster. För Linux-kluster konfigurerar du Log Analytics-agenten för att samla in prestandaräknare för dina noder.

Kommentar

WAD-tillägget bör distribueras i klustret för att de här stegen ska fungera åt dig. Om den inte har konfigurerats går du över till Händelseaggregering och samling med Hjälp av Windows Azure Diagnostics.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Samla in prestandaräknare via WadCfg

Om du vill samla in prestandaräknare via WAD måste du ändra konfigurationen på rätt sätt i klustrets Resource Manager-mall. Följ de här stegen för att lägga till en prestandaräknare som du vill samla in i mallen och köra en Resource Manager-resursuppgradering.

  1. Hitta WAD-konfigurationen i klustrets mall – hitta WadCfg. Du lägger till prestandaräknare att samla in under DiagnosticMonitorConfiguration.

  2. Konfigurera konfigurationen för att samla in prestandaräknare genom att lägga till följande avsnitt i .DiagnosticMonitorConfiguration

    "PerformanceCounters": {
        "scheduledTransferPeriod": "PT1M",
        "PerformanceCounterConfiguration": []
    }
    

    Definierar scheduledTransferPeriod hur ofta värdena för de räknare som samlas in överförs till azure-lagringstabellen och till alla konfigurerade mottagare.

  3. Lägg till de prestandaräknare som du vill samla in till PerformanceCounterConfiguration som deklarerades i föregående steg. Varje räknare som du vill samla in definieras med , counterSpecifiersampleRate, unit, annotationoch alla relevanta sinks.

Här är ett exempel på en konfiguration med räknaren för total processortid (hur lång tid processorn användes för bearbetningsåtgärder) och Service Fabric Actor Method Invocations per sekund, en av service fabric-räknare för anpassade prestanda. Se Reliable Actor Performance Counters och Reliable Service Performance Counters för en fullständig lista över anpassade Prestandaräknare för Service Fabric.

"WadCfg": {
        "DiagnosticMonitorConfiguration": {
          "overallQuotaInMB": "50000",
          "EtwProviders": {
            "EtwEventSourceProviderConfiguration": [
              {
                "provider": "Microsoft-ServiceFabric-Actors",
                "scheduledTransferKeywordFilter": "1",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricReliableActorEventTable"
                }
              },
              {
                "provider": "Microsoft-ServiceFabric-Services",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricReliableServiceEventTable"
                }
              }
            ],
            "EtwManifestProviderConfiguration": [
              {
                "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
                "scheduledTransferLogLevelFilter": "Information",
                "scheduledTransferKeywordFilter": "4611686018427387904",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricSystemEventTable"
                }
              }
            ]
          },
          "PerformanceCounters": {
                "scheduledTransferPeriod": "PT1M",
                "PerformanceCounterConfiguration": [
                    {
                        "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                        "sampleRate": "PT1M",
                        "unit": "Percent",
                        "annotation": [
                        ],
                        "sinks": ""
                    },
                    {
                        "counterSpecifier": "\\Service Fabric Actor Method(*)\\Invocations/Sec",
                        "sampleRate": "PT1M",
                    }
                ]
            }
        }
      },

Exempelfrekvensen för räknaren kan ändras enligt dina behov. Formatet är PT<time><unit>, så om du vill att räknaren ska samlas in varje sekund bör du ange "sampleRate": "PT15S".

Du kan också använda variabler i ARM-mallen för att samla in en matris med prestandaräknare, vilket kan vara praktiskt när du samlar in prestandaräknare per process. I följande exempel samlar vi in processortid och skräpinsamlingstid per process och sedan två prestandaräknare på själva noderna med hjälp av variabler.

"variables": {
  "copy": [
      {
        "name": "processorTimeCounters",
        "count": "[length(parameters('monitoredProcesses'))]",
        "input": {
          "counterSpecifier": "\\Process([parameters('monitoredProcesses')[copyIndex('processorTimeCounters')]])\\% Processor Time",
          "sampleRate": "PT1M",
          "unit": "Percent",
          "sinks": "applicationInsights",
          "annotation": [
            {
              "displayName": "[concat(parameters('monitoredProcesses')[copyIndex('processorTimeCounters')],' Processor Time')]",
              "locale": "en-us"
            }
          ]
        }
      },
      {
        "name": "gcTimeCounters",
        "count": "[length(parameters('monitoredProcesses'))]",
        "input": {
          "counterSpecifier": "\\.NET CLR Memory([parameters('monitoredProcesses')[copyIndex('gcTimeCounters')]])\\% Time in GC",
          "sampleRate": "PT1M",
          "unit": "Percent",
          "sinks": "applicationInsights",
          "annotation": [
            {
              "displayName": "[concat(parameters('monitoredProcesses')[copyIndex('gcTimeCounters')],' Time in GC')]",
              "locale": "en-us"
            }
          ]
        }
      }
    ],
    "machineCounters": [
      {
        "counterSpecifier": "\\Memory\\Available Bytes",
        "sampleRate": "PT1M",
        "unit": "KB",
        "sinks": "applicationInsights",
        "annotation": [
          {
            "displayName": "Memory Available Kb",
            "locale": "en-us"
          }
        ]
      },
      {
        "counterSpecifier": "\\Memory\\% Committed Bytes In Use",
        "sampleRate": "PT15S",
        "unit": "percent",
        "annotation": [
          {
            "displayName": "Memory usage",
            "locale": "en-us"
          }
        ]
      }
    ]
  }
....
"WadCfg": {
    "DiagnosticMonitorConfiguration": {
      "overallQuotaInMB": "50000",
      "Metrics": {
        "metricAggregation": [
          {
            "scheduledTransferPeriod": "PT1M"
          }
        ],
        "resourceId": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', variables('vmNodeTypeApp2Name'))]"
      },
      "PerformanceCounters": {
        "scheduledTransferPeriod": "PT1M",
        "PerformanceCounterConfiguration": "[concat(variables ('processorTimeCounters'), variables('gcTimeCounters'),  variables('machineCounters'))]"
      },
....
  1. När du har lagt till lämpliga prestandaräknare som måste samlas in måste du uppgradera klusterresursen så att dessa ändringar återspeglas i det kluster som körs. Spara din ändrade template.json och öppna PowerShell. Du kan uppgradera klustret med .New-AzResourceGroupDeployment Anropet kräver namnet på resursgruppen, den uppdaterade mallfilen och parameterfilen och uppmanar Resource Manager att göra lämpliga ändringar i de resurser som du uppdaterade. När du har loggat in på ditt konto och har rätt prenumeration använder du följande kommando för att köra uppgraderingen:

    New-AzResourceGroupDeployment -ResourceGroupName <ResourceGroup> -TemplateFile <PathToTemplateFile> -TemplateParameterFile <PathToParametersFile> -Verbose
    
  2. När uppgraderingen är klar (tar mellan 15 och 45 minuter beroende på om det är den första distributionen och storleken på resursgruppen) bör WAD samla in prestandaräknarna och skicka dem till tabellen med namnet WADPerformanceCountersTable i lagringskontot som är associerat med klustret. Se dina prestandaräknare i Application Insights genom att lägga till AI-mottagare i Resource Manager-mallen.

Nästa steg