Share via


Prestatiebewaking met de Windows Azure Diagnostics-extensie

In dit document worden de stappen beschreven die nodig zijn voor het instellen van een verzameling prestatiemeteritems via de Extensie Windows Azure Diagnostics (WAD) voor Windows-clusters. Voor Linux-clusters stelt u de Log Analytics-agent in om prestatiemeteritems voor uw knooppunten te verzamelen.

Notitie

De WAD-extensie moet worden geïmplementeerd op uw cluster om deze stappen voor u te laten werken. Als deze niet is ingesteld, gaat u naar Gebeurtenisaggregatie en -verzameling met behulp van Windows Azure Diagnostics.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Prestatiemeteritems verzamelen via wadCfg

Als u prestatiemeteritems wilt verzamelen via WAD, moet u de configuratie op de juiste manier wijzigen in de Resource Manager-sjabloon van uw cluster. Volg deze stappen om een prestatiemeteritem toe te voegen dat u wilt verzamelen voor uw sjabloon en een Resource Manager-resource-upgrade uit te voeren.

  1. Zoek de WAD-configuratie in de sjabloon van uw cluster - zoek WadCfg. U voegt prestatiemeteritems toe om te verzamelen onder de DiagnosticMonitorConfiguration.

  2. Stel uw configuratie in om prestatiemeteritems te verzamelen door de volgende sectie toe te voegen aan uw DiagnosticMonitorConfiguration.

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

    Hiermee scheduledTransferPeriod definieert u hoe vaak de waarden van de verzamelde tellers worden overgebracht naar uw Azure-opslagtabel en naar een geconfigureerde sink.

  3. Voeg de prestatiemeteritems toe die u wilt verzamelen aan de PerformanceCounterConfiguration prestatiemeteritems die in de vorige stap zijn gedeclareerd. Elke teller die u wilt verzamelen, wordt gedefinieerd met een counterSpecifier, sampleRate, uniten annotationalle relevante sinksitems.

Hier volgt een voorbeeld van een configuratie met de teller voor de totale processortijd (de hoeveelheid tijd die de CPU in gebruik was voor verwerkingsbewerkingen) en Service Fabric Actor Method Invocations per seconde, een van de aangepaste prestatiemeteritems van Service Fabric. Raadpleeg Reliable Actor Performance Counters and Reliable Service Performance Counters for a full list of Service Fabric custom perf counters.

"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",
                    }
                ]
            }
        }
      },

De steekproeffrequentie voor de teller kan worden gewijzigd op basis van uw behoeften. De notatie is PT<time><unit>, dus als u wilt dat de teller elke seconde wordt verzameld, moet u de "sampleRate": "PT15S".

U kunt ook variabelen in uw ARM-sjabloon gebruiken om een matrix met prestatiemeteritems te verzamelen, wat handig kan zijn wanneer u prestatiemeteritems per proces verzamelt. In het volgende voorbeeld verzamelen we processortijd en garbagecollection-tijd per proces en vervolgens twee prestatiemeteritems op de knooppunten zelf allemaal met behulp van variabelen.

"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. Nadat u de juiste prestatiemeteritems hebt toegevoegd die moeten worden verzameld, moet u de clusterresource bijwerken zodat deze wijzigingen worden doorgevoerd in het actieve cluster. Sla uw gewijzigde versie op template.json en open PowerShell. U kunt uw cluster upgraden met behulp van New-AzResourceGroupDeployment. De aanroep vereist de naam van de resourcegroep, het bijgewerkte sjabloonbestand en het parameterbestand en vraagt Resource Manager om de juiste wijzigingen aan te brengen in de resources die u hebt bijgewerkt. Zodra u bent aangemeld bij uw account en zich in het juiste abonnement bevindt, gebruikt u de volgende opdracht om de upgrade uit te voeren:

    New-AzResourceGroupDeployment -ResourceGroupName <ResourceGroup> -TemplateFile <PathToTemplateFile> -TemplateParameterFile <PathToParametersFile> -Verbose
    
  2. Zodra de upgrade is geïmplementeerd (het duurt 15-45 minuten, afhankelijk van of dit de eerste implementatie en de grootte van uw resourcegroep is), moet WAD de prestatiemeteritems verzamelen en deze verzenden naar de tabel MET de naam WADPerformanceCountersTable in het opslagaccount dat is gekoppeld aan uw cluster. Bekijk uw prestatiemeteritems in Application Insights door de AI-sink toe te voegen aan de Resource Manager-sjabloon.

Volgende stappen