مراقبة الأداء باستخدام ملحق Azure Diagnostics Windows

يغطي هذا المستند الخطوات المطلوبة لإعداد مجموعة من عدادات الأداء عبر ملحق تشخيص Windows Azure (WAD) لمجموعات Windows. بالنسبة إلى مجموعات Linux، قم بإعداد وكيل Log Analytics لجمع عدادات الأداء للعقد خاصتك.

ملاحظة

يجب نشر ملحق WAD على مجموعتك حتى تعمل هذه الخطوات من أجلك. إذا لم يتم إعداده، فتوجه إلى تجميع الأحداث وتجميعها باستخدام تشخيصات Windows Azure.

ملاحظة

نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

جمع عدادات الأداء عبر WadCfg

لجمع عدادات الأداء عبر WAD، تحتاج إلى تعديل التكوين بشكل مناسب في قالب إدارة الموارد الخاص بمجموعتك. اتبع هذه الخطوات لإضافة عداد أداء تريد تجميعه إلى القالب خاصتك وتشغيل ترقية مورد Resource Manager.

  1. ابحث عن تكوين WAD في قالب مجموعتك - ابحث عن WadCfg. ستقوم بإضافة عدادات أداء لجمعها تحت DiagnosticMonitorConfiguration.

  2. قم بإعداد التكوين خاصتك لجمع عدادات الأداء عن طريق إضافة القسم التالي إلى DiagnosticMonitorConfiguration.

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

    يحدد scheduledTransferPeriod عدد مرات نقل قيم العدادات التي يتم تجميعها إلى جدول تخزين Azure وإلى أي مصدر تم تكوينه.

  3. أضف عدادات الأداء التي ترغب في جمعها إلى PerformanceCounterConfiguration التي تم الإعلان عنها في الخطوة السابقة. يتم تعريف كل عداد ترغب في جمعه counterSpecifiersampleRateunitannotation وأي sinks ذي صلة.

فيما يلي مثال على تكوين مع العداد لإجمالي وقت المعالج (مقدار الوقت الذي كانت فيه وحدة المعالجة المركزية قيد الاستخدام لعمليات المعالجة) واستدعاءات طريقة ممثل نسيج الخدمة في الثانية، أحد عدادات الأداء المخصصة لنسيج الخدمة. ارجع إلى عدادات أداء الفاعل الموثوق بها وعدادات أداءالخدمة الموثوقة للحصول على قائمة كاملة بعدادات الأداء المخصصة لنسيج الخدمة.

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

يمكن تعديل معدل العينة للعداد وفقاً لاحتياجاتك. التنسيق الخاص به هو PT<time><unit>، لذلك إذا كنت تريد جمع العداد كل ثانية، فيجب عليك تعيين "sampleRate": "PT15S".

يمكنك أيضاً استخدام المتغيرات في قالب ARM لجمع مجموعة من عدادات الأداء، والتي يمكن أن تكون مفيدة عند جمع عدادات الأداء لكل عملية. في المثال أدناه، نقوم بجمع وقت المعالج ووقت جامع المهملات لكل عملية ثم عدادات أداء 2 على العقد نفسها باستخدام المتغيرات.

"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. بمجرد إضافة عدادات الأداء المناسبة التي تحتاج إلى تجميعها، تحتاج إلى ترقية مورد نظام المجموعة بحيث تنعكس هذه التغييرات في نظام المجموعة قيد التشغيل. احفظ PowerShell المعدل template.json وافتحه. يمكنك ترقية مجموعتك باستخدام New-AzResourceGroupDeployment. يتطلب الاستدعاء اسم مجموعة الموارد وملف القالب المحدث وملف المعلمات، وتطالب Resource Manager بإجراء التغييرات المناسبة على الموارد التي قمت بتحديثها. بمجرد تسجيل الدخول إلى حسابك والاشتراك الصحيح، استخدم الأمر التالي لتشغيل الترقية:

    New-AzResourceGroupDeployment -ResourceGroupName <ResourceGroup> -TemplateFile <PathToTemplateFile> -TemplateParameterFile <PathToParametersFile> -Verbose
    
  2. بمجرد انتهاء طرح الترقية (تستغرق ما بين 15 إلى 45 دقيقة اعتماداً على ما إذا كان النشر الأول وحجم مجموعة الموارد خاصتك)، يجب أن تقوم WAD بجمع عدادات الأداء وإرسالها إلى الجدول المسمى WADPerformanceCountersTable في حساب التخزين المقترن بمجموعتك. راجع عدادات الأداء في Insights التطبيق عن طريق إضافة الذكاء الاصطناعي بالوعة إلى قالب Resource Manager.

الخطوات التالية