

Amazon Monitron ya no está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener información sobre funciones similares a las de Amazon Monitron, consulte nuestra [entrada de blog](https://aws.amazon.com/blogs/machine-learning/maintain-access-and-consider-alternatives-for-amazon-monitron).

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.

# Exportación de datos de Amazon Monitron con Kinesis v2
<a name="monitron-kinesis-export-v2"></a>

 Puede exportar datos de mediciones entrantes y los resultados de inferencia correspondientes desde Amazon Monitron y realizar análisis en tiempo real. La exportación de datos transmite datos en directo a Kinesis. 

**Topics**
+ [Exportación de datos a un flujo de Kinesis](#exporting-stream-procedure-v2)
+ [Edición de los ajustes de exportación de datos en directo](#edit-live-export-v2)
+ [Detención de una exportación de datos en directo](#stop-kinesis-export-v2)
+ [Visualización de errores de exportación de datos](#viewing-kinesis-export-errors-v2)
+ [Uso del cifrado en el lado del servidor para el flujo de Kinesis](#data-export-server-side-encryption-v2)
+ [Supervisión con Amazon CloudWatch Logs](data-export-cloudwatch-logs-v2.md)
+ [Almacenamiento de datos exportados en Amazon S3](kinesis-store-S3-v2.md)
+ [Procesamiento de datos con Lambda](data-export-lambda-v2.md)
+ [Comprensión del esquema de exportación de datos v2](data-export-schema-v2.md)
+ [Migración de Kinesis v1 a v2](migration-from-v1-to-v2.md)

## Exportación de datos a un flujo de Kinesis
<a name="exporting-stream-procedure-v2"></a>

1. En la página principal de su proyecto, casi en la parte inferior de la página, a la derecha, elija **Iniciar exportación de datos en directo**.

1. En **Seleccionar flujo de datos de Kinesis**, realice una de las siguientes acciones:
   + Introduzca el nombre de un flujo existente en el cuadro de búsqueda. A continuación, vaya al paso 5.
   +  Elija **Crear un nuevo flujo de datos**. 

1. En la página **Crear flujo de datos**, en **Configuración del flujo de datos**, introduzca el nombre de su flujo de datos.

1. En Capacidad de flujo de datos, elija su modo de capacidad:
   + Si los requisitos de rendimiento de su flujo de datos son impredecibles y variables, elija **Bajo demanda**.
   + Si puede estimar de forma fiable los requisitos de rendimiento de su flujo de datos, elija **Estipulado**. A continuación, en particiones estipuladas, introduzca el número de particiones que desee crear, o elija el **Estimador de particiones**.

1. Elija **Crear flujo de datos**.

## Edición de los ajustes de exportación de datos en directo
<a name="edit-live-export-v2"></a>

Para editar los ajustes de exportación de datos en directo:

1. Abra la consola de Amazon Monitron.

1. En el panel de navegación, elija **Proyectos**.

1. Si tiene múltiples proyectos, elija el proyecto para el que desea editar los ajustes de exportación.

1. En la página principal de su proyecto, en **Exportación de datos en directo**, en el menú desplegable **Acciones**, elija **Editar ajustes de exportación de datos en directo**.

## Detención de una exportación de datos en directo
<a name="stop-kinesis-export-v2"></a>

1. Abra la consola de Amazon Monitron.

1. En el panel de navegación, elija **Proyectos**.

1. Si tiene múltiples proyectos, elija el proyecto para el que desea editar los ajustes de exportación.

1. En la página principal de su proyecto, en **Exportación de datos en directo**, en el menú desplegable **Acciones**, elija **Detener exportación de datos en directo**.

1. En la ventana emergente, elija **Detener**.

## Visualización de errores de exportación de datos
<a name="viewing-kinesis-export-errors-v2"></a>

Para ver los mensajes de error en la interfaz CloudWatch de registros:
+ En la consola de Amazon Monitron, en la página principal de su proyecto, en **Exportación de datos en vivo**, elija grupo de **CloudWatch registros**.

## Uso del cifrado en el lado del servidor para el flujo de Kinesis
<a name="data-export-server-side-encryption-v2"></a>

Puede habilitar el cifrado en el lado del servidor para su flujo de datos de Kinesis antes de configurar la exportación de datos de Kinesis. Sin embargo, si se habilita el cifrado en el lado del servidor después de configurar la exportación de datos de Kinesis, Amazon Monitron no podrá publicar en el flujo. Esto se debe a que Amazon Monitron no tendrá permiso para llamar a [kms](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), GenerateDataKey por lo que podrá cifrar los datos enviados a Kinesis.

Para solucionar este problema, siga las instrucciones indicadas en [Edición de los ajustes de exportación de datos en directo](#edit-live-export-v2), pero sin cambiar la configuración. Esto asociará el cifrado que haya establecido con su configuración de exportación.

# Supervisión con Amazon CloudWatch Logs
<a name="data-export-cloudwatch-logs-v2"></a>

Puede supervisar la exportación de datos en tiempo real de Amazon Monitron mediante Amazon CloudWatch Logs. Si una medición no se puede exportar, Amazon Monitron enviará un evento de registro a sus CloudWatch registros. También puede configurar un filtro de métricas en el registro de errores para generar métricas y configurar alarmas. Una alarma puede vigilar determinados umbrales y enviar notificaciones o tomar medidas cuando se alcanzan dichos umbrales. Para obtener más información, consulte [la Guía del CloudWatch usuario](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html).

Amazon Monitron envía los eventos de registro al grupo de registros/aws/monitron/data-export/ \$1HASH\$1ID\$1.

El evento de registro tiene el siguiente formato JSON:

```
{
    "assetName": "string",
    "destination": "string",
    "errorCode": "string",
    "errorMessage": "string",
    "eventId": "string",
    "eventType": "string",
    "positionName": "string",
    "projectName": "string",
    "projectId": "string",
    "sensorId": "string",
    "gatewayId": "string",
    "siteName": "string",
    "timestamp": "string"
}
```

assetName  
+ El nombre del activo que se muestra en la aplicación
+ Tipo: cadena

destination  
+ El ARN del flujo de datos de Kinesis
+ Tipo: cadena
+ Patrón: arn:aws:kinesis: \$1\$1REGION\$1\$1: \$1\$1\$1ID\$1\$1 :stream/ \$1\$1STREAM\$1NAME\$1\$1 AWS\$1ACCOUNT 

errorCode  
+ El código de error
+ Tipo: cadena
+ Valores válidos: `INTERNAL_SEVER_ERROR | KINESIS_RESOURCE_NOT_FOUND | KINESIS_PROVISIONED_THROUGHPUT_EXCEEDED | KMS_ACCESS_DENIED | KMS_NOT_FOUND | KMS_DISABLED | KMS_INVALID_STATE | KMS_THROTTLING`

errorMessage  
+ El mensaje de error detallado
+ Tipo: cadena

eventId  
+ El ID de evento único correspondiente a cada exportación de medición
+ Tipo: cadena

eventType  
+ El tipo de evento actual
+ Tipo: cadena
+ Valores válidos: `measurement` ` | gatewayConnected` ` | gatewayDisconnected` ` | sensorConnected` ` | sensorDisconnected` ` | assetStateTransition` 

positionName  
+ El nombre de la posición del sensor que se muestra en la aplicación
+ Tipo: cadena

projectName  
+ El nombre del proyecto que se muestra en la aplicación y en la consola
+ Tipo: cadena

  

projectID  
+ El ID de proyecto único correspondiente al proyecto de Amazon Monitron
+ Tipo: cadena

sensorID  
+ El ID físico del sensor desde el que se envía la medición
+ Tipo: cadena

gatewayID  
+ El ID físico de la puerta de enlace utilizada para transmitir datos al servicio de Amazon Monitron
+ Tipo: cadena

siteName  
+ El nombre del sitio que se muestra en la aplicación
+ Tipo: cadena

timestamp  
+ La marca de tiempo en UTC en la que el servicio de Amazon Monitron recibe la medición
+ Tipo: cadena
+  yyyy-mm-ddPatrón: HH:MM:SS.SSS

# Almacenamiento de datos exportados en Amazon S3
<a name="kinesis-store-S3-v2"></a>

Si desea almacenar sus datos exportados en Amazon S3, utilice el siguiente procedimiento.

**Topics**
+ [Configuración manual de Kinesis en la consola](#kinesis-configure-console-v2)

## Configuración manual de Kinesis en la consola
<a name="kinesis-configure-console-v2"></a>

1. Inicie sesión en la consola de AWS administración y abra la consola de Kinesis en /kinesis. https://console.aws.amazon.com

1. En el panel de navegación, elija **Flujos de entrega**.

1. Elija **Crear flujo de entrega**.

1. En Origen, elija **Amazon Kinesis Data Streams**.

1. En Destino, elija **Amazon S3**.

1. En **Configuración de origen, flujo de datos de Kinesis**, introduzca el ARN de su flujo de datos de Kinesis.

1. En **Nombre del flujo de datos**, introduzca el nombre de su flujo de datos de Kinesis.

1. En **Configuración de destino**, elija un bucket de Amazon S3 o introduzca un URI de bucket.

1. (opcional) Habilite el particionamiento dinámico mediante el análisis sintáctico en línea para JSON. Esta opción es apropiada si desea particionar los datos de medición en flujo continuo en función de la información de origen y la fecha y hora. Por ejemplo:
   + En **Partición dinámica**, elija **Habilitado**.
   + En **Nuevo delimitador de línea**, elija **Habilitado**.
   + En **Análisis sintáctico en línea para JSON**, elija **Habilitado**.
   + En **Claves de partición dinámica**, añada:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/Monitron/latest/user-guide/kinesis-store-S3-v2.html)

1. Elija **Aplicar claves de partición dinámica** y confirme que el prefijo del bucket de Amazon S3 generado sea `!{partitionKeyFromQuery:project}/!{partitionKeyFromQuery:site}/!{partitionKeyFromQuery:time}/`.

1. En Amazon S3, los objetos utilizan el siguiente formato de clave: `/project={projectName}/site={siteName}/time={yyyy-mm-dd 00:00:00}/{filename}`.

1. Elija **Crear flujo de entrega**.

# Procesamiento de datos con Lambda
<a name="data-export-lambda-v2"></a>

**Topics**
+ [Paso 1: Cree el rol de [IAM que le dé permiso a su función](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html) para acceder a los recursos AWS](#data-export-lambda-v2-1)
+ [Paso 2: Crear la función de Lambda](#create-lambda-function-v2)
+ [Paso 3: Configurar la función de Lambda](#configure-lambda-function-v2)
+ [Paso 4: Habilitar el disparador de Kinesis en la consola AWS Lambda](#configure-kinesis-trigger-v2)

## Paso 1: Cree el rol de [IAM que le dé permiso a su función](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html) para acceder a los recursos AWS
<a name="data-export-lambda-v2-1"></a>

1. Abra la [página Roles](https://console.aws.amazon.com/iam/home?#/roles) en la consola de IAM.

1. Elija **Crear rol**.

1. En la página **Seleccionar entidad de confianza**, haga lo siguiente:
   + En **Tipo de entidad de confianza**, elija **AWS servicio.**
   + En **Caso de uso**, para **Servicio o caso de uso**, elija **Lambda**.
   + Elija **Siguiente**.  
![\[IAM role creation interface showing trusted entity selection with Servicio de AWS option chosen.\]](http://docs.aws.amazon.com/es_es/Monitron/latest/user-guide/images/lambda-role-1.png)

1. En la página **Añadir permisos**, haga lo siguiente: 
   + En **Políticas de permisos**, elija AWSLambda KinesisExecutionRole (y AWSKey ManagementServicePowerUser si la transmisión de Kinesis está cifrada).
   + Deje las configuraciones en **Definir el límite de permisos** tal como están.
   + Elija **Siguiente**.  
![\[Add permissions interface showing AWSLambdaKinesisExecutionRole policy selected for a new role.\]](http://docs.aws.amazon.com/es_es/Monitron/latest/user-guide/images/lambda-role-2.png)

1. En la página **Nombrar, revisar y crear**, haga lo siguiente: 
   + En **Detalles del rol**, en **Nombre del rol**, introduzca un nombre para su rol. Por ejemplo, *lambda-kinesis-role*. También puede optar por añadir una **descripción** opcional.
   + Deje los ajustes para el **paso 1: seleccionar entidades de confianza** y el **paso 2: Añadir los permisos** tal como están. Puede optar por añadir etiquetas en el **paso 3: Añadir etiquetas** para realizar un seguimiento de sus recursos.  
![\[IAM role creation interface showing name, review, and create steps with role details and permissions.\]](http://docs.aws.amazon.com/es_es/Monitron/latest/user-guide/images/lambda-create-role.png)

1. Elija **Crear rol**.

## Paso 2: Crear la función de Lambda
<a name="create-lambda-function-v2"></a>

1. Abra la página **Funciones** en la consola de Lambda.

1. Seleccione **Creación de función**.

1. Elija **Utilizar un esquema**.

1. En la barra de búsqueda de **Blueprints**, busque y elija **kinesis-process-record (nodejs**) o. **kinesis-process-record-python**

1. Elija **Configurar**.  
![\[Create function interface with options to author from scratch, use a blueprint, or select container image.\]](http://docs.aws.amazon.com/es_es/Monitron/latest/user-guide/images/lambda-create-function.png)

## Paso 3: Configurar la función de Lambda
<a name="configure-lambda-function-v2"></a>

1. Elija **Nombre de la función**

1. Elija el rol creado en el primer paso como **Rol de ejecución**.

1. Configure el activador de Kinesis.

   1. Elija su flujo de Kinesis.

   1. Pulse **Crear función**.  
![\[Lambda function configuration form with basic information and Kinesis trigger settings.\]](http://docs.aws.amazon.com/es_es/Monitron/latest/user-guide/images/lambda-kinesis-trigger.png)

## Paso 4: Habilitar el disparador de Kinesis en la consola AWS Lambda
<a name="configure-kinesis-trigger-v2"></a>

1. En la pestaña **Configuración**, elija **Activadores**.

1. Marque la casilla situada junto al nombre del flujo de Kinesis y elija **Habilitar**.  
![\[Lambda function configuration page with Triggers tab and Kinesis stream trigger highlighted.\]](http://docs.aws.amazon.com/es_es/Monitron/latest/user-guide/images/kinesis-process-record-lambda.png)

El esquema utilizado en este ejemplo solo consume datos de registro del flujo seleccionado. Puede seguir editando el código de función de Lambda más adelante para completar una tarea más complicada. 

# Comprensión del esquema de exportación de datos v2
<a name="data-export-schema-v2"></a>

 Cada dato de medición, su resultado de inferencia correspondiente y los connect/disconnect, and sensor connect/disconnect eventos de puerta de enlace se exportan como un registro de transmisión de datos de Kinesis en formato JSON. 

**Topics**
+ [Formato del esquema v2](#data-export-schema-format-v2)
+ [Parámetros del esquema v2](#data-export-schema-parameters-v2)

## Formato del esquema v2
<a name="data-export-schema-format-v2"></a>

```
{
    "timestamp": "string",
    "eventId": "string",
    "version": "2.0",
    "accountId": "string",
    "projectName": "string",
    "projectId": "string",
    "eventType": "measurement|gatewayConnected|gatewayDisconnected|sensorConnected|sensorDisconnected|assetStateTransition",
    // measurement
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string",
            "rssi": number
        },
        "gateway": {
            "physicalId": "string"
        },
        "sequenceNo": number,
        "features": {
            "acceleration": {
                "band0To6000Hz": {
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                },
                "band10To1000Hz": {
                    "totalVibration": {
                        "absMax": number,
                        "absMin": number,
                        "crestFactor": number,
                        "rms": number
                    },
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                }
            },
            "velocity": {
                "band10To1000Hz": {
                    "totalVibration": {
                        "absMax": number,
                        "absMin": number,
                        "crestFactor": number,
                        "rms": number
                    },
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                }
            },
            "temperature": number
        }
        "models": {
            "temperatureML": {
                "previousPersistentClassificationOutput": "string",
                "persistentClassificationOutput": "string",
                "pointwiseClassificationOutput": "string"
            },
            "vibrationISO": {
                "isoClass": "string",
                "mutedThreshold": "string",
                "previousPersistentClassificationOutput": "string",
                "persistentClassificationOutput": "string",
                "pointwiseClassificationOutput": "string"
            },
            "vibrationML": {
                "previousPersistentClassificationOutput": "string",
                "persistentClassificationOutput": "string",
                "pointwiseClassificationOutput": "string"
            }
        },
        "assetPositionId": "string"
    }
    
    // sensorConnected
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string"
        },
        "assetPositionId": "string"
    }
    
    // sensorDisconnected
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string"
        },
        "assetPositionId": "string"
    }
    
    // gatewayConnected
    "eventPayload": {
        "siteName": "string",
        "gatewayName": "string",
        "gatewayListURL": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "gateway": {
            "physicalId": "string"
        }
    }
    
    // gatewayDisconnected
    "eventPayload": {
        "siteName": "string",
        "gatewayName": "string",
        "gatewayListURL": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "gateway": {
            "physicalId": "string"
        }
    }
    
    // assetStateTransition
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string"
        },
        "assetTransitionType": "measurement|userInput",
        "assetState": {
            "newState": "string",
            "previousState": "string"
        },
        "closureCode": {
            "failureMode": "string",
            "failureCause": "string",
            "actionTaken": "string",
            "resolvedModels": list<"string">
        },
        "assetPositionId": "string"
    }
}
```

## Parámetros del esquema v2
<a name="data-export-schema-parameters-v2"></a>

 El esquema de exportación de datos de Kinesis v2 de Amazon Monitron incluye los siguientes parámetros de esquema. Algunos parámetros son actualizaciones de v1 y otros son exclusivos de v2. Por ejemplo, `siteName` era un parámetro de primer nivel en v1. En v2, es un parámetro de segundo nivel que se encuentra bajo la entidad `eventPayload`. 

timestamp  
+ La marca de tiempo en UTC en la que el servicio de Amazon Monitron recibe la medición
+ Tipo: cadena
+ Patrón: HH:MM:SS.SSS yyyy-mm-dd

eventId  
+ El ID de evento de exportación de datos único asignado a cada medición. Se puede utilizar para deduplicar los registros de flujo de Kinesis recibidos.
+ Tipo: cadena

versión  
+ Versión del esquema
+ Tipo: cadena
+ Valor: 1.0 o 2.0

accountId  
+ El ID de AWS cuenta de 12 dígitos de su proyecto de Monitron
+ Tipo: cadena

projectName  
El nombre del proyecto que se muestra en la aplicación y en la consola.  
Tipo: cadena

projectId  
El identificador único de su proyecto. Amazon Monitron   
Tipo: cadena

eventType  
+ El flujo de eventos actual. Cada tipo de evento tiene un formato `eventPayload` específico.
+ Tipo: cadena
+ Valores posibles: `measurement`, `gatewayConnected`, `gatewayDisconnected`, `sensorConnected`, `sensorDisconnected` o `assetStateTransition`.

**`eventType: measurement`**

eventPayload.features.acceleration.band0To6000Hz.xAxis.rms  
+ La raíz cuadrada media de la aceleración observada en la banda de frecuencia 0‑6000 Hz en el eje x
+ Tipo: Number
+ Unidad: m/s^2

eventPayload.features.acceleration.band0To6000Hz.yAxis.rms  
+ La raíz cuadrada media de la aceleración observada en la banda de frecuencia 0‑6000 Hz en el eje y
+ Tipo: Number
+ Unidad: m/s^2

eventPayload.features.acceleration.band0To6000Hz.zAxis.rms  
+ La raíz cuadrada media de la aceleración observada en la banda de frecuencia 0‑6000 Hz en el eje z
+ Tipo: Number
+ Unidad: m/s^2

eventPayload.features.acceleration.band10To1000Hz.resultantVector.absMax  
+ La aceleración máxima absoluta observada en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number
+ Unidad: m/s^2

eventPayload.features.acceleration.band10To1000Hz.resultantVector.absMin  
+ La aceleración mínima absoluta observada en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number
+ Unidad: m/s^2

eventPayload.features.acceleration.band10To1000Hz.resultantVector.crestFactor  
+ El factor de cresta de aceleración observado en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number

eventPayload.features.acceleration.band10To1000Hz.resultantVector.rms  
+ La raíz cuadrada media de la aceleración observada en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number
+ m/s^2

eventPayload.features.acceleration.band10To1000Hz.xAxis.rms  
+ La raíz cuadrada media de la aceleración observada en la banda de frecuencia 10‑1000 Hz en el eje x
+ Tipo: Number
+ m/s^2

eventPayload.features.acceleration.band10To1000Hz.yAxis.rms  
+ La raíz cuadrada media de la aceleración observada en la banda de frecuencia 10‑1000 Hz en el eje y
+ Tipo: Number
+ m/s^2

eventPayload.features.acceleration.band10To1000Hz.zAxis.rms  
+ La raíz cuadrada media de la aceleración observada en la banda de frecuencia 10‑1000 Hz en el eje z
+ Tipo: Number
+ m/s^2

eventPayload.features.temperature  
+ La temperatura observada
+ Tipo: Number
+ °C/grados C

eventPayload.features.velocity.band10To1000Hz.resultantVector.absMax  
+ La aceleración máxima absoluta observada en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number
+ mm/s

eventPayload.features.velocity.band10To1000Hz.resultantVector.absMin  
+ La aceleración mínima absoluta observada en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number
+ mm/s

eventPayload.features.velocity.band10To1000Hz.resultantVector.crestFactor  
+ El factor de cresta de velocidad observado en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number

eventPayload.features.velocity.band10To1000Hz.resultantVector.rms  
+ La raíz cuadrada media de la velocidad observada en la banda de frecuencia 10‑1000 Hz
+ Tipo: Number
+ mm/s

eventPayload.features.velocity.band10To1000Hz.xAxis.rms  
+ La raíz cuadrada media de la velocidad observada en la banda de frecuencia 10‑1000 Hz en el eje x
+ Tipo: Number
+ mm/s

eventPayload.features.velocity.band10To1000Hz.yAxis.rms  
+ La raíz cuadrada media de la velocidad observada en la banda de frecuencia 10‑1000 Hz en el eje y
+ Tipo: Number
+ mm/s

eventPayload.features.velocity.band10To1000Hz.zAxis.rms  
+ La raíz cuadrada media de la velocidad observada en la banda de frecuencia 10‑1000 Hz en el eje z
+ Tipo: Number
+ mm/s

eventPayload.sequenceNo  
+ El número de secuencias de medición
+ Tipo: Number

Carga útil del evento. assetPositionId  
+ El identificador de la posición del sensor para la que se envía la medición.
+ Tipo: cadena

EventPayload.Nombre de la empresa  
+ El nombre de la empresa que utiliza el activo.
+ Tipo: cadena

Carga útil del evento. Geolocalización. Latitud  
+ La latitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Geolocalización. Longitud  
+ La longitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Dirección  
+ La dirección del sitio.
+ Tipo: cadena

Carga útil del evento. Número de serie  
+ El número de serie del activo.
+ Tipo: cadena

EventPayload.Make  
+ La marca del activo.
+ Tipo: cadena

Carga útil del evento. Modelo  
+ El modelo del activo.
+ Tipo: cadena

`eventType: sensorConnected`

siteName  
+ El nombre del sitio que se muestra en la aplicación
+ Tipo: cadena

assetName  
+ El nombre del activo que se muestra en la aplicación
+ Tipo: cadena

positionName  
+ El nombre de la posición del sensor que se muestra en la aplicación
+ Tipo: cadena

assetPositionURL  
+ El URL del sensor que se muestra en la aplicación
+ Tipo: cadena

physicalID  
+ El ID físico del sensor desde el que se envía la medición
+ Tipo: cadena

Carga útil del evento. assetPositionId  
+ El identificador de la posición del sensor cuyo estado ha cambiado.
+ Tipo: cadena

EventPayload.Nombre de la empresa  
+ El nombre de la empresa que utiliza el activo.
+ Tipo: cadena

Carga útil del evento. Geolocalización. Latitud  
+ La latitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Geolocalización. Longitud  
+ La longitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Dirección  
+ La dirección del sitio.
+ Tipo: cadena

Carga útil del evento. Número de serie  
+ El número de serie del activo.
+ Tipo: cadena

EventPayload.Make  
+ La marca del activo.
+ Tipo: cadena

Carga útil del evento. Modelo  
+ El modelo del activo.
+ Tipo: cadena

`eventType: sensorDisconnected`

siteName  
+ El nombre del sitio que se muestra en la aplicación
+ Tipo: cadena

assetName  
+ El nombre del activo que se muestra en la aplicación
+ Tipo: cadena

positionName  
+ El nombre de la posición del sensor que se muestra en la aplicación
+ Tipo: cadena

assetPositionURL  
+ El URL del sensor que se muestra en la aplicación
+ Tipo: cadena

physicalID  
+ El ID físico del sensor desde el que se envía la medición
+ Tipo: cadena

Carga útil del evento. assetPositionId  
+ El identificador de la posición del sensor cuyo estado ha cambiado.
+ Tipo: cadena

EventPayload.Nombre de la empresa  
+ El nombre de la empresa que utiliza el activo.
+ Tipo: cadena

Carga útil del evento. Geolocalización. Latitud  
+ La latitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Geolocalización. Longitud  
+ La longitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Dirección  
+ La dirección del sitio.
+ Tipo: cadena

Carga útil del evento. Número de serie  
+ El número de serie del activo.
+ Tipo: cadena

EventPayload.Make  
+ La marca del activo.
+ Tipo: cadena

Carga útil del evento. Modelo  
+ El modelo del activo.
+ Tipo: cadena

 `eventType: gatewayConnected` 

eventPayload.siteName  
+ El nombre del sitio que se muestra en la aplicación
+ Tipo: cadena

eventPayload.gatewayName  
+ El nombre de la puerta de enlace que se muestra en la aplicación
+ Tipo: cadena

eventPayload.gatewayListURL  
+ El URL de la puerta de enlace que se muestra en la aplicación
+ Tipo: cadena

eventPayload.gateway.physicalID  
+ El ID físico de la puerta de enlace apenas conectada para transmitir datos al servicio de Amazon Monitron
+ Tipo: cadena

Carga útil del evento. Nombre de la empresa  
+ El nombre de la empresa que utiliza el activo.
+ Tipo: cadena

Carga útil del evento. Geolocalización. Latitud  
+ La latitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Geolocalización. Longitud  
+ La longitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Dirección  
+ La dirección del sitio.
+ Tipo: cadena

`eventType: gatewayDisconnected`

siteName  
+ El nombre del sitio que se muestra en la aplicación
+ Tipo: cadena

gatewayName  
+ El nombre de la puerta de enlace que se muestra en la aplicación
+ Tipo: cadena

gatewayListURL  
+ El URL de la puerta de enlace que se muestra en la aplicación
+ Tipo: cadena

physicalID  
+ El ID físico de la puerta de enlace apenas conectada para transmitir datos al servicio de Amazon Monitron
+ Tipo: cadena

EventPayload.Nombre de la empresa  
+ El nombre de la empresa que utiliza el activo.
+ Tipo: cadena

Carga útil del evento. Geolocalización. Latitud  
+ La latitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Geolocalización. Longitud  
+ La longitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Dirección  
+ La dirección del sitio.
+ Tipo: cadena

`eventType: assetStateTransition`

eventPayload.siteName  
+ El nombre del sitio que se muestra en la aplicación
+ Tipo: cadena

eventPayload.assetName  
+ El nombre del activo que se muestra en la aplicación
+ Tipo: cadena

eventPayload.positionName  
+ El nombre de la posición del sensor que se muestra en la aplicación
+ Tipo: cadena

eventPayload.assetPositionURL  
+ El URL del sensor que se muestra en la aplicación
+ Tipo: cadena

eventPayload.sensor.physicalID  
+ El ID físico del sensor desde el que se envía la medición
+ Tipo: cadena

Carga útil del evento. assetTransitionType  
+ El motivo de la transición de estado del activo
+ Tipo: cadena
+ Valores posibles: `measurement` o `userInput`

eventPayload.assetState.newState  
+ El nuevo estado del activo
+ Tipo: cadena

eventPayload.assetState.previousState  
+ El estado anterior del activo
+ Tipo: cadena

eventPayload.closureCode.failureMode  
+ El modo de error seleccionado por el usuario al reconocer este fallo
+ Tipo: cadena
+ Valores posibles: `NO_ISSUE` \$1 `BLOCKAGE` \$1 `CAVITATION` \$1 `CORROSION` \$1 `DEPOSIT` \$1 `IMBALANCE` \$1 `LUBRICATION` \$1 `MISALIGNMENT` \$1 `OTHER` \$1 `RESONANCE` \$1 `ROTATING_LOOSENESS` \$1 `STRUCTURAL_LOOSENESS` \$1 `TRANSMITTED_FAULT` \$1 `UNDETERMINED` 

eventPayload.closureCode.failureCause  
+ La causa del fallo seleccionada por el usuario en el menú desplegable de la aplicación al reconocer un fallo.
+ Tipo: cadena
+ Valores posibles: `ADMINISTRATION` \$1 `DESIGN` \$1 `FABRICATION` \$1 `MAINTENANCE` \$1 `OPERATION` \$1 `OTHER` \$1 `QUALITY` \$1 `UNDETERMINED` \$1 `WEAR` 

eventPayload.closureCode.actionTaken  
+ La acción que se realiza al cerrar esta anomalía seleccionada por el usuario en el menú desplegable de la aplicación.
+ Tipo: cadena
+ Valores posibles: `ADJUST` \$1 `CLEAN` \$1 `LUBRICATE` \$1 `MODIFY` \$1 `NO_ACTION` \$1 `OTHER` \$1 `OVERHAUL` \$1 `REPLACE` 

eventPayload.closureCode.resolvedModels  
+ El conjunto de modelos que pusieron de manifiesto el problema.
+ Tipo: Lista de cadenas
+ Valores posibles: `vibrationISO` \$1 `vibrationML` \$1 `temperatureML` 

Carga útil del evento. assetPositionId  
+ El identificador de la posición del activo cuyo estado ha cambiado.
+ Tipo: cadena

Models.TemperatureML. persistentClassificationOutput  
+ El resultado de clasificación persistente del modelo de machine learning basado en la temperatura
+ Tipo: Number
+ Valores válidos: `UNKNOWN | HEALTHY | WARNING | ALARM`

Modelos. Temperatura ml. pointwiseClassificationOutput  
+ El resultado de clasificación puntual del modelo de machine learning basado en la temperatura
+ Tipo: cadena
+ Valores válidos: `UNKNOWN | INITIALIZING | HEALTHY | WARNING | ALARM`

models.vibrationISO.isoClass  
+ La clase ISO 20816 (norma de medición y evaluación de vibración de máquinas) utilizada por el modelo de vibración basado en ISO
+ Tipo: cadena
+ Valores válidos: `CLASS1 | CLASS2 | CLASS3 | CLASS4`

models.vibrationISO.mutedThreshold  
+ El umbral para silenciar la notificación del modelo de vibración basado en ISO
+ Tipo: cadena
+ Valores válidos: `WARNING | ALARM`

Modelos. Vibration ISO. persistentClassificationOutput  
+ La salida de clasificación persistente del modelo de vibración basado en ISO
+ Tipo: cadena
+ Valores válidos: `UNKNOWN | HEALTHY | WARNING | ALARM`

Modelos. Vibration ISO. pointwiseClassificationOutput  
+ La salida de clasificación puntual del modelo de vibraciones basado en ISO
+ Tipo: cadena
+ Valores válidos: `UNKNOWN | HEALTHY | WARNING | ALARM | MUTED_WARNING | MUTED_ALARM`

Modelos. Vibration ML. persistentClassificationOutput  
+ La salida de clasificación persistente del modelo de vibración basado en machine learning
+ Tipo: cadena
+ Valores válidos: `UNKNOWN | HEALTHY | WARNING | ALARM`

Modelos. Vibration ML. pointwiseClassificationOutput  
+ La salida de clasificación puntual del modelo de vibración basado en machine learning
+ Tipo: cadena
+ Valores válidos: `UNKNOWN | INITIALIZING | HEALTHY | WARNING | ALARM`

assetState.newState  
+ El estado de la máquina después de procesar la medición
+ Tipo: cadena
+ Valores válidos: `UNKNOWN | HEALTHY | NEEDS_MAINTENANCE | WARNING | ALARM`

assetState.previousState  
+ El estado de la máquina antes de procesar la medición
+ Tipo: cadena
+ Valores válidos: `UNKNOWN | HEALTHY | NEEDS_MAINTENANCE | WARNING | ALARM`

EventPayload.Nombre de la empresa  
+ El nombre de la empresa que utiliza el activo.
+ Tipo: cadena

Carga útil del evento. Geolocalización. Latitud  
+ La latitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Geolocalización. Longitud  
+ La longitud de la ubicación física del sitio.
+ Tipo: Number

Carga útil del evento. Dirección  
+ La dirección del sitio.
+ Tipo: cadena

Carga útil del evento. Número de serie  
+ El número de serie del activo.
+ Tipo: cadena

EventPayload.Make  
+ La marca del activo.
+ Tipo: cadena

Carga útil del evento. Modelo  
+ El modelo del activo.
+ Tipo: cadena

# Migración de Kinesis v1 a v2
<a name="migration-from-v1-to-v2"></a>

 Si utiliza actualmente el esquema de datos v1, es posible que ya envíe datos a Amazon S3 o que procese a posteriori la carga útil del flujo de datos con Lambda. 

**Topics**
+ [Actualización del esquema de datos a v2](#updating-to-v2)
+ [Actualización del procesamiento de datos con Lambda](#updating-with-lam)

## Actualización del esquema de datos a v2
<a name="updating-to-v2"></a>

 Si ya ha configurado un flujo de datos con el esquema v1, puede actualizar su proceso de exportación de datos mediante el siguiente procedimiento: 

1. Abra su consola de Amazon Monitron.

1. Vaya a su proyecto.

1.  Detenga la [exportación de datos en directo actual](monitron-kinesis-export-v2.md#stop-kinesis-export-v2). 

1.  Inicie la exportación de datos en directo para crear un nuevo flujo de datos.

1. Seleccione el flujo de datos recién creado.

1. Elija **iniciar exportación de datos en directo**. En este punto, el nuevo esquema enviará su carga a través del flujo de datos.

1. (Opcional) Vaya a la consola de Kinesis y elimine su antiguo flujo de datos.

1. Configure un nuevo método de entrega para su flujo de datos recién creado con el esquema v2.

 Su nuevo flujo entrega ahora cargas útiles conformes con el esquema v2 a su nuevo bucket. Le recomendamos que utilice dos buckets distintos para tener un formato coherente en caso de que desee procesar todos los datos en estos buckets. Por ejemplo, usar otros servicios como Athena y. AWS Glue

**nota**  
Si ya entregaba sus datos a Amazon S3, obtenga información sobre cómo [almacenar los datos exportados en Amazon S3](kinesis-store-S3-v2.md#kinesis-store-S3-title-v2) para obtener detalles sobre cómo entregar sus datos a Amazon S3 con el esquema v2.

**nota**  
Si utilizaba una función de Lambda para procesar sus cargas, obtenga información sobre cómo [procesar datos con Lambda](https://docs.aws.amazon.com/Monitron/latest/user-guide/data-export-lambda.html). También puede consultar la sección [actualización con Lambda](#updating-with-lam) para obtener más información.

## Actualización del procesamiento de datos con Lambda
<a name="updating-with-lam"></a>

 La actualización del procesamiento de datos con Lambda requiere que tenga en cuenta que el flujo de datos de la v2 se basa ahora en eventos. Su código inicial de Lambda v1 podría haber sido similar al siguiente: 

```
import base64

def main_handler(event):
    # Kinesis "data" blob is base64 encoded so decode here:
    for record in event['Records']:
        payload = base64.b64decode(record["kinesis"]["data"])
     
        measurement = payload["measurement"]
        projectDisplayName = payload["projectDisplayName"]
     
        # Process the content of the measurement
        # ...
```

 Dado que el esquema de datos de v1 está en vías de desaparición, el código Lambda anterior no funcionará con todos los nuevos flujos de datos. 

 El siguiente código Python de ejemplo procesa los eventos del flujo de Kinesis con el esquema de datos v2. Este código utiliza el nuevo parámetro `eventType` para orientar el procesamiento al controlador apropiado: 

```
import base64

handlers = {
    "measurement": measurementEventHandler,
    "gatewayConnected": gatewayConnectedEventHandler,
    "gatewayDisconnected": gatewayDisconnectedEventHandler,
    "sensorConnected": sensorConnectedEventHandler,
    "sensorDisconnected": sensorDisconnectedEventHandler,
}

def main_handler(event):
    # Kinesis "data" blob is base64 encoded so decode here:
    for record in event['Records']:
        payload = base64.b64decode(record["kinesis"]["data"])
          
        eventType = payload["eventType"]
        if eventType not in handler.keys():
            log.info("No event handler found for the event type: {event['eventType']}")
            return 
     
        # Invoke the appropriate handler based on the event type.
        eventPayload = payload["eventPayload"]
        eventHandler = handlers[eventType] 
        eventHandler(eventPayload)

def measurementEventHandler(measurementEventPayload):
    # Handle measurement event
    projectName = measurementEventPayload["projectName"]
    
    # ...

def gatewayConnectedEventHandler(gatewayConnectedEventPayload):
    # Handle gateway connected event

# Other event handler functions
```