Resolución de problemas de la indexación de flotas - AWS IoT Core

Resolución de problemas de la indexación de flotas

Solución de problemas de consultas de agregación en el servicio de indexación de flotas

Si tiene errores de falta de coincidencia de tipos, puede utilizar Registros de CloudWatch para solucionar el problema. Registros de CloudWatch debe estar habilitado antes de que el servicio de indexación de flotas escriba los registros. Para obtener más información, consulte Monitorización de AWS IoT con Registros de CloudWatch.

Para hacer consultas de agregación en campos no administrados, debe especificar un campo que usted haya definido en el argumento customFields transferido a UpdateIndexingConfiguration o update-indexing-configuration. Si el valor del campo no coincide con el tipo de datos del campo configurado, este valor se omite al realizar una consulta de agregación.

Si un campo no se puede indexar debido a un tipo no coincidente, el servicio de indexación de flotas le envía un registro de errores a Registros de CloudWatch. El registro de errores contiene el nombre del campo, el valor que no se pudo convertir y el nombre de objeto del dispositivo. A continuación, se muestra un ejemplo de registro de error.

{ "timestamp": "2017-02-20 20:31:22.932", "logLevel": "ERROR", "traceId": "79738924-1025-3a00-a669-7bec69f7f07a", "accountId": "000000000000", "status": "SucceededWithIssues", "eventType": "IndexingCustomFieldFailed", "thingName": "thing0", "failedCustomFields": [ { "Name": "attributeName1", "Value": "apple", "ExpectedType": "String" }, { "Name": "attributeName2", "Value": "2", "ExpectedType": "Boolean" } ] }

Si un dispositivo se ha desconectado durante aproximadamente una hora, el valor timestamp del estado de conectividad podría no aparecer. Para las sesiones persistentes, el valor podría no aparecer después de que un cliente se haya desconectado durante un periodo mayor que el tiempo de vida (TTL) configurado para la sesión persistente. Los datos de estado de conectividad solo se indexan para las conexiones donde el ID de cliente tiene un nombre de objeto coincidente. (El ID de cliente es el valor que se utiliza para conectar un dispositivo a AWS IoT Core).

Resolución de problemas en la configuración de la indexación de flotas

No se puede cambiar a versiones inferiores en la configuración de la indexación de flotas

No se puede cambiar la configuración de la indexación de flotas a una versión inferior cuando quiere eliminar los orígenes de datos asociados a una métrica de flotas o a un grupo dinámico.

Por ejemplo, si la configuración de indexación tiene datos de registro, datos de sombra y datos de conectividad y existe una métrica de flotas con la consulta thingName:TempSensor* AND shadow.desired.temperature>80, actualizar la configuración de indexación para incluir solo los datos de registro generará un error.

No se admite la modificación de los campos personalizados utilizados por las métricas de flota existentes.

No se puede actualizar la configuración de la indexación debido a que las métricas de flota o los grupos dinámicos son incompatibles

Si no puede actualizar la configuración de indexación porque las métricas de flota o los grupos dinámicos son incompatibles, elimine las métricas de flota o los grupos dinámicos incompatibles antes de actualizar la configuración de indexación.

Solución de problemas de la indexación de ubicaciones y geoconsultas

Para solucionar errores de tipos no coincidentes en la indexación de ubicaciones y las geoconsultas, puede activar los registros de CloudWatch. Para obtener más información sobre cómo supervisar AWS IoT con CloudWatch, siga la guía paso a paso.

Al indexar los datos de ubicación mediante geoconsultas, los campos de ubicación que especifique en geoLocations deben coincidir con los campos de ubicación que pase a UpdateIndexingConfiguration. Si no hay coincidencia, la indexación de flotas envía un error de tipo sin coincidencia a CloudWatch. El registro de errores contiene el nombre del campo, el valor que no se pudo convertir y el nombre de objeto del dispositivo.

A continuación, se muestra un ejemplo de registro de error.

{ "timestamp": "2023-11-09 01:39:43.466", "logLevel": "ERROR", "traceId": "79738924-1025-3a00-a669-7bec69f7f07a", "accountId": "123456789012", "status": "Failure", "eventType": "IndexingGeoLocationFieldFailed", "thingName": "thing0", "failedGeolocationFields": [ { "Name": "attributeName1", "Value": "apple", "ExpectedType": "Geopoint" } ], "reason": "failed to index the field because it could not be converted to one of the expected geoLocation formats." }

Para obtener más información, consulte Indexación de datos de ubicación.

Resolución de problemas en las métricas de flotas

No puedo ver los puntos de datos en CloudWatch

Si puede crear una métrica de flotas, pero no puede ver los puntos de datos en CloudWatch, es probable que no disponga de un objeto que cumpla con los criterios de la cadena de consultas.

Consulte este comando de ejemplo para ver cómo crear una métrica de flotas:

aws iot create-fleet-metric --metric-name "example_FM" --query-string "thingName:TempSensor* AND attributes.temperature>80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count

Si no tiene un objeto que cumpla con los criterios de la cadena de consulta --query-string "thingName:TempSensor* AND attributes.temperature>80":

  • Con values=count, podrá crear una métrica de flotas y habrá puntos de datos para mostrarlos en CloudWatch. Los puntos de datos del valor count son siempre 0.

  • Con values distintos a count, podrá crear una métrica de flotas, pero no la verá en CloudWatch y no habrá puntos de datos que mostrar en CloudWatch.