Cihaz bağlantı durumunu izleme
Azure IoT Hub, cihazlarınızın durumunu izlemek için çeşitli yöntemleri destekler. Bu makalede farklı izleme yöntemleri sunulur ve IoT çözümünüz için en iyi seçeneği belirlemenize yardımcı olacak yönergeler sağlanır.
Aşağıdaki tabloda, cihazınızın bağlantı durumunu izlemenin üç yolu vardır:
Metot | Durum sıklığı | Maliyet | Oluşturma çabası |
---|---|---|---|
Cihaz ikizi connectionState özelliği | Aralıklı | Düşük | Düşük |
Event Grid | 60 saniye | Düşük | Düşük |
Özel cihaz sinyal deseni | Özel | Yüksek | Yüksek |
Güvenilirliği, düşük maliyeti ve kullanım kolaylığı nedeniyle çoğu müşteri için tercih edilen izleme çözümü olarak Event Grid'i öneririz.
Ancak Event Grid ile izlemenin bazı IoT çözümleri için diskalifiye edilebilecek bazı sınırlamaları vardır. Her seçeneğin avantajlarını ve sınırlamalarını anlamak için bu makaleyi kullanın.
Cihaz ikizi bağlantısıState
Her IoT Hub cihaz kimliği, bağlı veya bağlantısı kesilmiş olarak raporlayan connectionState adlı bir özellik içerir. Bu özellik, IoT Hub'ın cihazın bağlantı durumunu anlamayı temsil eder.
Bağlantı durumu özelliğinin çeşitli sınırlamaları vardır:
- Bağlantı durumu yalnızca MQTT veya AMQP kullanan cihazlar için güncelleştirilir.
- Bu özellikteki güncelleştirmeler protokol düzeyinde ping’ler kullanır ve beş dakika kadar gecikebilir.
Bu nedenlerden dolayı, yalnızca geliştirme ve hata ayıklama sırasında connectionState alanını kullanmanızı öneririz. IoT çözümleri çalışma zamanında alanı sorgulamamalıdır. Örneğin, buluttan cihaza ileti veya SMS göndermeden önce bir cihazın bağlı olup olmadığını denetlemek için connectionState alanını sorgulamayın.
Event Grid
Çoğu müşteri için tercih edilen izleme çözümü olarak Event Grid'i öneririz.
Uyarı almak ve cihaz bağlantı durumunu izlemek için DeviceConnected ve deviceDisconnected olaylarına Event Grid'e abone olun.
IoT çözümünüzde cihaz bağlı ve bağlantısı kesilmiş olayları tümleştirmeyi öğrenmek için aşağıdaki makaleleri kullanın:
- IoT Hub olaylarına Event Grid kullanarak tepki verme
- Cosmos DB kullanarak cihaz bağlantısı olaylarını sıralama
Cihaz bağlantı durumu olayları, MQTT veya AMQP protokolü veya WebSockets üzerinden bu protokollerden birini kullanarak bağlanan cihazlar için kullanılabilir. Yalnızca HTTPS ile yapılan istekler cihaz bağlantı durumu bildirimlerini tetiklemez.
- Java, Node veya Python için Azure IoT SDK'larını kullanarak bağlanan cihazlar için:
- MQTT: bağlantı durumu olayları otomatik olarak gönderilir.
- AMQP: Bağlantı durumlarının bildirilmesindeki gecikmeleri azaltmak için buluttan cihaza bağlantı oluşturulmalıdır.
- .NET veya C için Azure IoT SDK'larını kullanarak bağlanan cihazlarda, ilk cihazdan buluta ileti gönderilene veya buluttan cihaza ileti alınana kadar bağlantı durumu olayları bildirilmeyecektir.
Azure IoT SDK'ları dışında, MQTT'de bu işlemler uygun mesajlaşma konularındaki SUBSCRIBE veya PUBLISH işlemlerine eşit olur. AMQP üzerinden bu işlemler, bir iletiyi uygun bağlantı yollarına eklemeye veya aktarmaya eşit olur.
Event Grid sınırlamaları
Cihazınızın durumunu izlemek için Event Grid'i kullanmak aşağıdaki sınırlamalarla birlikte gelir:
- Event Grid her bir cihaz bağlantısı ve bağlantısını kesme olayını bildirmez. Bunun yerine, her 60 saniyede bir cihaz durumunu yoklar ve durum değişikliği olduğunda en son bağlantı durumunu yayımlar. Bu nedenle, durum değişikliği raporları bir dakikaya kadar gecikebilir ve 60 saniyelik pencerede birden çok olay gerçekleşirse tek tek durum değişiklikleri bildirilmeyebilir.
- AMQP kullanan cihazların cihaz durumunu bildirebilmesi için önce buluttan cihaza bağlantı gerekir.
- Event Grid gizlenemez bir genel uç noktayı kullanıma sunar.
Bu sınırlamalardan herhangi biri cihaz durumu izleme için Event Grid'i kullanma yeteneğinizi etkiliyorsa bunun yerine özel bir cihaz sinyal deseni oluşturmayı düşünmelisiniz.
Cihaz sinyal deseni
Cihazlarınızın bağlantı durumunu bilmeniz gerekiyorsa ancak Event Grid'in sınırlamaları çözümünüz için çok kısıtlayıcıysa sinyal desenini uygulayabilirsiniz. Sinyal düzeninde, cihaz her sabit sürede en az bir kez (örneğin, en az saatte bir) cihazdan buluta iletiler gönderir. Bir cihazda gönderilecek veri olmasa bile, genellikle sinyal iletisi olarak tanımlayan bir özelliğe sahip boş bir cihazdan buluta ileti gönderir. Hizmet tarafında, çözüm her cihaz için alınan son sinyali içeren bir harita tutar. Çözüm, cihazdan beklenen süre içinde sinyal iletisi almazsa cihazla ilgili bir sorun olduğunu varsayar.
Cihaz sinyal sınırlamaları
Sinyal iletileri cihazdan buluta iletiler olarak uygulandığından IoT Hub ileti kotanıza ve azaltma sınırlarınıza göre sayılır.
Kısa süre sonu süresi deseni
IoT çözümü yalnızca bir cihaza buluttan cihaza ileti gönderip göndermeyeceğini belirlemek için bağlantı durumunu kullanıyorsa ve iletiler büyük cihaz kümelerine yayınlanmıyorsa kısa süre sonu zaman desenini sinyal düzenine daha basit bir alternatif olarak kullanmayı göz önünde bulundurun. Kısa süre sonu süresi deseni, kısa bir ileti süre sonu süresine sahip iletiler göndererek ve cihazlardan ileti onayları isteyerek buluttan cihaza ileti gönderip göndermeyeceğinizi belirlemenin bir yoludur.
Daha fazla bilgi için bkz . İleti süre sonu (yaşam süresi).
Diğer izleme seçenekleri
Daha karmaşık bir uygulama, bağlanmaya veya iletişim kurmaya çalışan ancak başarısız olan cihazları tanımlamak için Azure İzleyici ve Azure Kaynak Durumu bilgilerini içerebilir. Azure İzleyici panoları cihazlarınızın toplam durumunu görmek için yararlı olurken Event Grid ve sinyal desenleri, cihaz kesintilerine yanıt vermeyi kolaylaştırır.
Bu hizmetleri IoT Hub ile kullanma hakkında daha fazla bilgi edinmek için bkz . IoT Hub'ı izleme ve IoT Hub kaynak durumunu denetleme. Cihaz bağlantısını izlemek için Azure İzleyici veya Event Grid kullanma hakkında daha ayrıntılı bilgi için bkz . Cihaz bağlantısını izleme, tanılama ve sorun giderme.