Raccolta di dati di telemetria sullo stato del sistema dai dispositiviAWS IoT Greengrass principali - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Raccolta di dati di telemetria sullo stato del sistema dai dispositiviAWS IoT Greengrass principali

I dati di telemetria sullo stato del sistema sono dati diagnostici che possono aiutarti a monitorare le prestazioni delle operazioni critiche sui tuoi dispositivi principali Greengrass. L'agente di telemetria sul core di Greengrass raccoglie i dati di telemetria locali e li pubblica su Amazon EventBridge senza richiedere alcuna interazione con il cliente. I dispositivi principali pubblicano i dati di telemetria EventBridge sulla base del miglior tentativo. Ad esempio, i dispositivi principali potrebbero non riuscire a fornire dati di telemetria in modalità offline.

Nota

Amazon EventBridge è un servizio bus di eventi che puoi usare per connettere le tue applicazioni ai dati provenienti da un'ampia gamma di origini, come i dispositivi principali Greengrass e le notifiche di distribuzione. Per ulteriori informazioni, consulta Che cos'è Amazon EventBridge? nella Guida per l' EventBridge utente di Amazon.

Puoi creare progetti e applicazioni per recuperare, analizzare, trasformare e riportare i dati di telemetria dai tuoi dispositivi periferici. Gli esperti del settore, come gli ingegneri di processo, possono utilizzare queste applicazioni per ottenere informazioni sullo stato della flotta.

Per garantire il corretto funzionamento dei componenti perimetrali Greengrass,AWS IoT Greengrass utilizza i dati per scopi di sviluppo e miglioramento della qualità. Questa funzionalità aiuta anche a fornire nuove e migliorate funzionalità edge. AWS IoT Greengrassconserva i dati di telemetria per un massimo di sette giorni.

Questa funzionalità è disponibile nel softwareAWS IoT Greengrass Core v1.11.0 ed è abilitata di default per tutti i core Greengrass, inclusi i core esistenti. Si inizia a ricevere dati automaticamente non appena si esegue l'aggiornamento al softwareAWS IoT Greengrass Core v1.11.0 o successivo.

Per informazioni su come accedere ai dati di telemetria pubblicati, consultaSottoscrizione ai dati di telemetria.

L'agente di telemetria raccoglie e pubblica le seguenti metriche di sistema.

Parametria di telemetria
Nome Descrizione Origine

SystemMemUsage

La quantità di memoria attualmente utilizzata da tutte le applicazioni sul dispositivo principale di Greengrass, incluso il sistema operativo.

System (Sistema)

CpuUsage

La quantità di CPU attualmente utilizzata da tutte le applicazioni sul dispositivo principale di Greengrass, incluso il sistema operativo.

System (Sistema)

TotalNumberOfFDs

Il numero di descrittori di file memorizzati dal sistema operativo del dispositivo principale di Greengrass. Un descrittore di file identifica in modo univoco un file aperto.

System (Sistema)

LambdaOutOfMemory

Il numero di esecuzioni che comportano l'esaurimento della memoria della funzione Lambda.

System (Sistema)

DroppedMessageCount

Il numero di messaggi eliminati destinati aAWS IoT Core.

GGCloudSpoolercomponente di sistema

LambdaTimeout

Numero di timeout per l'esecuzione della funzione Lambda definita dall'utente.

Funzione e sistema Lambda definiti dall'utenteCloud AWS

LambdaUngracefullyKilled

Il numero di esecuzioni che la funzione Lambda definita dall'utente non riesce a completare.

Funzione e sistema Lambda definiti dall'utenteCloud AWS

LambdaError

Il numero di esecuzioni che comportano la scrittura dei log degli errori da parte della funzione Lambda definita dall'utente.

Funzione e sistema Lambda definiti dall'utenteCloud AWS

BytesAppended

Numero di byte di dati aggiunti allo stream manager.

GGStreamManagercomponente di sistema

BytesUploadedToIoTAnalytics

Numero di byte di dati che Stream Manager esporta nei canali inAWS IoT Analytics.

GGStreamManagercomponente di sistema

BytesUploadedToKinesis

Il numero di byte di dati che stream manager esporta in flussi in Amazon Kinesis Data Streams.

GGStreamManagercomponente di sistema

BytesUploadedToIoTSiteWise

Numero di byte di dati in cui lo stream manager esporta nelle proprietà dell'assetAWS IoT SiteWise.

GGStreamManagercomponente di sistema

BytesUploadedToS3ExportTaskExecutor

Numero di byte di dati che Stream Manager esporta in oggetti in Amazon S3.

GGStreamManagercomponente di sistema

BytesUploadedToHTTP

Numero di byte di dati che lo stream manager esporta in HTTP.

GGStreamManagercomponente di sistema

Configurazione delle impostazioni di telemetria

La telemetria Greengrass utilizza le seguenti impostazioni:

  • L'agente di telemetria aggrega i dati di telemetria ogni ora.

  • L'agente di telemetria pubblica un messaggio di telemetria ogni 24 ore.

Nota

Le impostazioni sono immutabili.

Puoi abilitare o disabilitare la funzionalità di telemetria per un dispositivo core Greengrass. AWS IoT Greengrassutilizza le ombre per gestire la configurazione della telemetria. Le modifiche hanno effetto immediato quando il core è connesso aAWS IoT Core.

L'agente di telemetria pubblica i dati utilizzando il protocollo MQTT con un livello di qualità del servizio (QoS) pari a 0. Ciò significa che non conferma la consegna né ritenta i tentativi di pubblicazione. I messaggi di telemetria condividono una connessione MQTT con altri messaggi per gli abbonamenti destinati aAWS IoT Core.

A parte i costi di collegamento dati, il trasferimento dei dati dal core alAWS IoT Core server è gratuito. Questo perché l'agente pubblica su un argomentoAWS riservato. Tuttavia, a seconda del caso d'uso, potresti instrada i costi quando ricevi o instrada i dati nelle destinazioni come.

Requisiti

Quando si configurano le impostazioni di telemetria, si applicano i seguenti requisiti:

  • È necessario usare il softwareAWS IoT Greengrass Core v1.11.0 o successivo.

    Nota

    Se stai utilizzando una versione precedente e non vuoi usare la telemetria, non devi fare nulla.

  • È necessario fornire le autorizzazioni IAM per aggiornare il core (thing) shadow e per chiamare le API di configurazione prima di aggiornare le impostazioni di telemetria.

    Il seguente esempio di policy IAM consente di gestire la configurazione shadow e runtime di un core specifico:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowManageShadow", "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow", "iot:DescribeThing" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-name-*" ] }, { "Sid": "AllowManageRuntimeConfig", "Effect": "Allow", "Action": [ "greengrass:GetCoreRuntimeConfiguration", "greengrass:UpdateCoreRuntimeConfiguration" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-name" ] } ] }

    È possibile concedere un accesso granulare o condizionale alle risorse, ad esempio utilizzando uno schema di* denominazione jolly. Per ulteriori informazioni, consulta Aggiungere e rimuovere le policy IAM nella Guida per l'utente IAM.

Configurare le impostazioni di telemetria (console)) (console))

Quanto segue mostra come aggiornare le impostazioni di telemetria di un core Greengrass nellaAWS IoT Greengrass console.

  1. Nel pannello di navigazione dellaAWS IoT console, sotto Gestisci, espandi i dispositivi Greengrass, quindi scegli Gruppi (V1).

  2. In Gruppi Greengrass, scegli il tuo gruppo target.

  3. Nella pagina di configurazione del gruppo, nella sezione Panoramica, scegli il tuo core Greengrass.

  4. Nella pagina di configurazione del core, scegli la scheda Telemetria.

  5. Nella sezione Telemetria dello stato del sistema, scegli Configura.

  6. In Configura telemetria, seleziona Telemetria per abilitare o disabilitare lo stato della telemetria.

    Importante

    Per impostazione predefinita, la funzionalità di telemetria è abilitata per il softwareAWS IoT Greengrass Core v1.11.0 o successivo.

Le modifiche diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano Non è necessario distribuire il gruppo.

Configurazione delle impostazioni di telemetria (CLI)

Nell'AWS IoT GreengrassAPI, l'TelemetryConfigurationoggetto rappresenta le impostazioni di telemetria di un core Greengrass. Questo oggetto fa parte dell'RuntimeConfigurationoggetto associato al nucleo. Puoi utilizzare l'AWS IoT GreengrassAPI o l'AWSSDK per gestire la telemetria di Greengrass.AWS CLI Gli esempi in questa sezione utilizzano ilAWS CLI.

Per verificare le impostazioni di telemetria

Il comando seguente ottiene le impostazioni di telemetria di un core Greengrass.

  • Sostituisci core-thing-namecon il nome del core di destinazione.

    Per ottenere il nome dell'oggetto, si usa il get-core-definition-versioncomando. Il comando restituisce l'ARN dell'oggetto che contiene il nome dell'oggetto.

aws greengrass get-thing-runtime-configuration --thing-name core-thing-name

Il comando restituisce unGetCoreRuntimeConfigurationResponse oggetto nella risposta JSON. Ad esempio:

{ "RuntimeConfiguration": { "TelemetryConfiguration": { "ConfigurationSyncStatus": "OutOfSync", "Telemetry": "On" } } }
Per configurare le impostazioni di telemetria

Il comando seguente aggiorna le impostazioni di telemetria per un core Greengrass.

  • Sostituisci core-thing-namecon il nome del core di destinazione.

    Per ottenere il nome dell'oggetto, si usa il get-core-definition-versioncomando. Il comando restituisce l'ARN dell'oggetto che contiene il nome dell'oggetto.

JSON expanded
aws greengrass update-thing-runtime-configuration --thing-name core-thing-name --telemetry-configuration '{ "RuntimeConfiguration": { "TelemetryConfiguration": { "ConfigurationSyncStatus": "InSync", "Telemetry": "Off" } } }
JSON single-line
aws greengrass update-thing-runtime-configuration --thing-name core-thing-name --telemetry-configuration "{\"TelemetryConfiguration\":{\"ConfigurationSyncStatus\":\"InSync\",\"Telemetry\":\"Off\"}}"

Le modifiche alle impostazioni di telemetria sono state applicate se loConfigurationSyncStatus èInSync. Le modifiche diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano diventano Non è necessario distribuire il gruppo.

TelemetryConfiguration oggetto

L'TelemetryConfigurationoggetto ha le seguenti proprietà:

ConfigurationSyncStatus

Verifica se le impostazioni di telemetria sono sincronizzate. È possibile che tu non apporti modifiche a questa proprietà.

Tipo: stringa

Valori validi: InSync o OutOfSync

Telemetry

Attiva o disattiva la telemetria. Il valore predefinito è On.

Tipo: stringa

Valori validi: On o Off

Sottoscrizione ai dati di telemetria

Puoi creare regole in Amazon EventBridge che definiscono come elaborare i dati di telemetria pubblicati dal dispositivo principale di Greengrass. Quando EventBridge riceve i dati, invoca le operazioni di destinazione definite nelle regole. Ad esempio, puoi creare regole di eventi per inviare notifiche, archiviare informazioni sugli eventi, eseguire un'operazione correttiva o invocano altri eventi.

Evento di telemetria

L'evento per una modifica dello stato di distribuzione, inclusi i dati di telemetria, utilizza il seguente formato:

{ "version": "0", "id": "f70f943b-9ae2-e7a5-fec4-4c22178a3e6a", "detail-type": "Greengrass Telemetry Data", "source": "aws.greengrass", "account": "123456789012", "time": "2020-07-28T20:45:53Z", "region": "us-west-1", "resources": [], "detail": { "ThingName": "CoolThing", "Schema": "2020-06-30", "ADP": [ { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToKinesis", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToS3ExportTaskExecutor", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToHTTP", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToIoTAnalytics", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "StreamManager", "M": [ { "N": "BytesAppended|BytesUploadedToIoTSiteWise", "Sum": 11, "U": "Bytes" } ] }, { "TS": 123231546, "NS": "arn:aws:lambda:us-west-1:123456789012:function:my-function", "M": [ { "N": "LambdaTimeout", "Sum": 15, "U": "Count" } ] }, { "TS": 123231546, "NS": "CloudSpooler", "M": [ { "N": "DroppedMessageCount", "Sum": 15, "U": "Count" } ] }, { "TS": 1593727692, "NS": "SystemMetrics", "M": [ { "N": "SystemMemUsage", "Sum": 11.23, "U": "Megabytes" }, { "N": "CpuUsage", "Sum": 35.63, "U": "Percent" }, { "N": "TotalNumberOfFDs", "Sum": 416, "U": "Count" } ] }, { "TS": 1593727692, "NS": "arn:aws:lambda:us-west-1:123456789012:function:my-function", "M": [ { "N": "LambdaOutOfMemory", "Sum": 12, "U": "Count" }, { "N": "LambdaUngracefullyKilled", "Sum": 100, "U": "Count" }, { "N": "LambdaError", "Sum": 7, "U": "Count" } ] } ] } }

L'ADParray contiene un elenco di punti dati aggregati con le seguenti proprietà:

TS

Campo obbligatorio. Il timestamp di quando i dati sono stati aggregati.

NS

Campo obbligatorio. Namespace del sistema.

M

Campo obbligatorio. L'elenco delle metriche. Una metrica contiene le seguenti proprietà:

N

Il nome della metrica.

Sum

Il valore metrico aggregato. L'agente di telemetria aggiunge nuovi valori al totale precedente, quindi la somma è un valore sempre crescente. È possibile utilizzare il timestamp per trovare il valore di un'aggregazione specifica. Ad esempio, per trovare l'ultimo valore aggregato, sottrai il valore con data e ora precedente dall'ultimo valore con data e ora.

U

Unità del parametro.

ThingName

Campo obbligatorio. Nome del dispositivo che hai scelto come destinazione.

Prerequisiti per la creazione di EventBridge regole

Prima di creare una EventBridge regola perAWS IoT Greengrass, dovresti assicurarti di:

  • Acquisire familiarità con eventi, regole e destinazioni in EventBridge.

  • Crea e configura le destinazioni richiamate dalle tue EventBridge regole. Le regole possono richiamare molti tipi di obiettivi, come flussi Amazon Kinesis,AWS Lambda funzioni, argomenti Amazon SNS e code Amazon SQS.

    La tua EventBridge regola e gli obiettivi associati devono trovarsi nelRegione AWS luogo in cui hai creato le tue risorse Greengrass. Per ulteriori informazioni, vedere Endpoint e quote di servizio in Riferimenti generali di AWS.

Per ulteriori informazioni, consulta Che cos'è Amazon EventBridge? e Guida introduttiva ad Amazon EventBridge nella Amazon EventBridge User Guide.

Crea una regola di evento per ottenere dati di telemetria (console)

Utilizza i seguenti passaggi perAWS Management Console creare una EventBridge regola che riceva i dati di telemetria pubblicati dal core di Greengrass. Ciò consente a server Web, indirizzi e-mail e altri sottoscrittori di argomenti di rispondere all'evento. Per ulteriori informazioni, consulta Creazione di una EventBridge regola che si attiva su un evento da unaAWS risorsa nella Guida per l' EventBridge utente di Amazon.

  1. Apri la EventBridgeconsole Amazon e scegli Crea regola.

  2. In Nome e descrizione, immettere un nome e una descrizione per la regola.

  3. Scegli Bus eventi e abilita la regola sul bus degli eventi selezionato.

  4. Seleziona il tipo di regola e scegli Regola con uno schema di evento.

  5. Seleziona Successivo.

  6. In Origine evento, scegli AWSeventi o eventi EventBridge partner.

  7. Per Evento di esempio, scegli AWSeventi e seleziona Greengrass Telemetry Data.

  8. Nel modello di evento, effettuate le seguenti selezioni:

    1. Per Event source (Origine evento), scegli AWS services (Servizi ).

    2. Per l'AWSassistenza, scegli Greengrass.

    3. Per Tipo di evento, scegli Dati di telemetria Greengrass.

  9. Seleziona Successivo.

  10. Per Target 1, scegli il AWSservizio.

  11. Per Seleziona un obiettivo, scegli la coda SQS.

  12. In Queue, scegli la tua funzione.

Crea una regola di evento per ottenere dati di telemetria (CLI)

Utilizza i seguenti passaggi perAWS CLI creare una EventBridge regola che riceva i dati di telemetria pubblicati dal core di Greengrass. Ciò consente a server Web, indirizzi e-mail e altri sottoscrittori di argomenti di rispondere all'evento.

  1. Crea la regola.

    • Sostituisci thing-name con il nome della cosa principale.

      Per ottenere il nome dell'oggetto, si usa il get-core-definition-versioncomando. Il comando restituisce l'ARN dell'oggetto che contiene il nome dell'oggetto.

    aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"

    Le proprietà omesse dal modello vengono ignorate.

  2. Aggiungi l'argomento come destinazione della regola. L'esempio seguente utilizza Amazon SQS ma puoi configurare altri tipi di target.

    • Sostituisci queue-arn con l'ARN della tua coda Amazon SQS.

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="queue-arn"
    Nota

    Per consentire EventBridge ad Amazon di richiamare la coda di destinazione, è necessario aggiungere una policy basata sulle risorse all'argomento. Per ulteriori informazioni, consulta le autorizzazioni di Amazon SQS nella Amazon EventBridge User Guide.

Per ulteriori informazioni, consulta Eventi e modelli di eventi EventBridge nella Guida per l' EventBridge utente di Amazon.

Risoluzione dei problemi diAWS IoT Greengrass telemetria

Utilizza le informazioni seguenti per risolvere i problemi relativi alla configurazione dellaAWS IoT Greengrass telemetria.

Errore: la risposta contiene "ConfigurationStatus«:"OutOfSync "dopo l'esecuzione del get-thing-runtime-configuration comando

Soluzioni:

  • Il servizioAWS IoT Device Shadow richiede tempo per elaborare gli aggiornamenti della configurazione di runtime e fornire gli aggiornamenti al dispositivo principale di Greengrass. Potresti attendere e verificare se le impostazioni di telemetria sono sincronizzate in seguito.

  • Assicurati che il tuo dispositivo principale sia online.

  • Abilita Amazon CloudWatch Logs inAWS IoT Core per monitorare l'ombra.

  • Usa le AWS IoTmetriche per monitorare le tue cose.