Explicación introductoria - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Explicación introductoria

En este tutorial, creará una métrica de flota para monitorizar las temperaturas de sus sensores y detectar posibles anomalías. Al crear la métrica de flota, defina una consulta de agregación que detecte el número de sensores con temperaturas superiores a 80 grados Fahrenheit. Usted especifica que la consulta se ejecute cada 60 segundos y los resultados de la consulta se CloudWatch emitirán allí, donde podrá ver la cantidad de sensores que presentan posibles riesgos de alta temperatura y configurar las alarmas. Para completar este tutorial utilizará la AWS CLI.

En este tutorial, aprenderá a:

Para completar este tutorial se necesitan aproximadamente 15 minutos.

Requisitos previos

Configuración

Para utilizar las métricas de flota, active la indexación de flotas. Para habilitar la indexación de flotas de sus objetos o grupos de objetos con orígenes de datos específicos y configuraciones asociadas, siga las instrucciones de Administrar la indexación de objetos y Administrar la indexación de grupos de objetos.

Para configurar
  1. Ejecute el siguiente comando para habilitar la indexación de flotas y especifique los orígenes de datos en los que realizar la búsqueda.

    aws iot update-indexing-configuration \ --thing-indexing-configuration "thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.temperature,type=Number},{name=attributes.rackId,type=String},{name=attributes.stateNormal,type=Boolean}],thingConnectivityIndexingMode=STATUS" \

    El comando de la CLI del ejemplo anterior permite que la indexación de flotas admita la búsqueda de datos de registro, datos de sombras y el estado de conectividad de las objetos mediante el índice AWS_Things.

    El cambio de la configuración puede tardar algunos minutos en completarse. Compruebe que la indexación de flotas esté habilitada antes de crear las métricas de flota.

    Para comprobar si la indexación de flotas está habilitada, ejecute el siguiente comando de la CLI:

    aws --region us-east-1 iot describe-index --index-name "AWS_Things"

    Para obtener más información, consulte Habilitar la indexación de objetos.

  2. Ejecute el siguiente script bash para crear diez objetos y describirlos.

    # Bash script. Type `bash` before running in other shells. Temperatures=(70 71 72 73 74 75 47 97 98 99) Racks=(Rack1 Rack1 Rack2 Rack2 Rack3 Rack4 Rack5 Rack6 Rack6 Rack6) IsNormal=(true true true true true true false false false false) for ((i=0; i < 10; i++)) do thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[@]:$i:1},rackId=${Racks[@]:$i:1},stateNormal=${IsNormal[@]:$i:1}}") aws iot describe-thing --thing-name "TempSensor$i" done

    Este script crea diez objetos para representar diez sensores. Cada objeto tiene los atributos de temperature, rackId, y stateNormal, tal como se describe en la siguiente tabla:

    Atributo Tipo de datos Descripción
    temperature Número Valor de temperatura en grados Fahrenheit
    rackId Cadena ID del rack de servidores que contiene los sensores
    stateNormal Booleano Si el valor de temperatura del sensor es normal o no

    La salida de este script contiene diez archivos JSON. Uno de los archivos JSON tiene el siguiente aspecto:

    { "version": 1, "thingName": "TempSensor0", "defaultClientId": "TempSensor0", "attributes": { "rackId": "Rack1", "stateNormal": "true", "temperature": "70" }, "thingArn": "arn:aws:iot:region:account:thing/TempSensor0", "thingId": "example-thing-id" }

    Para obtener más información, consulte la sección Crear un objeto.

Crear métricas de flota

Para crear una métrica de flota
  1. Ejecute el siguiente comando para crear una métrica de flota llamada high_temp_FM. Usted crea la métrica de la flota para monitorear la cantidad de sensores con temperaturas superiores a 80 grados Fahrenheit in. CloudWatch

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

    --metric-name

    Tipo de datos: cadena. El parámetro --metric-name especifica el nombre de una métrica de flota. En este ejemplo, va a crear una métrica de flota llamada high_temp_FM.

    --query-string

    Tipo de datos: cadena. El parámetro --query-string especifica la cadena de consulta. En este ejemplo, la cadena de consulta significa consultar todos los elementos cuyos nombres comiencen por TempSensory con temperaturas superiores a 80 grados Fahrenheit. Para obtener más información, consulte Sintaxis de consultas.

    --period

    Tipo de datos: entero. El parámetro --period especifica el tiempo necesario para recuperar los datos agregados en segundos. En este ejemplo, se especifica que la métrica de flota que está creando recupera los datos agregados cada 60 segundos.

    --aggregation-field

    Tipo de datos: cadena. El parámetro --aggregation-field especifica el atributo que se va a evaluar. En este ejemplo, se va a evaluar el atributo de temperatura.

    --aggregation-type

    El parámetro --aggregation-type especifica el resumen estadístico que se mostrará en la métrica de la flota. Para sus tareas de monitorización, puede personalizar las propiedades de consulta de agregación para los diferentes tipos de agregación (estadísticas, cardinalidad y percentil). En este ejemplo, se especifica el recuento para el tipo de agregación y Statistics para que devuelva el recuento de dispositivos que tienen atributos que coinciden con la consulta, es decir, para devolver el recuento de los dispositivos cuyos nombres comiencen por TempSensory con temperaturas superiores a 80 grados Fahrenheit. Para obtener mas información, consulte Consulta de datos agregados.

    El resultado de este comando tendrá un aspecto similar al siguiente.

    { "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", "metricName": "high_temp_FM" }
    nota

    Los puntos de datos pueden tardar un momento en mostrarse. CloudWatch

    Para obtener más información sobre cómo crear una métrica de flota, consulte Administración de métricas de flota.

    Si no puede crear una métrica de flota, vaya a Solución de problemas de métricas de flota.

  2. (Opcional) Ejecute el siguiente comando para describir su métrica de flota llamada high_temp_FM:

    aws iot describe-fleet-metric --metric-name "high_temp_FM"

    El resultado de este comando tendrá un aspecto similar al siguiente.

    { "queryVersion": "2017-09-30", "lastModifiedDate": 1625249775.834, "queryString": "*", "period": 60, "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", "aggregationField": "registry.version", "version": 1, "aggregationType": { "values": [ "count" ], "name": "Statistics" }, "indexName": "AWS_Things", "creationDate": 1625249775.834, "metricName": "high_temp_FM" }

Vea las métricas de la flota en CloudWatch

Tras crear la métrica de flota, puede ver los datos de la métrica en CloudWatch. En este tutorial, verá la métrica que muestra el número de sensores cuyos nombres comienzan por TempSensory con temperaturas superiores a 80 grados Fahrenheit.

Para ver los puntos de datos en CloudWatch
  1. Abra la CloudWatch consola en https://console.aws.amazon.com/cloudwatch/.

  2. En el CloudWatch menú del panel izquierdo, selecciona Métricas para expandir el submenú y, a continuación, selecciona Todas las métricas. Esto abre la página con la mitad superior para mostrar el gráfico y la mitad inferior contiene cuatro secciones con pestañas.

  3. La primera sección con pestañas Todas las métricas muestra todas las métricas que puede ver en grupos, elija IoT FleetMetrics. Contiene todas las métricas de su flota.

  4. En la sección Tipo de agregación de la pestaña Todas las métricas, seleccione Tipo de agregación para ver todas las métricas de flota que ha creado.

  5. Elija la métrica de flota para mostrar el gráfico a la izquierda de la sección Tipos de agregación. Verá el recuento de valores a la izquierda del nombre de la métrica, y este es el valor del tipo de agregación que especificó en la sección Crear métricas de flota de este tutorial.

  6. Seleccione la segunda pestaña, denominada Métricas graficadas, a la derecha de la pestaña Todas las métricas para ver la métrica de flota que eligió en el paso anterior.

    Debería poder ver un gráfico que muestre el número de sensores con temperaturas superiores a 80 grados Fahrenheit, como el siguiente:

    AWS IoT métricas de flota
    nota

    El atributo Periodo CloudWatch por defecto es de 5 minutos. Es el intervalo de tiempo entre los puntos de datos que aparecen CloudWatch. Puede cambiar la configuración de Period en función de sus necesidades.

  7. (Opcional) Puede configurar una alarma métrica.

    1. En el CloudWatch menú del panel izquierdo, selecciona Alarmas para expandir el submenú y, a continuación, selecciona Todas las alarmas.

    2. En la página Alarmas, seleccione Crear alarma en la esquina superior derecha. Sigue las instrucciones Crear alarma en la consola para crear una alarma según sea necesario. Para obtener más información, consulta Cómo usar CloudWatch las alarmas de Amazon.

Para obtener más información, consulta Cómo usar CloudWatch las métricas de Amazon.

Si no puedes ver los puntos de datos CloudWatch, lee Solución de problemas con las métricas de flota.

Limpieza

Para eliminar métricas de flota

El comando de la CLI delete-fleet-metric se utiliza para eliminar las métricas de flota.

Para eliminar la métrica de flota denominada high_temp_FM, ejecute el comando siguiente.

aws iot delete-fleet-metric --metric-name "high_temp_FM"

Para limpiar objetos

Puede utilizar el comando de la CLI delete-thing para eliminar objetos.

Para eliminar los diez objetos que ha creado, ejecute el siguiente script:

# Bash script. Type `bash` before running in other shells. for ((i=0; i < 10; i++)) do thing=$(aws iot delete-thing --thing-name "TempSensor$i") done

Para limpiar las métricas en CloudWatch

CloudWatch no admite la eliminación de métricas. Las métricas caducan en función de sus programas de retención. Para obtener más información, consulta Cómo usar CloudWatch las métricas de Amazon.