Memantau status koneksi perangkat

Azure IoT Hub mendukung beberapa metode untuk memantau status perangkat Anda. Artikel ini menyajikan berbagai metode pemantauan dan memberikan panduan untuk membantu Anda memilih opsi terbaik untuk solusi IoT Anda.

Tabel berikut ini memperkenalkan tiga cara untuk memantau status koneksi perangkat Anda:

Metode Frekuensi status Biaya Upaya untuk membangun
Properti connectionState kembar perangkat Terputus-putus Kurang Penting Kurang Penting
Event Grid 60 detik Kurang Penting Kurang Penting
Pola heartbeat perangkat kustom Adat Sangat Penting Sangat Penting

Karena keandalannya, biaya rendah, dan kemudahan penggunaannya, kami merekomendasikan Event Grid sebagai solusi pemantauan pilihan bagi sebagian besar pelanggan.

Namun, ada batasan tertentu untuk pemantauan dengan Event Grid yang mungkin mendiskualifikasikannya untuk beberapa solusi IoT. Gunakan artikel ini untuk memahami manfaat dan batasan setiap opsi.

ConnectionState kembar perangkat

Setiap identitas perangkat IoT Hub berisi properti yang disebut connectionState yang melaporkan tersambung atau terputus. Properti ini mewakili pemahaman IoT Hub tentang status koneksi perangkat.

Properti status koneksi memiliki beberapa batasan:

  • Status koneksi diperbarui hanya untuk perangkat yang menggunakan MQTT atau AMQP.
  • Pembaruan pada properti ini mengandalkan ping tingkat protokol dan mungkin tertunda sebanyak lima menit.

Untuk alasan ini, kami sarankan Anda hanya menggunakan bidang connectionState selama pengembangan dan penelusuran kesalahan. Solusi IoT tidak boleh mengkueri bidang pada waktu proses. Misalnya, jangan mengkueri bidang connectionState untuk memeriksa apakah perangkat tersambung sebelum Anda mengirim pesan cloud-ke-perangkat atau SMS.

Event Grid

Kami merekomendasikan Event Grid sebagai solusi pemantauan pilihan untuk sebagian besar pelanggan.

Berlangganan ke peristiwa perangkat Koneksi dan deviceDisconnected di Event Grid untuk mendapatkan pemberitahuan dan memantau status koneksi perangkat.

Gunakan artikel berikut untuk mempelajari cara mengintegrasikan peristiwa yang terhubung dan terputus perangkat dalam solusi IoT Anda:

Peristiwa status koneksi perangkat tersedia untuk perangkat yang terhubung menggunakan protokol MQTT atau AMQP, atau menggunakan salah satu dari protokol ini melalui WebSockets. Permintaan yang dibuat hanya dengan HTTPS tidak akan memicu pemberitahuan status koneksi perangkat.

  • Untuk perangkat yang terhubung menggunakan Azure IoT SDK untuk Java, Node, atau Python:
    • MQTT: peristiwa status koneksi dikirim secara otomatis.
    • AMQP: tautan cloud-ke-perangkat harus dibuat untuk mengurangi keterlambatan dalam status koneksi pelaporan.
  • Untuk perangkat yang terhubung menggunakan Azure IoT SDK untuk .NET atau C, peristiwa status koneksi tidak akan dilaporkan hingga pesan perangkat-ke-cloud awal dikirim atau pesan cloud-ke-perangkat diterima.

Di luar SDK Azure IoT, di MQTT operasi ini sama dengan operasi SUBSCRIBE atau PUBLISH pada topik pesan yang sesuai. Melalui AMQP, operasi ini sama dengan melampirkan atau mentransfer pesan pada jalur tautan yang sesuai.

Batasan Event Grid

Menggunakan Event Grid untuk memantau status perangkat Anda dilengkapi dengan batasan berikut:

  • Event Grid tidak melaporkan setiap peristiwa koneksi dan pemutusan sambungan perangkat individual. Sebaliknya, ia melakukan polling untuk status perangkat setiap 60 detik dan menerbitkan status koneksi terbaru jika ada perubahan status. Untuk alasan ini, laporan perubahan status dapat ditunda hingga satu menit dan perubahan status individu mungkin tidak dilaporkan jika beberapa peristiwa terjadi dalam jendela 60 detik.
  • Perangkat yang menggunakan AMQP memerlukan tautan cloud-ke-perangkat sebelum dapat melaporkan status perangkat.
  • Event Grid mengekspos titik akhir publik yang tidak dapat disembunyikan.

Jika salah satu batasan ini memengaruhi kemampuan Anda untuk menggunakan Event Grid untuk pemantauan status perangkat, maka Anda harus mempertimbangkan untuk membangun pola heartbeat perangkat kustom sebagai gantinya.

Pola heartbeat perangkat

Jika Anda perlu mengetahui status koneksi perangkat Anda tetapi batasan Event Grid terlalu membatasi solusi Anda, Anda dapat menerapkan pola heartbeat. Dalam pola heartbeat, perangkat mengirim pesan perangkat ke cloud setidaknya sekali setiap waktu tertentu (misalnya, setidaknya sekali setiap jam). Bahkan jika perangkat tidak memiliki data untuk dikirim, perangkat masih mengirim pesan perangkat-ke-cloud kosong, biasanya dengan properti yang mengidentifikasinya sebagai pesan heartbeat. Di sisi layanan, solusi tersebut mempertahankan peta dengan heartbeat terakhir yang diterima untuk setiap perangkat. Jika solusi tidak menerima pesan heartbeat dalam waktu yang diharapkan dari perangkat, solusi mengasumsikan bahwa ada masalah dengan perangkat.

Batasan heartbeat perangkat

Karena pesan heartbeat diimplementasikan sebagai pesan perangkat ke cloud, pesan tersebut dihitung terhadap kuota pesan dan batas pembatasan IoT Hub Anda.

Pola waktu kedaluwarsa singkat

Jika solusi IoT menggunakan status koneksi semata-mata untuk menentukan apakah akan mengirim pesan cloud-ke-perangkat ke perangkat, dan pesan tidak disiarkan ke sekumpulan besar perangkat, pertimbangkan untuk menggunakan pola waktu kedaluwarsa singkat sebagai alternatif yang lebih sederhana untuk pola heartbeat. Pola waktu kedaluwarsa singkat adalah cara untuk menentukan apakah akan mengirim pesan cloud-ke-perangkat dengan mengirim pesan dengan waktu kedaluwarsa pesan singkat dan meminta pengakuan pesan dari perangkat.

Untuk informasi selengkapnya, lihat Kedaluwarsa pesan (waktu hidup).

Opsi pemantauan lainnya

Implementasi yang lebih kompleks dapat mencakup informasi dari Azure Monitor dan Azure Resource Health untuk mengidentifikasi perangkat yang mencoba terhubung atau berkomunikasi tetapi gagal. Dasbor Azure Monitor sangat membantu untuk melihat kesehatan agregat perangkat Anda, sementara Event Grid dan pola heartbeat memudahkan untuk merespons pemadaman perangkat individual.

Untuk mempelajari lebih lanjut tentang menggunakan layanan ini dengan IoT Hub, lihat Memantau IoT Hub dan Memeriksa kondisi sumber daya IoT Hub. Untuk informasi yang lebih spesifik tentang menggunakan Azure Monitor atau Event Grid untuk memantau konektivitas perangkat, lihat Memantau, mendiagnosis, dan memecahkan masalah konektivitas perangkat.