كيفية استكشاف الأخطاء وإصلاحها باستخدام سجلات الموارد

يوفر دليل الكيفية هذا نظرة عامة على سجلات موارد Azure Web PubSub وبعض التلميحات لاستخدام السجلات لاستكشاف مشكلات معينة وإصلاحها. يمكن استخدام السجلات لتحديد المشكلة وتعقب الاتصال وتتبع الرسائل وتتبع طلب HTTP والتحليل.

ما هي سجلات الموارد؟

هناك ثلاثة أنواع من سجلات الموارد: طلبات الاتصال والمراسلة وHTTP.

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

التقاط سجلات الموارد باستخدام أداة التتبع المباشر

لدى أداة التتبع المباشر لخدمة Azure Web PubSub القدرة على جمع سجلات الموارد في الوقت الفعلي، وهو أمر مفيد لاستكشاف المشكلات وإصلاحها في بيئة التطوير الخاصة بك. يمكن لأداة التتبع المباشر التقاط سجلات الاتصال وسجلات المراسلة وسجلات طلب HTTP.

إشعار

تنطبق الاعتبارات التالية على استخدام أداة التتبع المباشر:

  • سيتم فوترة سجلات الموارد في الوقت الحقيقي التي تم التقاطها بواسطة أداة التتبع المباشر كرسائل (نسبة استخدام الشبكة الصادرة).
  • لا تدعم أداة التتبع المباشر حاليا تخويل Microsoft Entra. يجب تمكين مفاتيح الوصول لاستخدام التتبع المباشر. ضمن الإعدادات، حدد مفاتيح، ثم قم بتمكين مفتاح الوصول.
  • يحتوي مثيل المستوى المجاني لخدمة Azure Web PubSub على حد يومي يبلغ 20000 رسالة (نسبة استخدام الشبكة الصادرة). يمكن أن يتسبب التتبع المباشر في الوصول إلى الحد اليومي بشكل غير متوقع.

تشغيل أداة التتبع المباشر

إشعار

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

خطوات تمكين مفتاح الوصول

  1. انتقل إلى مدخل Microsoft Azure وصفحة خدمة SignalR.

  2. من القائمة على اليسار، ضمن Monitoring حدد Live trace settings.

  3. حدد تمكين التتبع المباشر.

  4. حدد الزر حفظ . سيستغرق الأمر لحظة حتى تسري التغييرات.

  5. عند اكتمال التحديث، حدد Open Live Trace Tool.

    Screenshot of launching the live trace tool.

تم تعطيل خطوات مفتاح الوصول

تعيين إذن واجهة برمجة تطبيقات أداة التتبع المباشر لنفسك

  1. انتقل إلى مدخل Microsoft Azure وصفحة خدمة SignalR.
  2. حدد Access control (IAM).
  3. في الصفحة الجديدة، انقر فوق +إضافة، ثم انقر فوق تعيين الدور.
  4. في الصفحة الجديدة، ركز على علامة التبويب Job function roles ، وحدد SignalR Service Owner role، ثم انقر فوق Next.
  5. في صفحة الأعضاء ، انقر فوق +تحديد الأعضاء.
  6. في اللوحة الجديدة، ابحث عن الأعضاء وحددهم، ثم انقر فوق تحديد.
  7. انقر فوق مراجعة + تعيين، وانتظر إعلام الإكمال.

زيارة أداة التتبع المباشر

  1. انتقل إلى مدخل Microsoft Azure وصفحة خدمة SignalR.

  2. من القائمة على اليسار، ضمن Monitoring حدد Live trace settings.

  3. حدد تمكين التتبع المباشر.

  4. حدد الزر حفظ . سيستغرق الأمر لحظة حتى تسري التغييرات.

  5. عند اكتمال التحديث، حدد Open Live Trace Tool.

    Screenshot of launching the live trace tool.

تسجيل الدخول باستخدام حساب Microsoft الخاص بك

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

التقاط سجلات الموارد

توفر أداة التتبع المباشر وظائف لمساعدتك في التقاط سجلات الموارد لاستكشاف الأخطاء وإصلاحها.

  • الالتقاط: ابدأ في التقاط سجلات الموارد في الوقت الحقيقي من Azure Web PubSub.
  • مسح: مسح سجلات الموارد الملتقطة في الوقت الحقيقي.
  • عامل تصفية السجل: تتيح لك أداة التتبع المباشر تصفية سجلات الموارد الملتقطة في الوقت الحقيقي بكلمة مفتاح واحدة محددة. سيتم التعامل مع الفواصل الشائعة (على سبيل المثال، المسافة والفاصلة والفاصلة المنقوعة وما إلى ذلك) كجزء من الكلمة الرئيسية.
  • الحالة: توضح الحالة ما إذا كانت أداة التتبع المباشر متصلة أو غير متصلة بالمثيل المحدد.

Screenshot of capturing resource logs with live trace tool.

تحتوي سجلات الموارد في الوقت الحقيقي التي تم التقاطها بواسطة أداة التتبع المباشر على معلومات مفصلة لاستكشاف الأخطاء وإصلاحها.

الاسم ‏‏الوصف
الوقت وقت حدث السجل
مستوى السجل مستوى حدث السجل، يمكن أن يكون [تتبع | تصحيح الأخطاء | معلوماتي | تحذير | خطأ]
اسم الحدث اسم عملية الحدث
رسالة رسالة مفصلة للحدث
الاستثناء استثناء وقت التشغيل لخدمة Azure Web PubSub
المركز اسم المركز المعرف من قبل المستخدم
معرف الاتصال هوية الاتصال
معرِف المستخدم هوية المستخدم
عنوان IP عنوان IP للعميل
قالب المسار قالب المسار لواجهة برمجة التطبيقات
أسلوب Http أسلوب Http (POST/GET/PUT/DELETE)
عنوان URL محدد موقع المورد الموحد
معرّف التتبع المعرف الفريد لاستدعاء
رمز الحالة رمز استجابة Http
المدة المدة بين تلقي الطلب ومعالجة الطلب
الرؤوس المعلومات الإضافية التي تم تمريرها من قبل العميل والخادم مع طلب HTTP أو استجابة

التقاط سجلات الموارد باستخدام Azure Monitor

كيفية تمكين سجلات الموارد

يدعم Azure Web PubSub حاليا التكامل مع Azure Storage.

  1. انتقل إلى مدخل Azure.

  2. في صفحة Diagnostic settings في مثيل خدمة Azure Web PubSub، حدد + Add diagnostic setting. Screenshot of viewing diagnostic settings and create a new one

  3. في اسم إعداد التشخيص، أدخل اسم الإعداد.

  4. في تفاصيل الفئة، حدد أي فئة سجل تحتاج إليها.

  5. في تفاصيل الوجهة، تحقق من الأرشفة إلى حساب تخزين.

    Screenshot of configuring diagnostic setting detail

  6. حدد حفظ لحفظ إعداد التشخيص.

    إشعار

    يجب أن يكون حساب التخزين في نفس المنطقة مثل خدمة Azure Web PubSub.

الأرشفة إلى حساب تخزين Azure

يتم تخزين السجلات في حساب التخزين الذي تم تكوينه في جزء إعداد التشخيص. يتم إنشاء حاوية باسم insights-logs-<CATEGORY_NAME> تلقائيا لتخزين سجلات الموارد. داخل الحاوية، يتم تخزين السجلات في الملف resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json. يتم دمج المسار بواسطة resource ID و Date Time. يتم تقسيم ملفات السجل حسب hour. قيمة الدقيقة هي دائما m=00.

يتم تخزين جميع السجلات بتنسيق JavaScript Object Notation (JSON). يحتوي كل إدخال على حقول سلسلة تستخدم التنسيق الموضح في الأقسام التالية.

تتضمن سلاسل JSON لسجل الأرشيف العناصر المدرجة في الجداول التالية:

تنسيق

الاسم ‏‏الوصف
time وقت حدث السجل
المستوى مستوى حدث السجل
resourceId معرف المورد لخدمة Azure SignalR
موقع موقع خدمة Azure SignalR
فئة فئة حدث السجل
اسم العملية اسم عملية الحدث
CallerIpAddress عنوان IP للخادم أو العميل
الخصائص الخصائص التفصيلية المتعلقة بحدث السجل هذا. لمزيد من التفاصيل، راجع جدول الخصائص أدناه

جدول الخصائص

الاسم ‏‏الوصف
مجموعة مجموعة من حدث السجل. القيم المسموح بها هي: Connectionو AuthorizationThrottling
connectionId هوية الاتصال
userId هوية المستخدم
رسالة رسالة مفصلة لحدث السجل
مركز اسم المركز المعرف من قبل المستخدم
routeTemplate قالب المسار لواجهة برمجة التطبيقات
httpMethod أسلوب Http (POST/GET/PUT/DELETE)
عنوان URL محدد موقع المورد الموحد
معرف التتبع المعرف الفريد لاستدعاء
statusCode رمز استجابة Http
المدة يتم تلقي المدة بين الطلب ومعالجتها
رؤوس المعلومات الإضافية التي تم تمريرها من قبل العميل والخادم مع طلب HTTP أو استجابة

الكود التالي هو مثال على سلسلة JSON لسجل الأرشيف:

{
  "properties": {
    "message": "Connection started",
    "collection": "Connection",
    "connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
    "userId": null
  },
  "operationName": "ConnectionStarted",
  "category": "ConnectivityLogs",
  "level": "Informational",
  "callerIpAddress": "167.220.255.79",
  "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
  "time": "2021-09-17T05:25:05Z",
  "location": "westus"
}

الأرشفة إلى Azure Log Analytics

لإرسال سجلات إلى مساحة عمل Log Analytics:

  1. في صفحة Diagnostic setting ، ضمن Destination details، حدد **Send to Log Analytics workspace.
  2. حدد الاشتراك الذي تريد استخدامه.
  3. حدد مساحة عمل Log Analytics لاستخدامها كوجهة للسجلات.

لعرض سجلات الموارد، اتبع الخطوات التالية:

  1. حدد Logs في تحليلات السجل الهدف.

    Log Analytics menu item

  2. أدخل WebPubSubConnectivity، WebPubSubMessaging أو WebPubSubHttpRequest، ثم حدد النطاق الزمني للاستعلام عن السجل. للحصول على استعلامات متقدمة، راجع بدء استخدام Log Analytics في Azure Monitor.

    Query log in Log Analytics

لاستخدام نموذج استعلام لخدمة SignalR، اتبع الخطوات أدناه.

  1. حدد Logs في تحليلات السجل الهدف.
  2. حدد Queries لفتح مستكشف الاستعلام.
  3. حدد Resource type لتجميع نماذج الاستعلامات في نوع المورد.
  4. حدد Run لتشغيل البرنامج النصي. Sample query in Log Analytics

تتضمن أعمدة سجل الأرشيف العناصر المدرجة في الجدول التالي.

الاسم ‏‏الوصف
TimeGenerated وقت حدث السجل
التحصيل مجموعة من حدث السجل. القيم المسموح بها هي: Connectionو AuthorizationThrottling
OperationName اسم عملية الحدث
Location موقع خدمة Azure SignalR
المستوى مستوى حدث السجل
CallerIpAddress عنوان IP للخادم/العميل
رسالة رسالة مفصلة لحدث السجل
معرف المستخدم هوية المستخدم
ConnectionId هوية الاتصال
ConnectionType نوع الاتصال. القيم المسموح بها هي: Server | Client. Server: اتصال من جانب الخادم؛ Client: اتصال من جانب العميل
نوع النقل نوع النقل للاتصال. القيم المسموح بها هي: Websockets | ServerSentEvents | LongPolling

استكشاف الأخطاء وإصلاحها باستخدام سجلات الموارد

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

تغييرات غير متوقعة في عدد الاتصالات

إسقاط اتصال غير متوقع

إذا تم قطع اتصال، ستسجل سجلات الموارد حدث قطع الاتصال ب ConnectionAborted أو ConnectionEnded في operationName.

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

يتم سرد أسباب الاجهاض في الجدول التالي:

السبب ‏‏الوصف
عدد الاتصال يصل إلى الحد يصل عدد الاتصال إلى حد مستوى السعر الحالي. ضع في اعتبارك توسيع نطاق وحدة الخدمة
إعادة تحميل الخدمة وإعادة الاتصال يتم إعادة تحميل خدمة Azure Web PubSub. تحتاج إلى تنفيذ آلية إعادة الاتصال الخاصة بك أو إعادة الاتصال يدويا بخدمة Azure Web PubSub
خطأ عابر للخادم الداخلي يحدث خطأ عابر في خدمة Azure Web PubSub، يجب استرداده تلقائيا

زيادة غير متوقعة في الاتصالات

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

فشل التخويل

إذا حصلت على 401 تم إرجاع غير مصرح به لطلبات العميل، فتحقق من سجلات الموارد الخاصة بك. إذا وجدت Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>، فهذا يعني أن جميع الجماعات المستهدفة في الرمز المميز للوصول غير صالحة. حاول استخدام الجماعات المستهدفة الصالحة المقترحة في السجل.

التحكم بالنطاق الترددي*

إذا وجدت أنه لا يمكنك إنشاء اتصالات العميل بخدمة Azure Web PubSub، فتحقق من سجلات الموارد الخاصة بك. إذا رأيت Connection count reaches limit في سجل الموارد، فقد أنشأت عددا كبيرا جدا من الاتصالات بخدمة Azure Web PubSub ووصلت إلى حد عدد الاتصالات. ضع في اعتبارك توسيع نطاق مثيل خدمة Azure Web PubSub. إذا رأيت Message count reaches limit في سجل الموارد وكنت تستخدم المستوى المجاني، فهذا يعني أنك استخدمت الحصة النسبية للرسائل. إذا كنت ترغب في إرسال المزيد من الرسائل، ففكر في تغيير مثيل خدمة Azure Web PubSub إلى المستوى القياسي. لمزيد من المعلومات، راجع تسعير خدمة Azure Web PubSub.