AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no publicará actualizaciones que proporcionen características, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten en AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes características nuevas y es compatible con más plataformas.
Recopilación de datos de telemetría del estado del sistema desde los dispositivos AWS IoT Greengrass principales
Los datos de telemetría del estado del sistema son datos de diagnóstico que pueden ayudarlo a monitorear el rendimiento de las operaciones críticas en sus dispositivos principales de Greengrass. El agente de telemetría del núcleo de Greengrass recopila datos de telemetría locales y los publica en Amazon EventBridge sin requerir ninguna interacción con el cliente. Los dispositivos principales publican datos de telemetría en EventBridge en función del «mejor esfuerzo». Por ejemplo, es posible que los dispositivos principales no entreguen los datos de telemetría cuando están fuera de línea.
nota
Amazon EventBridge es un servicio de bus de eventos que puede utilizar para conectar sus aplicaciones con datos procedentes de diversas fuentes, como los dispositivos centrales de Greengrass y las notificaciones de implementación. Para obtener más información, consulte What is Amazon EventBridge? (¿Qué es Amazon EventBridge?) en la Guía del usuario de Amazon EventBridge.
Puede crear proyectos y aplicaciones para recuperar, analizar, transformar y generar informes sobre los datos de telemetría de sus dispositivos periféricos. Los expertos de dominio, como los ingenieros de procesos, pueden utilizar estas aplicaciones para obtener información sobre el estado de la flota.
Para garantizar que los componentes periféricos de Greengrass funcionen correctamente, AWS IoT Greengrass utiliza los datos con fines de desarrollo y mejora de la calidad. Esta característica también ayuda a informar sobre las capacidades periféricas nuevas y mejoradas. AWS IoT Greengrass solo conserva datos de telemetría durante un máximo de siete días.
Esta característica está disponible en la versión 1.11.0 del software AWS IoT Greengrass Core y está habilitada de forma predeterminada para todos los dispositivos principales de Greengrass, incluidos los principales existentes. Empezará a recibir datos automáticamente en cuanto se actualice a la versión 1.11.0 o posterior del software AWS IoT Greengrass Core.
Para obtener información sobre cómo acceder o administrar datos de telemetría publicados, consulte Suscripción para recibir datos de telemetría.
El agente de telemetría recopila y publica las siguientes métricas del sistema.
Nombre | Descripción | Origen |
---|---|---|
|
La cantidad de memoria que utilizan actualmente todas las aplicaciones del dispositivo principal de Greengrass, incluido el sistema operativo. |
System (Sistema) |
|
La cantidad de CPU que utilizan actualmente todas las aplicaciones del dispositivo principal de Greengrass, incluido el sistema operativo. |
System (Sistema) |
|
El número de descriptores de archivos almacenados por el sistema operativo del dispositivo principal de Greengrass. Un descriptor de archivo identifica exclusivamente un archivo abierto. |
System (Sistema) |
|
El número de ejecuciones que provocan que la función de Lambda se quede sin memoria. |
System (Sistema) |
|
El número de mensajes descartados que están destinados a AWS IoT Core. |
Componente del sistema de |
|
Número de tiempos de espera para ejecutar la función de Lambda definida por el usuario. |
Función de Lambda definido por el usuario, Nube de AWS y sistema |
|
El número de ejecuciones que la función de Lambda definida por el usuario no completa. |
Función de Lambda definido por el usuario, Nube de AWS y sistema |
|
El número de ejecuciones que dan como resultado los registros de errores de escritura de la función de Lambda definida por el usuario. |
Función de Lambda definido por el usuario, Nube de AWS y sistema |
|
El número de bytes de datos anexos al administrador de flujos. |
Componente del sistema de |
|
El número de bytes de datos que el administrador de flujos exporta a los canales en AWS IoT Analytics. |
Componente del sistema de |
|
El número de bytes de datos que el administrador de flujos exporta a los flujos de Amazon Kinesis Data Streams. |
Componente del sistema de |
|
El número de bytes de datos que el administrador de flujos exporta a las propiedades de los activos en AWS IoT SiteWise. |
Componente del sistema de |
|
El número de bytes de datos que el administrador de flujos exporta a objetos de Amazon S3. |
Componente del sistema de |
|
El número de bytes de datos que el administrador de flujos exporta a HTTP. |
Componente del sistema de |
Configuración de los ajustes de telemetría
La telemetría de Greengrass utiliza los siguientes ajustes:
-
El agente de telemetría agrega los datos de telemetría cada hora.
-
El agente de telemetría publica un mensaje de telemetría cada 24 horas.
nota
Los ajustes no se pueden cambiar.
Puede habilitar o deshabilitar la característica de telemetría para un dispositivo principal de Greengrass. AWS IoT Greengrass usa sombras para administrar la configuración de telemetría. Los cambios se aplican inmediatamente cuando el dispositivo principal tiene una conexión a AWS IoT Core.
El agente de telemetría publica los datos mediante el protocolo MQTT con un nivel de calidad de servicio (QoS) de 0. Esto significa que no confirma la entrega ni reintenta publicar los intentos. Los mensajes de telemetría comparten una conexión MQTT con otros mensajes para las suscripciones destinadas para AWS IoT Core.
Además de los costes de enlace de datos, la transferencia de datos desde el núcleo hasta AWS IoT Core es gratuita. Esto se debe a que el agente publica en un tema AWS reservado. Sin embargo, en función de su caso de uso, es posible que incurra en costes cuando reciba o procese los datos.
Requisitos
Se aplican los siguientes requisitos al configurar los ajustes de telemetría:
-
Debe usar la versión 1.11.0 o posterior del software AWS IoT Greengrass Core.
nota
Si está ejecutando una versión anterior y no desea usar telemetría, no tiene que realizar ninguna acción.
-
Debe proporcionar permisos de IAM para actualizar la sombra principal (cosa) y para llamar a las API de configuración antes de actualizar los ajustes de telemetría.
El siguiente ejemplo de política de IAM le permite administrar la configuración oculta y el tiempo de ejecución de un núcleo específico:
{ "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
" ] } ] }Puede conceder acceso granular o condicional a recursos (por ejemplo, utilizando un esquema de nomenclatura con comodín
*
) Para obtener más información, consulte Adición y eliminación de políticas de IAM en la Guía del usuario de IAM.
Configurar los ajustes de telemetría (consola)
A continuación se muestra cómo actualizar los ajustes de telemetría de un núcleo de Greengrass en la consola de AWS IoT Greengrass.
-
En el panel de navegación de la consola de AWS IoT, en Administrar, expanda los Dispositivos de Greengrass y, a continuación, elija Grupos (V1).
-
En Grupos de Greengrass, elija su grupo objetivo.
-
En la página de configuración del grupo, en la sección Descripción general, elija su Greengrass core.
-
En la página de configuración del núcleo, elija la pestaña Telemetría.
-
En la sección Telemetría del estado del sistema, seleccione Configurar.
-
En Configurar telemetría, seleccione Telemetría para activar o desactivar el estado de Telemetría.
importante
De forma predeterminada, la característica de telemetría está habilitada para la versión 1.11.0 o posterior del software AWS IoT Greengrass Core.
Los cambios surten efecto durante el tiempo de ejecución. No es necesario implementar el grupo.
Configurar los ajustes de telemetría (CLI)
En la AWS IoT Greengrass API, el objeto TelemetryConfiguration
representa la configuración de telemetría de un Greengrass core. Este objeto forma parte del objeto RuntimeConfiguration
asociado al núcleo. Puede usar la AWS IoT Greengrass API, AWS CLI o el AWS SDK para administrar la telemetría de Greengrass. En los ejemplos de esta sección se utiliza la AWS CLI.
- Para comprobar los ajustes de telemetría
-
El siguiente comando obtiene los ajustes de telemetría de un Greengrass core.
-
Sustituya
core-thing-name
por el nombre del núcleo objetivo.Para obtener el nombre de la cosa, utilice el comando get-core-definition-version. El comando devuelve el ARN de la cosa que contiene el nombre de la cosa.
aws greengrass get-thing-runtime-configuration --thing-name
core-thing-name
El comando
GetCoreRuntimeConfigurationResponse
devuelve los datos en un objeto JSON. Por ejemplo:{ "RuntimeConfiguration": { "TelemetryConfiguration": { "ConfigurationSyncStatus": "OutOfSync", "Telemetry": "On" } } }
-
- Para configurar los ajustes de telemetría
-
El siguiente comando actualiza los ajustes de telemetría de un Greengrass core.
-
Sustituya
core-thing-name
por el nombre del núcleo objetivo.Para obtener el nombre de la cosa, utilice el comando get-core-definition-version. El comando devuelve el ARN de la cosa que contiene el nombre de la cosa.
Se han aplicado cambios en la configuración a la telemetría si el
ConfigurationSyncStatus
esInSync
. Los cambios surten efecto durante el tiempo de ejecución. No es necesario implementar el grupo. -
Objeto TelemetríaConfiguración
El objeto de TelemetryConfiguration
incluye las siguientes propiedades:
ConfigurationSyncStatus
-
Comprueba si los ajustes de telemetría están sincronizados. Es posible que no realice cambios en esta propiedad.
Tipo: cadena
Valores válidos:
InSync
oOutOfSync
Telemetry
-
Activa o desactiva la telemetría. El valor predeterminado es
On
.Tipo: String
Valores válidos:
On
oOff
Suscripción para recibir datos de telemetría
Puede crear reglas en Amazon EventBridge que definan cómo procesar los datos de telemetría publicados desde el dispositivo Greengrass core. Cuando EventBridge recibe los datos, invoca las acciones de destino definidas en sus reglas. Por ejemplo, puede crear reglas de eventos que envíen notificaciones, almacenen información sobre eventos, adopten medidas correctivas o invoquen otros eventos.
Evento de telemetría
El evento de un cambio de estado de la implementación, incluidos los datos de telemetría, tiene el siguiente 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" } ] } ] } }
La matriz ADP
contiene una lista de puntos de datos agregados que tienen las siguientes propiedades:
TS
-
Obligatorio. Marca temporal del momento en que se agregaron los datos.
NS
-
Obligatorio. El espacio de nombre del sistema de archivos.
M
-
Obligatorio. Lista de métricas Una métrica contiene las siguientes propiedades:
N
-
El nombre de la métrica.
Sum
-
El valor métrico agregado. El agente de telemetría añade nuevos valores al total anterior, por lo que la suma es un valor cada vez mayor. Puede usar la marca de tiempo para encontrar el valor de una agregación específica. Por ejemplo, para encontrar el último valor agregado, reste el valor de la marca de tiempo anterior del último valor de marca de tiempo.
U
-
La unidad del valor métrico.
ThingName
-
Obligatorio. El nombre del dispositivo al que apunta.
Prerrequisitos para crear las reglas de EventBridge
Antes de crear reglas de EventBridge de eventos para AWS IoT Greengrass, debe hacer lo siguiente:
-
Familiarícese con los eventos, las reglas y los destinos de EventBridge.
-
Cree y configure los destinos que las reglas de EventBridge han invocado. Las reglas pueden invocar muchos tipos de objetivos, como transmisiones de Amazon Kinesis, funciones AWS Lambda, temas de Amazon SNS y colas de Amazon SQS.
Su regla de EventBridge y los objetivos asociados deben estar en el Región de AWS donde creó sus recursos de Greengrass. Para obtener más información, consulte Puntos de enlace y cuotas en la Referencia general de AWS.
Para obtener más información, consulte What is Amazon EventBridge? (¿Qué es Amazon EventBridge?) y Getting started with Amazon EventBridge (Introducción a Amazon EventBridge) en la Guía del usuario de Amazon EventBridge.
Cree una regla de eventos para obtener datos de telemetría (consola)
Siga los siguientes pasos para usar el AWS Management Console para crear una regla de EventBridge que reciba los datos de telemetría publicados por Greengrass core. De este modo, los servidores web, las direcciones de correo electrónico y otros suscriptores del tema podrán responder al evento. Para obtener más información, consulte Creación de una regla de EventBridge que se activa en función de un evento de un recurso de AWS en la Guía del usuario de Amazon EventBridge.
-
Abra la consola de Amazon EventBridge
y elija Crear regla. -
En Name and description (Nombre y descripción), escriba un nombre y descripción para la regla.
-
Elija bus de eventos y active la regla en el bus de eventos seleccionado.
-
Seleccione Tipo de regla y luego Regla con un patrón de evento.
-
Elija Siguiente.
-
En Origen del evento, elija Eventos de AWS o eventos de socios de EventBridge.
-
En Evento de muestra, elija eventos AWS y seleccione Datos de telemetría de Greengrass.
-
En Patrón de eventos, seleccione las siguientes opciones:
-
En Origen de evento, seleccione Servicios de AWS.
-
En Servicio de AWS, elija Greengrass.
-
En Tipo de evento, elija Datos de telemetría de Greengrass.
-
-
Elija Siguiente.
-
En Target 1 elija AWS service.
-
En Seleccione un objetivo, elija la cola de SQS.
-
En Cola, elija su función.
Cree una regla de eventos para obtener datos de telemetría (CLI)
Siga los siguientes pasos para usar el AWS CLI para crear una regla de EventBridge que reciba los datos de telemetría publicados por Greengrass core. De este modo, los servidores web, las direcciones de correo electrónico y otros suscriptores del tema podrán responder al evento.
-
Crear la regla.
-
Sustituya
thing-name
por el nombre del objeto del núcleo.Para obtener el nombre de la cosa, utilice el comando get-core-definition-version. El comando devuelve el ARN de la cosa que contiene el nombre de la cosa.
aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"
thing-name
\"]}}"Las propiedades que se omiten en el patrón no se tienen en cuenta.
-
-
Añada el tema como destino de la regla. El siguiente ejemplo usa Amazon SQS, pero puede configurar otros tipos de objetivos.
-
Sustituya
queue-arn
por el ARN de su cola de Amazon SQS.
aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="
queue-arn
"nota
Para permitir que Amazon EventBridge invoque la cola de destino, debe agregar en el tema una política basada en recursos. Para obtener más información, consulte Permisos de Amazon SQS en la Guía del usuario de Amazon EventBridge.
-
Para obtener más información, consulte Events and event patterns in EventBridge (Eventos y patrones de eventos en EventBridge) en la Guía del usuario de Amazon EventBridge.
Solución de problemas de telemetría AWS IoT Greengrass
Utilice la siguiente información como ayuda para solucionar problemas al configurar la telemetría AWS IoT Greengrass.
Error: la respuesta contiene «ConfigurationStatus»: «OutOfSync» después de ejecutar el comando get-thing-runtime-configuration
Soluciones:
-
El servicio sombra de dispositivo AWS IoT tarda en procesar las actualizaciones de configuración en tiempo de ejecución y en entregar las actualizaciones al dispositivo principal de Greengrass. Puede esperar y comprobar si los ajustes de telemetría están sincronizados más adelante.
-
Asegúrese de que el dispositivo del núcleo esté en línea.
-
Active Registros de Amazon CloudWatch AWS IoT Core para monitorear la sombra.
-
Utilice las métricas de AWS IoT para monitorizar su objeto.