مراقبة حالة اتصال الجهاز

يدعم Azure IoT Hub عدة طرق لمراقبة حالة أجهزتك. تقدم هذه المقالة أساليب المراقبة المختلفة وتوفر إرشادات لمساعدتك في اختيار الخيار الأفضل لحل IoT الخاص بك.

يقدم الجدول التالي ثلاث طرق لمراقبة حالة اتصال جهازك:

الطريقة تكرار الحالة التكلفة الجهد المبذول للبناء
الخاصية Device twin connectionState متقطعة منخفض منخفض
Event Grid 60 ثانية منخفض منخفض
نمط رسالة كشف أخطاء اتصال الجهاز المخصص مخصص عالي عالي

نظرا للموثوقية والتكلفة المنخفضة وسهولة الاستخدام، نوصي ب Event Grid كحل مراقبة مفضل لمعظم العملاء.

ومع ذلك، هناك بعض القيود المفروضة على المراقبة باستخدام Event Grid التي قد تؤدي إلى استبعادها لبعض حلول IoT. استخدم هذه المقالة لفهم فوائد وقيود كل خيار.

حالة اتصال الجهاز المزدوج

تحتوي كل هوية جهاز IoT Hub على خاصية تسمى connectionState تبلغ إما عن متصل أو غير متصل. تمثل هذه الخاصية فهم IoT Hub لحالة اتصال الجهاز.

خاصية حالة الاتصال لها العديد من القيود:

  • يتم تحديث حالة الاتصال فقط للأجهزة التي تستخدم MQTT أو AMQP.
  • تعتمد التحديثات إلى هذه الخاصية على pings على مستوى البروتوكول وقد يتم تأخيرها حتى خمس دقائق.

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

Event Grid

نوصي ب Event Grid كحل مراقبة مفضل لمعظم العملاء.

اشترك في الجهاز الاتصال والأحداث التي تم توصيلها بالجهاز على شبكة الأحداث للحصول على تنبيهات ومراقبة حالة اتصال الجهاز.

استخدم المقالات التالية لمعرفة كيفية دمج الأحداث المتصلة وغير المتصلة بالجهاز في حل IoT الخاص بك:

تتوفر أحداث حالة اتصال الجهاز للأجهزة المتصلة باستخدام إما بروتوكول MQTT أو AMQP، أو باستخدام أي من هذين البروتوكولين عبر WebSockets. الطلبات التي يتم إجراؤها باستخدام HTTPS فقط لن تؤدي إلى تشغيل إشعارات حالة اتصال الجهاز.

  • بالنسبة للأجهزة التي تتصل باستخدام Azure IoT SDKs ل Java أو Node أو Python:
    • MQTT: يتم إرسال أحداث حالة الاتصال تلقائيا.
    • AMQP: يجب إنشاء ارتباط من سحابة إلى جهاز لتقليل التأخيرات في الإبلاغ عن حالات الاتصال.
  • بالنسبة للأجهزة التي تتصل باستخدام Azure IoT SDKs ل .NET أو C، لن يتم الإبلاغ عن أحداث حالة الاتصال حتى يتم إرسال رسالة أولية من جهاز إلى سحابة أو تلقي رسالة من سحابة إلى جهاز.

خارج حزم Azure IoT SDK، في MQTT، تعادل هذه العمليات عمليات الاشتراك أو النشر على مواضيع المراسلة المناسبة. عبر AMQP، تعادل هذه العمليات إرفاق رسالة أو نقلها على مسارات الارتباط المناسبة.

قيود شبكة الأحداث

يأتي استخدام Event Grid لمراقبة حالة جهازك مع القيود التالية:

  • لا تقوم Event Grid بالإبلاغ عن اتصال كل جهاز على حدة وفصل الحدث. بدلا من ذلك، فإنه يستقصي حالة الجهاز كل 60 ثانية وينشر حالة الاتصال الأحدث إذا كان هناك تغيير في الحالة. لهذا السبب، قد تتأخر تقارير تغيير الحالة لمدة تصل إلى دقيقة واحدة وقد لا يتم الإبلاغ عن تغييرات الحالة الفردية إذا حدثت أحداث متعددة ضمن نافذة 60 ثانية.
  • تحتاج الأجهزة التي تستخدم AMQP إلى ارتباط من السحابة إلى الجهاز قبل أن تتمكن من الإبلاغ عن حالة الجهاز.
  • تعرض Event Grid نقطة نهاية عامة لا يمكن إخفاؤها.

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

نمط رسالة كشف أخطاء الاتصال للجهاز

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

قيود رسالة كشف أخطاء الاتصال للجهاز

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

نمط وقت انتهاء الصلاحية القصير

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

لمزيد من المعلومات، راجع انتهاء صلاحية الرسالة (وقت البقاء) .

خيارات المراقبة الأخرى

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

لمعرفة المزيد حول استخدام هذه الخدمات مع مركز IoT، راجع Monitor IoT Hub وCheck IoT Hub resource health. لمزيد من المعلومات المحددة حول استخدام Azure Monitor أو Event Grid لمراقبة اتصال الجهاز، راجع مراقبة اتصال الجهاز وتشخيصه واستكشاف الأخطاء وإصلاحها.