Collecte de données de télémétrie sur l'état du système à partir des appareilsAWS IoT Greengrass principaux - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Collecte de données de télémétrie sur l'état du système à partir des appareilsAWS IoT Greengrass principaux

Les données de télémétrie sur l'état du système sont des données de diagnostic qui peuvent vous aider à surveiller les performances des opérations critiques sur vos appareils principaux Greengrass. L'agent de télémétrie du noyau Greengrass collecte des données de télémétrie locales et les publie sur Amazon EventBridge sans nécessiter d'interaction avec le client. Les appareils principaux publient des données de télémétrie dans EventBridge la mesure du possible. Par exemple, les appareils principaux peuvent ne pas fournir de données de télémétrie lorsqu'ils sont hors ligne.

Note

Amazon EventBridge est un service de bus d'événements que vous pouvez utiliser pour connecter vos applications à des données provenant de diverses sources, telles que les appareils principaux de Greengrass et les notifications de déploiement. Pour plus d'informations, consultez Qu'est-ce qu'Amazon EventBridge ? dans le guide de EventBridge l'utilisateur Amazon.

Vous pouvez créer des projets et des applications pour récupérer, analyser, transformer et générer des rapports de télémétrie à partir de vos appareils de périphérie. Les experts du domaine, tels que les ingénieurs de procédés, peuvent utiliser ces applications pour mieux comprendre l'état de santé de la flotte.

Pour garantir le bon fonctionnement des composants de pointe de Greengrass,AWS IoT Greengrass utilise les données à des fins de développement et d'amélioration de la qualité. Cette fonctionnalité permet également de définir des fonctionnalités de pointe nouvelles et améliorées. AWS IoT Greengrassne conserve les données de télémétrie que pendant sept jours au maximum.

Cette fonctionnalité est disponible dans le logicielAWS IoT Greengrass Core v1.11.0 et est activée par défaut pour tous les cœurs Greengrass, y compris les cœurs existants. Vous commencez automatiquement à recevoir des données dès que vous passez au logicielAWS IoT Greengrass Core v1.11.0 ou version ultérieure.

Pour plus d'informations sur l'accès ou la gestion des données de télémétrie publiées ou sur la gestion de données de télémétrie publiées, consultezS'abonner pour recevoir des données de télémétrie.

L'agent de télémétrie collecte et publie les mesures système suivantes.

Métriques de télémétrie
Name (Nom) Description Source

SystemMemUsage

La quantité de mémoire actuellement utilisée par toutes les applications du périphérique principal Greengrass, y compris le système d'exploitation.

Système

CpuUsage

La quantité de processeur actuellement utilisée par toutes les applications du périphérique principal Greengrass, y compris le système d'exploitation.

Système

TotalNumberOfFDs

Nombre de descripteurs de fichiers stockés par le système d'exploitation du périphérique principal Greengrass. Un descripteur de fichier identifie de manière unique un fichier ouvert.

Système

LambdaOutOfMemory

Nombre d'exécutions entraînant l'épuisement de la mémoire de la fonction Lambda.

Système

DroppedMessageCount

Nombre de messages supprimés qui sont destinés àAWS IoT Core.

GGCloudSpoolercomposant du système

LambdaTimeout

Nombre de délais d'expiration pour exécuter la fonction Lambda définie par l'utilisateur.

Fonction Lambda et système définis par l'utilisateurAWS Cloud

LambdaUngracefullyKilled

Nombre d'exécutions que la fonction Lambda définie par l'utilisateur ne parvient pas à effectuer.

Fonction Lambda et système définis par l'utilisateurAWS Cloud

LambdaError

Nombre d'exécutions qui entraînent l'écriture de journaux d'erreurs par la fonction Lambda définie par l'utilisateur.

Fonction Lambda et système définis par l'utilisateurAWS Cloud

BytesAppended

Nombre d'octets de données ajoutés au gestionnaire de flux.

GGStreamManagercomposant du système

BytesUploadedToIoTAnalytics

Nombre d'octets de données que le gestionnaire de flux exporte vers les canaux dans lesquelsAWS IoT Analytics.

GGStreamManagercomposant du système

BytesUploadedToKinesis

Nombre d'octets de données que le gestionnaire de flux exporte vers des flux dans Amazon Kinesis Data Streams.

GGStreamManagercomposant du système

BytesUploadedToIoTSiteWise

Nombre d'octets de données dans lesquels le gestionnaire de flux exporte vers des propriétés de ressource dans, dansAWS IoT SiteWise,

GGStreamManagercomposant du système

BytesUploadedToS3ExportTaskExecutor

Nombre d'octets de données que le gestionnaire de flux exporte vers des objets dans Amazon S3.

GGStreamManagercomposant du système

BytesUploadedToHTTP

Nombre d'octets de données que le gestionnaire de flux exporte vers HTTP.

GGStreamManagercomposant du système

Configuration des paramètres de télémétrie

La télémétrie Greengrass utilise les paramètres suivants :

  • L'agent de télémétrie agrège les données de télémétrie toutes les heures.

  • L'agent de télémétrie publie un message de télémétrie toutes les 24 heures.

Note

Les paramètres ne peuvent pas être modifiés.

Vous pouvez activer ou désactiver la fonction de télémétrie pour un périphérique Greengrass Core. AWS IoT Greengrassutilise des ombres pour gérer la configuration de la télémétrie. Vos modifications prennent effet immédiatement lorsque le noyau est connecté àAWS IoT Core.

L'agent de télémétrie publie des données à l'aide du protocole MQTT avec un niveau de qualité de service (QoS) de 0. Cela signifie qu'il ne confirme pas la livraison et ne tente pas à nouveau de publier. Les messages de télémétrie partagent une connexion MQTT avec d'autres messages pour les abonnements auxquels ils sont destinésAWS IoT Core.

Outre les coûts de liaison de données, le transfert de données du noyau vers leAWS IoT Core serveur est gratuit. Cela est dû au fait que l'agent publie dans une rubriqueAWS réservée. Toutefois, selon votre cas d'utilisation, vous pouvez encourir des frais lorsque vous recevez ou traitez les données.

Prérequis

Les exigences suivantes s'appliquent lorsque vous configurez les paramètres de télémétrie :

  • Vous devez utiliser le logicielAWS IoT Greengrass Core v1.11.0 ou ultérieure.

    Note

    Si vous utilisez une version antérieure et si vous ne voulez pas utiliser la télémétrie, vous n'avez rien à faire.

  • Vous devez fournir des autorisations IAM pour mettre à jour l'ombre principale (objet) et pour appeler les API de configuration avant de mettre à jour les paramètres de télémétrie.

    L'exemple de politique IAM suivant vous permet de gérer la configuration de l'ombre et de l'exécution d'un cœur spécifique :

    { "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" ] } ] }

    Vous pouvez accorder un accès granulaire ou conditionnel aux ressources, par exemple en utilisant un schéma de* dénomination générique. Pour plus d'informations, consultez la section Ajout et suppression de politiques IAM dans le Guide de l'utilisateur IAM.

Configuration des paramètres de télémétrie (console)

Ce qui suit montre comment mettre à jour les paramètres de télémétrie d'un noyau Greengrass dans laAWS IoT Greengrass console.

  1. Dans le volet de navigation de laAWS IoT console, sous Gérer, développez les appareils Greengrass, puis choisissez Groupes (V1).

  2. Sous Groupes Greengrass, choisissez votre groupe cible.

  3. Sur la page de configuration du groupe, dans la section Présentation, choisissez votre noyau Greengrass.

  4. Sur la page de configuration du noyau, choisissez l'onglet Télémétrie.

  5. Dans la section Télémétrie de l'état du système, choisissez Configurer.

  6. Dans Configurer la télémétrie, sélectionnez Télémétrie pour activer ou désactiver l'état de télémétrie.

    Important

    Par défaut, la fonctionnalité de télémétrie est activée pour le logicielAWS IoT Greengrass Core v1.11.0 ou version ultérieure.

Les modifications prennent effet au moment de l'exécution. Vous n'avez pas besoin de déployer le groupe.

Configurer les paramètres de télémétrie (CLI)

Dans l'AWS IoT GreengrassAPI, l'TelemetryConfigurationobjet représente les paramètres de télémétrie d'un noyau Greengrass. Cet objet fait partie de l'RuntimeConfigurationobjet associé au noyau. Vous pouvez utiliser l'AWS IoT GreengrassAPI ouAWS CLI leAWS SDK pour gérer la télémétrie Greengrass. Les exemples de cette section utilisent leAWS CLI.

Pour vérifier les paramètres de télémétrie

La commande suivante permet d'obtenir les paramètres de télémétrie d'un noyau Greengrass.

  • Remplacez core-thing-namepar le nom du noyau cible.

    Pour obtenir le nom de l'objet, utilisez la get-core-definition-versioncommande. La commande renvoie l'ARN de l'objet qui contient le nom de l'objet.

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

La commande renvoie unGetCoreRuntimeConfigurationResponse objet dans la réponse JSON. Par exemple :

{ "RuntimeConfiguration": { "TelemetryConfiguration": { "ConfigurationSyncStatus": "OutOfSync", "Telemetry": "On" } } }
Pour configurer les paramètres de télémétrie

La commande suivante met à jour les paramètres de télémétrie d'un noyau Greengrass.

  • Remplacez core-thing-namepar le nom du noyau cible.

    Pour obtenir le nom de l'objet, utilisez la get-core-definition-versioncommande. La commande renvoie l'ARN de l'objet qui contient le nom de l'objet.

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\"}}"

Les modifications apportées aux paramètres de télémétrie ont été appliquées siConfigurationSyncStatus c'est le casInSync. Les modifications prennent effet au moment de l'exécution. Vous n'avez pas besoin de déployer le groupe.

TelemetryConfiguration objet

L'TelemetryConfigurationobjet a les propriétés suivantes :

ConfigurationSyncStatus

Vérifie si les paramètres de télémétrie sont synchronisés. Vous n'apporterez peut-être aucune modification à cette propriété.

Type : chaîne

Valeurs valides : InSync ou OutOfSync

Telemetry

Active ou désactive la télémétrie. La valeur par défaut est On.

Type : chaîne

Valeurs valides : On ou Off

S'abonner pour recevoir des données de télémétrie

Vous pouvez créer des règles dans Amazon EventBridge qui définissent la manière de traiter les données de télémétrie publiées à partir de l'appareil principal Greengrass. Lorsqu'il EventBridge reçoit les données, il appelle les actions cibles définies dans vos règles. Vous pouvez, par exemple, créer des règles d'événement pour envoyer des notifications, stocker des informations sur les événements, prendre des mesures correctives ou appeler d'autres événements.

Événement de télémétrie

L'événement de changement d'état de déploiement incluant les données de télémétrie utilise le format suivant :

{ "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" } ] } ] } }

LeADP tableau contient une liste de points de données agrégés qui possèdent les propriétés suivantes :

TS

Obligatoire. Date et heure de regroupement des données.

NS

Obligatoire. L'espace de noms du système.

M

Obligatoire. La liste des indicateurs. Une métrique contient les propriétés suivantes :

N

Nom de la métrique.

Sum

La valeur de la métrique agrégée. L'agent de télémétrie ajoute de nouvelles valeurs au total précédent, de sorte que la somme est une valeur toujours croissante. Vous pouvez utiliser l'horodatage pour trouver la valeur d'une agrégation spécifique. Par exemple, pour trouver la dernière valeur agrégée, soustrayez la valeur horodatée précédente de la dernière valeur horodatée.

U

Unité de la valeur métrique.

ThingName

Obligatoire. Nom de l'appareil que vous ciblez.

Conditions préalables à la création de EventBridge règles

Avant de créer une EventBridge règle pourAWS IoT Greengrass, vous devez procéder comme suit :

  • Familiarisez-vous avec les événements, les règles et les cibles dans EventBridge.

  • Créez et configurez les cibles appelées par vos EventBridge règles. Les règles peuvent invoquer de nombreux types de cibles, tels que les flux Amazon Kinesis,AWS Lambda les fonctions, les rubriques Amazon SNS et les files d'attente Amazon SQS.

    Votre EventBridge règle et les cibles associées doivent se trouverRégion AWS là où vous avez créé vos ressources Greengrass. Pour plus d'informations, consultez la section Points de terminaison et quotas de service dans le Références générales AWS.

Pour plus d'informations, consultez Qu'est-ce qu'Amazon EventBridge ? et Démarrez avec Amazon EventBridge dans le Guide de EventBridge l'utilisateur Amazon.

Création d'une règle d'événement pour obtenir des données de télémétrie (console)

Suivez les étapes suivantes pourAWS Management Console créer une EventBridge règle qui reçoit les données de télémétrie publiées par le noyau Greengrass. Cela permet aux serveurs web, aux adresses e-mail et aux autres abonnés à la rubrique de répondre à l'événement. Pour plus d'informations, consultez la section Création d'une EventBridge règle qui se déclenche lors d'un événement à partir d'uneAWS ressource du Guide de EventBridge l'utilisateur Amazon.

  1. Ouvrez la EventBridgeconsole Amazon et choisissez Créer une règle.

  2. Sous Name and description (Nom et description), entrez un nom et une description pour la règle.

  3. Choisissez Bus d'événements et activez la règle sur le bus d'événements sélectionné.

  4. Sélectionnez le type de règle et choisissez Règle avec un modèle d'événement.

  5. Choisissez Suivant.

  6. Dans Event source, sélectionnez AWSévénements ou événements EventBridge partenaires.

  7. Dans Exemple d'événement, choisissez AWSÉvénements, puis sélectionnez Greengrass Telemetry Data.

  8. Dans Modèle d'événements, effectuez les sélections suivantes :

    1. Pour Event source (Origine de l'événement), choisissez AWSservices (Services ).

    2. Pour le AWSservice, choisissez Greengrass.

    3. Pour Type d'événement, choisissez Greengrass Telemetry Data.

  9. Choisissez Suivant.

  10. Pour Target 1, choisissez AWSservice.

  11. Pour Sélectionner une cible, choisissez SQS Queue.

  12. Dans Queue, choisissez votre fonction.

Création d'une règle d'événement pour obtenir des données de télémétrie (CLI)

Suivez les étapes suivantes pourAWS CLI créer une EventBridge règle qui reçoit les données de télémétrie publiées par le noyau Greengrass. Cela permet aux serveurs web, aux adresses e-mail et aux autres abonnés à la rubrique de répondre à l'événement.

  1. Créez la règle .

    • Remplacez thing-name par le nom d'objet du noyau.

      Pour obtenir le nom de l'objet, utilisez la get-core-definition-versioncommande. La commande renvoie l'ARN de l'objet qui contient le nom de l'objet.

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

    Les propriétés qui sont omises dans le modèle sont ignorées.

  2. Ajoutez la rubrique en tant que cible de règle. L'exemple suivant utilise Amazon SQS mais vous pouvez configurer d'autres types de cibles.

    • Remplacez queue-arn par l'ARN de votre file d'attente Amazon SQS.

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

    Pour autoriser Amazon EventBridge à appeler votre file d'attente cible, vous devez ajouter une stratégie basée sur les ressources à votre rubrique. Pour plus d'informations, consultez les autorisations Amazon SQS dans le guide de EventBridge l'utilisateur Amazon.

Pour plus d'informations, consultez la section Événements et modèles d'événements EventBridge dans le Guide de EventBridge l'utilisateur Amazon.

Résolution des problèmesAWS IoT Greengrass de télémétrie

Consultez les informations suivantes pour essayer de résoudre les problèmes liés à la configuration de laAWS IoT Greengrass télémétrie.

Erreur : la réponse contient "ConfigurationStatus« :"OutOfSync "après avoir exécuté la get-thing-runtime-configuration commande

Des solutions :

  • Le serviceAWS IoT Device Shadow met du temps à traiter les mises à jour de configuration d'exécution et à fournir les mises à jour au périphérique principal Greengrass. Vous pouvez attendre et vérifier ultérieurement si les paramètres de télémétrie sont synchronisés.

  • Vérifiez que votre appareil principal est en ligne.

  • Activez Amazon CloudWatch Logs inAWS IoT Core pour surveiller l'ombre.

  • Utilisez AWS IoTdes indicateurs pour surveiller vos activités.