Udostępnij za pośrednictwem


Monitorowanie wydajności za pomocą rozszerzenia Diagnostyka Azure systemu Windows

W tym dokumencie opisano kroki wymagane do skonfigurowania zbierania liczników wydajności za pośrednictwem rozszerzenia Windows Diagnostyka Azure (WAD) dla klastrów systemu Windows. W przypadku klastrów systemu Linux skonfiguruj agenta usługi Log Analytics w celu zbierania liczników wydajności dla węzłów.

Uwaga

Rozszerzenie WAD należy wdrożyć w klastrze, aby wykonać te kroki. Jeśli nie jest skonfigurowana, przejdź do opcji Agregacja i zbieranie zdarzeń przy użyciu Diagnostyka Azure systemu Windows.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Zbieranie liczników wydajności za pośrednictwem narzędzia WadCfg

Aby zbierać liczniki wydajności za pośrednictwem wad, należy odpowiednio zmodyfikować konfigurację w szablonie usługi Resource Manager klastra. Wykonaj następujące kroki, aby dodać licznik wydajności, który chcesz zebrać do szablonu i uruchomić uaktualnienie zasobów usługi Resource Manager.

  1. Znajdź konfigurację wad w szablonie klastra — znajdź WadCfg. Dodasz liczniki wydajności do zbierania w obszarze DiagnosticMonitorConfiguration.

  2. Skonfiguruj konfigurację w celu zbierania liczników wydajności, dodając następującą sekcję do elementu DiagnosticMonitorConfiguration.

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

    Określa scheduledTransferPeriod , jak często są przesyłane wartości zebranych liczników do tabeli usługi Azure Storage i do dowolnego skonfigurowanego ujścia.

  3. Dodaj liczniki wydajności, które chcesz zebrać do PerformanceCounterConfiguration zadeklarowanej w poprzednim kroku. Każdy licznik, który chcesz zebrać, jest definiowany za pomocą elementu counterSpecifier, , sampleRateunit, annotationi dowolnego odpowiedniego sinks.

Oto przykład konfiguracji z licznikiem łącznego czasu procesora (ilość czasu użycia procesora przez procesor dla operacji przetwarzania) i wywołania metody aktora usługi Service Fabric na sekundę, jeden z niestandardowych liczników wydajności usługi Service Fabric. Aby uzyskać pełną listę niestandardowych liczników wydajności wydajności usługi Service Fabric, zapoznaj się z tematem Reliable Actor Performance Counters (Liczniki wydajności niezawodnego aktora i liczniki wydajności usługi Reliable Service Service Service).

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

Częstotliwość próbkowania licznika można modyfikować zgodnie z potrzebami. Format to PT<time><unit>, więc jeśli chcesz, aby licznik został zebrany co sekundę, należy ustawić wartość "sampleRate": "PT15S".

Możesz również użyć zmiennych w szablonie usługi ARM, aby zebrać tablicę liczników wydajności, które mogą przydać się podczas zbierania liczników wydajności na proces. W poniższym przykładzie zbieramy czas procesora i czas modułu odśmiecywania pamięci na proces, a następnie dwa liczniki wydajności na samych węzłach przy użyciu zmiennych.

"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. Po dodaniu odpowiednich liczników wydajności, które należy zebrać, należy uaktualnić zasób klastra, aby te zmiany zostały odzwierciedlone w uruchomionym klastrze. Zapisz zmodyfikowane template.json i otwórz program PowerShell. Klaster można uaktualnić przy użyciu polecenia New-AzResourceGroupDeployment. Wywołanie wymaga nazwy grupy zasobów, zaktualizowanego pliku szablonu i pliku parametrów oraz monituje usługę Resource Manager o wprowadzenie odpowiednich zmian w zaktualizowanych zasobach. Po zalogowaniu się do konta i przejściu do właściwej subskrypcji użyj następującego polecenia, aby uruchomić uaktualnienie:

    New-AzResourceGroupDeployment -ResourceGroupName <ResourceGroup> -TemplateFile <PathToTemplateFile> -TemplateParameterFile <PathToParametersFile> -Verbose
    
  2. Po zakończeniu uaktualniania (trwa od 15 do 45 minut w zależności od tego, czy jest to pierwsze wdrożenie i rozmiar grupy zasobów), wad powinien zbierać liczniki wydajności i wysyłać je do tabeli o nazwie WADPerformanceCountersTable na koncie magazynu skojarzonym z klastrem. Zobacz liczniki wydajności w usłudze Application Insights, dodając ujście sztucznej inteligencji do szablonu usługi Resource Manager.

Następne kroki

  • Zbierz więcej liczników wydajności dla klastra. Zobacz Metryki wydajności, aby uzyskać listę liczników, które należy zebrać.
  • Użyj monitorowania i diagnostyki z maszyną wirtualną z systemem Windows i szablonami usługi Azure Resource Manager, aby wprowadzić dalsze modyfikacje w programie WadCfg, w tym skonfigurowanie większej liczby kont magazynu w celu wysyłania danych diagnostycznych.
  • Odwiedź konstruktor WadCfg, aby utworzyć szablon od podstaw i upewnij się, że składnia jest poprawna do utworzenia szablonu od podstaw i upewnij się, że składnia jest poprawna.