استيعاب المقاييس المخصصة لمورد Azure باستخدام واجهة برمجة تطبيقات REST

توضح هذه المقالة كيفية إرسال مقاييس مخصصة لموارد Azure إلى مخزن مقاييس Azure Monitor عبر واجهة برمجة تطبيقات REST. عندما تكون المقاييس في Azure Monitor، يمكنك القيام بجميع الأشياء معها التي تقوم بها باستخدام المقاييس القياسية. على سبيل المثال، يمكنك إنشاء مخططات وتنبيهات وتوجيه المقاييس إلى أدوات خارجية أخرى.

إشعار

تسمح واجهة برمجة تطبيقات REST* فقط بإرسال مقاييس مخصصة لموارد Azure. لإرسال مقاييس للموارد في بيئات أخرى أو في أماكن العمل، استخدم Application Insights.

إرسال طلبات REST لاستيعاب المقاييس المخصصة

عند إرسال مقاييس مخصصة إلى Azure Monitor، يجب أن تتضمن كل نقطة بيانات أو قيمة تم الإبلاغ عنها في المقاييس المعلومات التالية.

المصادقة

لإرسال مقاييس مخصصة إلى Azure Monitor، يحتاج الكيان الذي يرسل المقياس إلى رمز مميز صالح ل Microsoft Entra في رأس Bearer للطلب. تتضمن الطرق المعتمدة للحصول على رمز مميز للحامل صالح ما يلي:

  • الهويات المُدارة لموارد Azure. يمكنك استخدام هوية مُدارة لمنح أذونات الموارد لتنفيذ عمليات معينة. مثال على ذلك هو السماح للمورد بإصدار مقاييس عن نفسه. يمكن منح مورد أو هويته المدارة مقاييس مراقبة الناشر أذونات على مورد آخر. مع هذا الإذن، يمكن أيضا أن تنبعث من الهوية المدارة مقاييس للموارد الأخرى.

  • كيان خدمة Microsoft Entra. في هذا السيناريو، يمكن تعيين أذونات لتطبيق أو خدمة Microsoft Entra لإصدار مقاييس حول مورد Azure. لمصادقة الطلب، يتحقق Azure Monitor من صحة الرمز المميز للتطبيق باستخدام المفاتيح العامة ل Microsoft Entra. تم منح دور مقاييس مراقبة الناشر الحالي هذا الإذن بالفعل. وهي متوفرة في مدخل Azure.

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

تلميح

عند طلب رمز Microsoft Entra المميز لإرسال مقاييس مخصصة، تأكد من أن الجمهور أو المورد المطلوب الرمز المميز له هو https://monitoring.azure.com/. تأكد من تضمين شرطة مائلة لاحقة.

الحصول على التخويل للرمز المميز

بمجرد إنشاء الهوية المدارة أو كيان الخدمة وتعيين أذونات Monitoring Metrics Publisher ، يمكنك الحصول على رمز مميز للتخويل باستخدام الطلب التالي:

curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://monitoring.azure.com'

يظهر نص الاستجابة بالتنسيق التالي:

{
    "token_type": "Bearer",
    "expires_in": "86399",
    "ext_expires_in": "86399",
    "expires_on": "1672826207",
    "not_before": "1672739507",
    "resource": "https://monitoring.azure.com",
    "access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}

احفظ الرمز المميز للوصول من الاستجابة للاستخدام في طلبات HTTP التالية.

الموضوع

تسجل خاصية الموضوع معرّف المورد Azure الذي تم الإبلاغ عن المقياس المخصص له. يتم ترميز هذه المعلومات في عنوان URL لاستدعاء واجهة برمجة التطبيقات. يمكن لكل واجهة برمجة تطبيقات إرسال قيم قياس لمورد Azure واحد فقط.

إشعار

لا يمكنك إرسال مقاييس مخصصة مقابل معرف المورد لمجموعة موارد أو اشتراك.

المنطقة

تسجل خاصية المنطقة منطقة Azure حيث يتم نشر المورد الذي ترسل مقاييس له. يجب أن يتم إرسال المقاييس إلى نفس نقطة النهاية الإقليمية في Azure Monitor مثل المنطقة التي يتم نشر المورد فيها. على سبيل المثال، يجب إرسال مقاييس مخصصة لجهاز ظاهري تم نشره في غرب الولايات المتحدة إلى نقطة نهاية Azure Monitor الإقليمية WestUS. يتم ترميز معلومات المنطقة أيضاً في عنوان URL لاستدعاء API.

الطابع الزمني

يجب وضع علامة على كل نقطة بيانات يتم إرسالها إلى Azure Monitor بعلامة طابع زمني. يسجل هذا الطابع الزمني التاريخ والوقت الذي يتم فيه قياس المقاييس أو تجميعها. يقبل Azure Monitor بيانات القياس باستخدام الطوابع الزمنية التي يصل مدتها إلى 20 دقيقة في الماضي و5 دقائق في المستقبل. يجب أن يكون الطابع الزمني بتنسيق ISO 8601.

مساحة الاسم

مساحات الأسماء هي طريقة لتصنيف أو تجميع مقاييس مشابهة معاً. باستخدام مساحات الأسماء، يمكنك تحقيق عزلة بين مجموعات المقاييس التي قد تجمع تفاصيل أو مؤشرات أداء مختلفة. على سبيل المثال، قد يكون لديك مساحة اسم تسمى contosomemorymetrics التي تتتبع المقاييس التي تستخدم الذاكرة التي تحلل ملف تعريف التطبيق الخاص بك. قد تتتبع مساحة اسم أخرى تسمى contosoapptransaction جميع المقاييس حول معاملات المستخدم في التطبيق الخاص بك.

الاسم

خاصية الاسم هي اسم المقياس الذي يتم الإبلاغ عنه. عادةَ، يكون الاسم وصفياَ بما يكفي للمساعدة في تحديد ما يتم قياسه. مثال على ذلك هو المقياس الذي يقيس عدد وحدات البايت للذاكرة المستخدمة على جهاز ظاهري. قد يكون لها اسم قياسي مثل وحدات بايت الذاكرة قيد الاستخدام.

مفاتيح الأبعاد

البعد هو زوج مفتاح/قيمة يساعد في وصف الخصائص الإضافية حول المقياس الذي يتم تجميعه. باستخدام الخصائص الإضافية، يمكنك جمع المزيد من المعلومات حول المقياس، والذي يوفر لك معرفة تفاصيل أعمق.

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

الأبعاد اختيارية، ولا تتوفر أبعاد لجميع المقاييس. يمكن أن يمتلك المقياس المخصص ما يصل إلى 10 أبعاد.

قيم الأبعاد

عند الإبلاغ عن نقطة بيانات للقياس، لكل مفتاح بعد في المقياس الذي تم الإبلاغ عنه، توجد قيمة بعد مطابقة. على سبيل المثال، قد تحتاج إلى تقرير الذاكرة التي يستخدمها ContosoApp على الجهاز الظاهري الخاص بك:

  • سيكون اسم المقياس وحدات بايت الذاكرة قيد الاستخدام.
  • سيكون مفتاح البعد هو عملية.
  • ستكون قيمة البُعد هي ContosoApp.exe.

عند نشر قيمة مقياس يمكنك تحديد قيمة بعد واحدة فقط لكل مفتاح بعد. إذا قمت بتجميع نفس استخدام الذاكرة لعمليات متعددة على الجهاز الظاهري، يمكنك الإبلاغ عن قيم قياس متعددة لهذا الطابع الزمني. تحدد كل قيمة مقياس قيمة بعد مختلفة لمفتاح بعد العملية.

على الرغم من أن الأبعاد اختيارية، إذا كان نشر المقياس يحدد مفاتيح الأبعاد، فإن قيم الأبعاد المقابلة إلزامية.

قيم القياس

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

للحد من عدد القيم الأولية التي يتعين عليك إصدارها والدفع مقابلها في Azure Monitor، قم بتجميع القيم المجمعة وإرسالها مسبقا محليا:

  • الحد الأدنى: الحد الأدنى للقيمة المُلاحظة من جميع العينات والقياسات خلال الدقيقة.
  • الحد الأقصى: الحد الأقصى للقيمة المُلاحظة من جميع العينات والقياسات خلال الدقيقة.
  • المجموع: إجمالي القيمة المُلاحظة من جميع العينات والقياسات خلال الدقيقة.
  • العدد: عدد العينات والقياسات التي تم أخذها خلال الدقيقة.

إشعار

لا يدعم Azure Monitor تعريف الوحدات لمقياس مخصص.

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

الحركة 1 الحركة 2 المعاملة 3 المعاملة 4
7 مللي ثانية 4 مللي ثانية 13 مللي ثانية 16 مللي ثانية

ثم سيكون المنشور الخاص بالمقياس الناتج إلى Azure Monitor كما يلي:

  • الحد الأدنى: 4
  • الحد الأقصى: 16
  • المجموع: 40
  • العدد: 4

إذا كان التطبيق الخاص بك لا يمكن تجميعه محلياً بشكل مسبق ويحتاج إلى إرسال كل عينة منفصلة أو حدث فوراً عند التجميع، يمكنك إرسال قيم القياس الصريح. على سبيل المثال، في كل مرة تحدث فيها عملية تسجيل دخول على التطبيق، تنشر مقياس إلى Azure Monitor باستخدام قياس واحد فقط. لذلك بالنسبة لعملية تسجيل الدخول التي استغرقت مدة 12 مللي ثانية، سيكون منشور القياس كما يلي:

  • الحد الأدنى: 12
  • الحد الأقصى: 12
  • المجموع: 12
  • العدد: 1

باستخدام هذه العملية، يمكنك إرسال قيم متعددة لنفس تركيبة القياس/البعد خلال دقيقة معينة. ثم يأخذ Azure Monitor جميع القيم الصريحة التي تم إرسالها لمدة دقيقة معينة ويقوم بتجميعها.

نموذج منشور مقياس مخصص

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

قم بتخزين JSON التالي في ملف يسمى custommetric.json على الكمبيوتر المحلي. قم بتحديث معلمة الوقت بحيث تكون في غضون آخر 20 دقيقة. لا يمكنك وضع مقياس في المتجر يزيد عمره عن 20 دقيقة.

{
    "time": "2024-01-07T11:25:20-7:00",
    "data": {

      "baseData": {

        "metric": "Memory Bytes in Use",
        "namespace": "Memory Profile",
        "dimNames": [
          "Process"
        ],
        "series": [
          {
            "dimValues": [
              "ContosoApp.exe"
            ],
            "min": 10,
            "max": 89,
            "sum": 190,
            "count": 4
          },
          {
            "dimValues": [
              "SalesApp.exe"
            ],
            "min": 10,
            "max": 23,
            "sum": 86,
            "count": 4
          }
        ]
      }
    }
  }

أرسل طلب HTTP POST التالي باستخدام المتغيرات التالية:

  • location: منطقة التوزيع للمورد الذي تنبعث منها مقاييس.

  • resourceId: معرف المورد لمورد Azure الذي تتبع المقياس مقابله.

  • accessToken: رمز التخويل المميز الذي تم الحصول عليه من خطوة الحصول على رمز التخويل المميز .

    curl -X POST 'https://<location>.monitoring.azure.com/<resourceId>/metrics' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <accessToken>' \
    -d @custommetric.json 
    

قم بعرض المقاييس

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. في القائمة على اليسار، حدد Monitor.

  3. في صفحة المراقبة، حدد «المقاييس».

    Screenshot that shows how to select Metrics in the Azure portal.

  4. غير فترة التجميع إلى آخر ساعة.

  5. في القائمة المنسدلة Scope ، حدد المورد الذي ترسل المقياس له.

  6. في القائمة المنسدلة Metric Namespace ، حدد Memory Profile.

  7. في القائمة المنسدلة Metric ، حدد Memory Bytes in Use.

استكشاف الأخطاء وإصلاحها

إذا تم تلقي رسالة خطأ مع جزء من العملية، خذ بعين الاعتبار معلومات استكشاف الأخطاء وإصلاحها التالية:

  • إذا لم تتمكن من إصدار مقاييس مقابل اشتراك أو مجموعة موارد أو مورد، فتحقق من أن التطبيق أو كيان الخدمة لديه دور Monitoring Metrics Publisher المعين في التحكم في الوصول (IAM).
  • تحقق من أن عدد أسماء الأبعاد يطابق عدد القيم.
  • تحقق من أنك تنبعث منك المقاييس إلى نقطة النهاية الإقليمية الصحيحة ل Azure Monitor. على سبيل المثال، إذا تم نشر المورد الخاص بك في غرب الولايات المتحدة، يجب إرسال مقاييس إلى نقطة النهاية الإقليمية لغرب الولايات المتحدة.
  • تحقق من أن الطابع الزمني في غضون آخر 20 دقيقة.
  • تحقق من أن الطابع الزمني بتنسيق ISO 8601.
  • تحقق من صحة اسم المقياس. على سبيل المثال، لا يمكن أن يحتوي على مسافات.

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

لمعرفة المزيد حول المقاييس المخصصة.