

# Métricas personalizadas
<a name="dd-detect-custom-metrics"></a>

Con las métricas personalizadas de AWS IoT Device Defender, puede definir y monitorizar métricas que sean exclusivas de su flota o caso de uso, como la cantidad de dispositivos conectados a las puertas de enlace wifi, los niveles de carga de las baterías o la cantidad de ciclos de alimentación de los enchufes inteligentes. Los comportamientos de las métricas personalizadas se definen en los perfiles de seguridad, que especifican los comportamientos esperados para un grupo de dispositivos (un grupo de objetos) o para todos los dispositivos. Puede monitorizar los comportamientos configurando alarmas, que puede utilizar para detectar y responder a problemas específicos de los dispositivos.

**Topics**
+ [

## Cómo usar las métricas personalizadas en la consola
](#dd-detect-custom-metrics-how-to-console)
+ [

## Cómo usar métricas personalizadas desde la CLI
](#dd-detect-custom-metrics-how-to-cli)
+ [

## Comandos de la CLI para métricas personalizadas
](#dd-detect-custom-metrics-cli-commands)
+ [

## API de métricas personalizadas
](#dd-detect-custom-metrics-apis)

## Cómo usar las métricas personalizadas en la consola
<a name="dd-detect-custom-metrics-how-to-console"></a>

**Topics**
+ [

### AWS IoT Device Defender Agent SDK (Python)
](#dd-detect-custom-metrics-device-agent)
+ [

### Crear una métrica personalizada y agregarla a un perfil de seguridad
](#dd-detect-console-create)
+ [

### Ver los detalles de las métricas personalizadas
](#dd-detect-console-read)
+ [

### Actualizar de una métrica personalizada
](#dd-detect-console-edit)
+ [

### Eliminar una métrica personalizada
](#dd-detect-console-delete)

### AWS IoT Device Defender Agent SDK (Python)
<a name="dd-detect-custom-metrics-device-agent"></a>

Para empezar, descargue el agente de ejemplo AWS IoT Device Defender Agent SDK (Python). El agente recopila las métricas y publica los informes. Una vez que se publiquen las métricas del dispositivo, podrá ver las métricas que se están recopilando y determinar los umbrales para configurar las alarmas. Las instrucciones para configurar el agente del dispositivo están disponibles en el [archivo Readme de AWS IoT Device Defender Agent SDK (Python)](https://github.com/aws-samples/aws-iot-device-defender-agent-sdk-python/blob/master/README.rst). Para obtener más información, consulte [AWS IoT Device Defender Agent SDK (Python)](https://github.com/aws-samples/aws-iot-device-defender-agent-sdk-python).

### Crear una métrica personalizada y agregarla a un perfil de seguridad
<a name="dd-detect-console-create"></a>

El siguiente procedimiento le muestra cómo crear una métrica personalizada en la consola.

1. En la [consola deAWS IoT](https://console.aws.amazon.com/iot), en el panel de navegación, amplíe **Defend** y, a continuación, seleccione **Detect**, **Métricas**.

1. En la página **Métricas personalizadas**, elija **Crear**.

1. En la página **Crear métrica personalizada**, haga lo siguiente:

   1. En **Nombre**, escriba un nombre para la métrica personalizada. Este nombre no se puede modificar después de haber creado la métrica personalizada.

   1. En **Nombre para mostrar (opcional)**, puede introducir un nombre descriptivo para la métrica personalizada. No tiene por qué ser único y se puede modificar después de la creación.

   1. En **Tipo**, elija el tipo de métrica que quiera monitorizar. Los tipos de métrica incluyen **string-list**, **ip-address-list**, **number-list** y **number**. No se puede modificar el tipo después de la creación.
**nota**  
ML Detect solo permite el tipo **number**.

   1. En **Etiquetas**, puede seleccionar las etiquetas que quiera asociar al recurso.

   Cuando haya terminado, seleccione **Confirmar**.

1. Una vez creada la métrica personalizada, aparecerá la página **Métricas personalizadas**, donde podrá ver la métrica personalizada recién creada.

1. A continuación, debe agregar su métrica personalizada a un perfil de seguridad. En la [consola de AWS IoT](https://console.aws.amazon.com/iot), en el panel de navegación, amplíe **Defend** y, a continuación, seleccione **Detect**, **Perfiles de seguridad**.

1. Elija el perfil de seguridad al que quiera agregar su métrica personalizada.

1. Seleccione **Acciones**, **Editar**.

1. Seleccione **Métricas adicionales que retener** y, a continuación, elija su métrica personalizada. Seleccione **Siguiente** en las siguientes pantallas hasta llegar a la **página de confirmación**. Elija **Guardar** y **Continuar**. Una vez que la métrica personalizada se haya agregado correctamente, aparecerá la página de detalles del perfil de seguridad.
**nota**  
Las estadísticas de percentiles no están disponibles para las métricas cuando alguno de los valores de métricas es un número negativo.

### Ver los detalles de las métricas personalizadas
<a name="dd-detect-console-read"></a>

El siguiente procedimiento le muestra cómo ver los detalles de una métrica personalizada en la consola.

1. En la [consola deAWS IoT](https://console.aws.amazon.com/iot), en el panel de navegación, amplíe **Defend** y, a continuación, seleccione **Detect**, **Métricas**.

1. Elija el **nombre** de la métrica personalizada de la que desea ver los detalles.

### Actualizar de una métrica personalizada
<a name="dd-detect-console-edit"></a>

El siguiente procedimiento le muestra cómo actualizar una métrica personalizada en la consola.

1. En la [consola deAWS IoT](https://console.aws.amazon.com/iot), en el panel de navegación, amplíe **Defend** y, a continuación, seleccione **Detect**, **Métricas**.

1. Seleccione el botón de opción situado junto a la métrica personalizada que quiera actualizar. En **Acciones**, seleccione **Editar**.

1. En la página **Actualizar métrica personalizada**, puede editar el nombre para mostrar y eliminar o agregar etiquetas.

1. Cuando haya terminado, elija **Actualizar**. La página **Métricas personalizadas**.

### Eliminar una métrica personalizada
<a name="dd-detect-console-delete"></a>

El siguiente procedimiento le muestra cómo eliminar una métrica personalizada en la consola.

1. En primer lugar, elimine la métrica personalizada de cualquier perfil de seguridad en el que se haga referencia. Puede ver qué perfiles de seguridad contienen su métrica personalizada en la página de detalles de la métrica personalizada. En la [consola deAWS IoT](https://console.aws.amazon.com/iot), en el panel de navegación, amplíe **Defend** y, a continuación, seleccione **Detect**, **Métricas**.

1. Elija la métrica personalizada que quiera eliminar. Elimine la métrica personalizada de cualquier perfil de seguridad que aparezca en la sección **Perfiles de seguridad** de la página de detalles de la métrica personalizada.

1. En la [consola deAWS IoT](https://console.aws.amazon.com/iot), en el panel de navegación, amplíe **Defend** y, a continuación, seleccione **Detect**, **Métricas**.

1. Seleccione el botón de opción situado junto a la métrica personalizada que quiera eliminar. En **Acciones**, seleccione **Eliminar**.

1. En el mensaje **¿Seguro que quiere eliminar la métrica personalizada?**, seleccione **Eliminar métrica personalizada**.
**aviso**  
Después de eliminar una métrica personalizada, se pierden todos los datos asociados a la métrica. Esta acción no se puede deshacer.

## Cómo usar métricas personalizadas desde la CLI
<a name="dd-detect-custom-metrics-how-to-cli"></a>

**Topics**
+ [

### AWS IoT Device Defender Agent SDK (Python)
](#dd-detec-custom-metrics-cli-sdk)
+ [

### Crear una métrica personalizada y agregarla a un perfil de seguridad
](#dd-detect-custom-cli-create)
+ [

### Ver los detalles de las métricas personalizadas
](#dd-detect-custom-cli-read)
+ [

### Actualizar de una métrica personalizada
](#dd-detect-custom-cli-edit)
+ [

### Eliminar una métrica personalizada
](#dd-detect-custom-cli-delete)

### AWS IoT Device Defender Agent SDK (Python)
<a name="dd-detec-custom-metrics-cli-sdk"></a>

Para empezar, descargue el agente de ejemplo AWS IoT Device Defender Agent SDK (Python). El agente recopila las métricas y publica los informes. Una vez publicadas las métricas del dispositivo, podrá ver las métricas que se están recopilando y determinar los umbrales para configurar las alarmas. Las instrucciones para configurar el agente del dispositivo están disponibles en el [archivo Readme de AWS IoT Device Defender Agent SDK (Python)](https://github.com/aws-samples/aws-iot-device-defender-agent-sdk-python/blob/master/README.rst). Para obtener más información, consulte [AWS IoT Device Defender Agent SDK (Python)](https://github.com/aws-samples/aws-iot-device-defender-agent-sdk-python).

### Crear una métrica personalizada y agregarla a un perfil de seguridad
<a name="dd-detect-custom-cli-create"></a>

El siguiente procedimiento muestra cómo crear una métrica personalizada y agregarla a un perfil de seguridad desde la CLI.

1. Utilice el comando de `[create-custom-metric](https://docs.aws.amazon.com/cli/latest/reference/iot/create-custom-metric.html)` para crear su métrica personalizada. En el siguiente ejemplo se crea una métrica personalizada que mide el porcentaje de batería.

   ```
   aws iot create-custom-metric \
       --metric-name "batteryPercentage" \
       --metric-type "number" \
       --display-name "Remaining battery percentage." \
       --region us-east-1
       --client-request-token "02ccb92b-33e8-4dfa-a0c1-35b181ed26b0" \
   ```

   Salida:

   ```
   {
       "metricName": "batteryPercentage",
       "metricArn": "arn:aws:iot:us-east-1:1234564789012:custommetric/batteryPercentage"
   }
   ```

1. Una vez creada la métrica personalizada, puede agregarla a un perfil existente utilizando `[update-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/update-security-profile.html)` o crear un nuevo perfil de seguridad para agregar la métrica personalizada utilizando `[create-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/create-security-profile.html)`. Aquí, creamos un nuevo perfil de seguridad llamado *batteryUsage* al que agregar nuestra nueva métrica personalizada *batteryPercentage*. También agregamos una métrica de Rules Detect llamada *cellularBandwidth*.

   ```
   aws iot create-security-profile \
       --security-profile-name batteryUsage \
       --security-profile-description "Shows how much battery is left in percentile."  \
       --behaviors "[{\"name\":\"great-than-75\",\"metric\":\"batteryPercentage\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"number\":75},\"consecutiveDatapointsToAlarm\":5,\"consecutiveDatapointsToClear\":1}},{\"name\":\"cellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]" \
       --region us-east-1
   ```

   Salida:

   ```
   {
       "securityProfileArn": "arn:aws:iot:us-east-1:1234564789012:securityprofile/batteryUsage",
       "securityProfileName": "batteryUsage"
   }
   ```

**nota**  
Las estadísticas de percentiles no están disponibles para las métricas cuando alguno de los valores de métricas es un número negativo.

### Ver los detalles de las métricas personalizadas
<a name="dd-detect-custom-cli-read"></a>

El siguiente procedimiento le muestra cómo ver los detalles de una métrica personalizada desde la CLI.
+ Utilice el comando de `[list-custom-metrics](https://docs.aws.amazon.com/cli/latest/reference/iot/list-custom-metrics.html)` para ver todas las métricas personalizadas.

  ```
  aws iot list-custom-metrics \
      --region us-east-1
  ```

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

  ```
  {
      "metricNames": [
          "batteryPercentage"
      ]
  }
  ```

### Actualizar de una métrica personalizada
<a name="dd-detect-custom-cli-edit"></a>

El siguiente procedimiento le muestra cómo actualizar una métrica personalizada desde la CLI.
+ Utilice el comando de `[update-custom-metric](https://docs.aws.amazon.com/cli/latest/reference/iot/update-custom-metric.html)` para actualizar una métrica personalizada. El siguiente ejemplo actualiza la `display-name`.

  ```
  aws iot update-custom-metric \
      --metric-name batteryPercentage \
      --display-name 'remaining battery percentage on device' \
      --region us-east-1
  ```

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

  ```
  {
      "metricName": "batteryPercentage",
      "metricArn": "arn:aws:iot:us-east-1:1234564789012:custommetric/batteryPercentage",
      "metricType": "number",
      "displayName": "remaining battery percentage on device",
      "creationDate": "2020-11-17T23:01:35.110000-08:00",
      "lastModifiedDate": "2020-11-17T23:02:12.879000-08:00"
  }
  ```

### Eliminar una métrica personalizada
<a name="dd-detect-custom-cli-delete"></a>

El siguiente procedimiento le muestra cómo eliminar una métrica personalizada desde la CLI.

1. Para eliminar una métrica personalizada, elimínela primero de los perfiles de seguridad a los que esté asociada. Utilice el comando `[list-security-profiles](https://docs.aws.amazon.com/cli/latest/reference/iot/list-security-profiles.html)` para ver los perfiles de seguridad con una determinada métrica personalizada.

1. Para eliminar una métrica personalizada de un perfil de seguridad, utilice el comando `[update-security-profiles](https://docs.aws.amazon.com/cli/latest/reference/iot/update-security-profiles.html)`. Introduzca toda la información que desee conservar, pero excluya la métrica personalizada.

   ```
   aws iot update-security-profile \
     --security-profile-name batteryUsage \
     --behaviors "[{\"name\":\"cellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]"
   ```

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

   ```
   {
     "behaviors": [{\"name\":\"cellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}],
     "securityProfileName": "batteryUsage",
     "lastModifiedDate": 2020-11-17T23:02:12.879000-09:00,
     "securityProfileDescription": "Shows how much battery is left in percentile.",
     "version": 2,
     "securityProfileArn": "arn:aws:iot:us-east-1:1234564789012:securityprofile/batteryUsage",  
     "creationDate": 2020-11-17T23:02:12.879000-09:00
   }
   ```

1. Una vez desasociada la métrica personalizada, utilice el comando `[delete-custom-metric](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-custom-metric.html)` para eliminarla.

   ```
   aws iot delete-custom-metric  \
     --metric-name batteryPercentage \
     --region us-east-1
   ```

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

   ```
   HTTP 200
   ```

## Comandos de la CLI para métricas personalizadas
<a name="dd-detect-custom-metrics-cli-commands"></a>

Puede utilizar los siguientes comandos de la CLI para crear y administrar métricas personalizadas.
+ [create-custom-metric](https://docs.aws.amazon.com/cli/latest/reference/iot/create-custom-metric.html)
+ [describe-custom-metric](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-custom-metric.html)
+ [list-custom-metrics](https://docs.aws.amazon.com/cli/latest/reference/iot/list-custom-metrics.html)
+ [update-custom-metric](https://docs.aws.amazon.com/cli/latest/reference/iot/update-custom-metric.html)
+ [delete-custom-metric](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-custom-metric.html)
+ [list-security-profiles](https://docs.aws.amazon.com/cli/latest/reference/iot/list-security-profiles.html)

## API de métricas personalizadas
<a name="dd-detect-custom-metrics-apis"></a>

Las siguientes API pueden utilizarse para crear y administrar métricas personalizadas.
+ [CreateCustomMetric](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCustomMetric.html)
+ [DescribeCustomMetric](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCustomMetric.html)
+ [ListCustomMetrics](https://docs.aws.amazon.com/iot/latest/apireference/API_ListCustomMetrics.html)
+ [UpdateCustomMetric](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCustomMetric.html)
+ [DeleteCustomMetric](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteCustomMetric.html)
+ [ListSecurityProfiles](https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html)