Condividi tramite


Monitorare lo stato di connessione del dispositivo

hub IoT di Azure supporta diversi metodi per il monitoraggio dello stato dei dispositivi. Questo articolo presenta i diversi metodi di monitoraggio e fornisce indicazioni utili per scegliere l'opzione migliore per la soluzione IoT.

La tabella seguente presenta tre modi per monitorare lo stato della connessione del dispositivo:

metodo Frequenza di stato Costo Tentativo di compilazione
Proprietà connectionState del dispositivo gemello Intermittente Basso Basso
Griglia di eventi 60 secondi Basso Basso
Modello di heartbeat del dispositivo personalizzato Personalizzazione Alto Alta

Grazie all'affidabilità, al basso costo e alla facilità d'uso, è consigliabile usare Griglia di eventi come soluzione di monitoraggio preferita per la maggior parte dei clienti.

Esistono tuttavia alcune limitazioni per il monitoraggio con Griglia di eventi che potrebbero non qualificarla per alcune soluzioni IoT. Usare questo articolo per comprendere i vantaggi e le limitazioni di ogni opzione.

Dispositivo gemello connectionState

Ogni hub IoT'identità del dispositivo contiene una proprietà denominata connectionState che segnala la connessione o la disconnessione. Questa proprietà rappresenta la comprensione hub IoT dello stato di connessione di un dispositivo.

La proprietà di stato della connessione presenta diverse limitazioni:

  • Lo stato della connessione viene aggiornato solo per i dispositivi che usano MQTT o AMQP.
  • Gli aggiornamenti di questa proprietà si basano su ping a livello di protocollo e possono essere ritardati fino a cinque minuti.

Per questi motivi, è consigliabile usare solo il campo connectionState durante lo sviluppo e il debug. Le soluzioni IoT non devono eseguire query sul campo in fase di esecuzione. Ad esempio, non eseguire una query sul campo connectionState per verificare se un dispositivo è connesso prima di inviare un messaggio da cloud a dispositivo o un SMS.

Griglia di eventi

È consigliabile usare Griglia di eventi come soluzione di monitoraggio preferita per la maggior parte dei clienti.

Sottoscrivere deviceConnected e gli eventi deviceDisconnected nella Griglia di eventi per ottenere avvisi e monitorare lo stato di connessione del dispositivo.

Usare gli articoli seguenti per informazioni su come integrare gli eventi connessi e disconnessi del dispositivo nella soluzione IoT:

Gli eventi dello stato della connessione del dispositivo sono disponibili per i dispositivi che si connettono usando il protocollo MQTT o AMQP, oppure usando uno di questi protocolli su WebSockets. Le richieste effettuate solo con HTTPS non attiveranno le notifiche sullo stato della connessione del dispositivo.

  • Per i dispositivi che si connettono usando gli SDK di Azure IoT per Java, Node o Python:
    • MQTT: gli eventi di stato della connessione vengono inviati automaticamente.
    • AMQP: è necessario creare un collegamento da cloud a dispositivo per ridurre i ritardi nei report degli stati di connessione.
  • Per i dispositivi che si connettono usando gli SDK di Azure IoT per .NET o C, gli eventi di stato della connessione non verranno segnalati finché non viene inviato un messaggio iniziale da dispositivo a cloud o viene ricevuto un messaggio da cloud a dispositivo.

Al di fuori degli SDK di Azure IoT, in MQTT queste operazioni equivalgono alle operazioni SUBSCRIBE o PUBLISH negli argomenti di messaggistica appropriati. Nel protocollo AMQP queste operazioni equivalgono al collegamento o al trasferimento di un messaggio nei percorsi del collegamento appropriati.

Limitazioni della Griglia di eventi

L'uso di Griglia di eventi per monitorare lo stato del dispositivo presenta le limitazioni seguenti:

  • La Griglia di eventi non segnala ogni singolo evento di connessione e disconnessione del dispositivo. Esegue invece il polling dello stato del dispositivo ogni 60 secondi e pubblica lo stato di connessione più recente in caso di modifica dello stato. Per questo motivo, i report di modifica dello stato possono essere ritardati fino a un minuto e le modifiche di stato individuali potrebbero essere annullate se si verificano più eventi in un arco di tempo di 60 secondi.
  • I dispositivi che utilizzano AMQP hanno bisogno di un collegamento da cloud a dispositivo prima di poter segnalare lo stato del dispositivo.
  • La Griglia di eventi espone un endpoint pubblico che non può essere nascosto.

Se una di queste limitazioni influisce sulla possibilità di usare Griglia di eventi per il monitoraggio dello stato del dispositivo, è consigliabile creare invece un modello di heartbeat del dispositivo personalizzato.

Modello heartbeat del dispositivo

Se è necessario conoscere lo stato di connessione dei dispositivi, ma le limitazioni della Griglia di eventi sono troppo restrittive per la soluzione, è possibile implementare il criterio heartbeat. Nel modello di heartbeat il dispositivo invia messaggi da dispositivo a cloud almeno una volta ogni intervallo di tempo stabilito, ad esempio almeno una volta ogni ora. Anche se in un dispositivo non sono presenti dati da inviare, viene comunque inviato un messaggio vuoto da dispositivo a cloud, in genere con una proprietà che lo identifica come messaggio heartbeat. Sul lato servizio, la soluzione gestisce una mappa con l'ultimo heartbeat ricevuto per ogni dispositivo Se la soluzione non riceve un messaggio heartbeat dal dispositivo entro il tempo previsto, presume che ci sia un problema con il dispositivo.

Limitazioni dell'heartbeat del dispositivo

Poiché i messaggi heartbeat vengono implementati come messaggi da dispositivo a cloud, vengono conteggiati rispetto alla quota dei messaggi dell'hub IoT e alla limitazione delle richieste.

Modello di scadenza breve

Se una soluzione IoT usa lo stato di connessione esclusivamente per determinare se inviare messaggi da cloud a dispositivo a un dispositivo e i messaggi non vengono trasmessi a set di dispositivi di grandi dimensioni, è consigliabile usare il modello di scadenza breve come alternativa più semplice al modello di heartbeat. Il modello di scadenza breve è un modo per determinare se inviare messaggi da cloud a dispositivi inviando messaggi con un tempo di scadenza breve e richiedendo il riconoscimento del messaggio da parte dei dispositivi.

Per altre informazioni, vedere Scadenza dei messaggi (durata).

Altre opzioni di monitoraggio

Un'implementazione più complessa può includere le informazioni di Monitoraggio di Azure e Azure Integrità risorse per identificare i dispositivi che tentano di connettersi o comunicare ma hanno esito negativo. I dashboard di Monitoraggio di Azure sono utili per visualizzare l'integrità aggregata dei dispositivi, mentre i modelli di Griglia di eventi e heartbeat semplificano la risposta alle interruzioni dei singoli dispositivi.

Per altre informazioni sull'uso di questi servizi con hub IoT, vedere Monitorare hub IoT e Controllare l'integrità delle risorse hub IoT. Per informazioni più specifiche sull'uso di Monitoraggio di Azure o Griglia di eventi per monitorare la connettività dei dispositivi, vedere Monitorare, diagnosticare e risolvere i problemi di connettività dei dispositivi.