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. Especifique que la consulta se ejecute cada 60 segundos y los resultados de la consulta se envíen a CloudWatch, donde puede ver la cantidad de sensores que presentan posibles riesgos de alta temperatura y configurar 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. La métrica de flota se crea para monitorizar el número de sensores con temperaturas superiores a 80 grados Fahrenheit en 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 objetos cuyos nombres comiencen por TempSensor y 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, especifique el recuento para el tipo de agregación y las estadísticas 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 TempSensor y 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 en 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" }

Ver métricas de flota en CloudWatch

Después de 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 la cantidad de sensores cuyos nombres comienzan por TempSensor y con temperaturas superiores a 80 grados Fahrenheit.

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

  2. En el menú CloudWatch del panel izquierdo, elija Métricas para ampliar el submenú y, a continuación, elija 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 IoTFleetMetrics. 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:

    Métricas de flota de AWS IoT
    nota

    El atributo Period de CloudWatch tiene un valor predeterminado de 5 minutos. Es el intervalo de tiempo entre los puntos de datos que se muestran en 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 menú CloudWatch del panel izquierdo, elija Alarmas para ampliar el submenú y, a continuación, elija 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, consulte Uso de las alarmas de Amazon CloudWatch.

Para obtener más información, consulte Uso de las métricas de Amazon CloudWatch.

Si no puede ver los puntos de datos en CloudWatch, consulte Solución de problemas de 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 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, consulte Uso de las métricas de Amazon CloudWatch.