¿Qué métricas puedo usar para supervisar y solucionar problemas de Kinesis Data Streams?

6 minutos de lectura
0

Deseo supervisar los datos entrantes y salientes de Amazon Kinesis Data Streams.

Solución

Utilización de métricas en el nivel de secuencia

Puede utilizar las métricas de Amazon CloudWatch para supervisar de forma continua el rendimiento de su secuencia de datos de Amazon Kinesis y su rendimiento. Las siguientes métricas permiten supervisar los problemas de los productores y consumidores.

GetRecords.IteratorAgeMilliseconds
GetRecords.IteratorAgeMilliseconds mide la antigüedad en milisegundos del último registro de la secuencia para todas las solicitudes de GetRecords. Un valor de cero en esta métrica indica que los registros de la secuencia están actualizados. Es preferible que el valor sea bajo. Para supervisar cualquier problema de rendimiento, aumente el número de consumidores de su secuencia para que los datos se procesen con mayor rapidez. Para optimizar el código de su aplicación, aumente el número de consumidores para reducir el retraso en el procesamiento de los registros.

ReadProvisionedThroughputExceeded
ReadProvisionedThroughputExceeded mide el recuento de llamadas de GetRecords que se limitan durante un período determinado y superan los límites de servicio o partición de Kinesis Data Streams. Un valor de cero indica que los consumidores de datos no superan las cuotas de servicio. Cualquier otro valor indica que se ha superado el límite de rendimiento y que se requieren particiones adicionales. Esta métrica confirma que no hay más de cinco lecturas/segundo/partición o 2 MB/segundo/partición en la secuencia. Puede activar la supervisión mejorada para validar que no haya particiones activas en la secuencia.

WriteProvisionedThroughputExceeded
WriteProvisionedThroughputExceeded mide las solicitudes PUT o el productor de datos (como ReadProvisionedThroughputExceeded) para ayudar a determinar si la secuencia está limitada. Esto supera las cuotas de servicio de las secuencias de datos al escribir en una partición. Asegúrese de que las solicitudes PUT no superen 1 MB/segundo/partición o 1000 registros/partición por segundo. Asegúrese de que la clave de partición esté distribuida de manera uniforme y de que la supervisión mejorada esté activada para comprobar las particiones activas de la secuencia. En función de la saturación de las particiones, actualice el recuento de particiones de la secuencia para aumentar el rendimiento.

PutRecord.Success y PutRecords.Success
PutRecord.Success y PutRecords.Success miden el recuento de registros realizados correctamente de la solicitud de PutRecords durante un período determinado por parte de los productores de datos en la secuencia. Esta métrica confirma la lógica de reintento eficaz de los registros con errores.

GetRecords.Success
GetRecords.Success mide el recuento de solicitudes de GetRecords realizadas correctamente durante un período de tiempo determinado en la secuencia. Confirma la lógica de reintento eficaz de los registros con errores.

GetRecords.Latency
GetRecords.Latency mide el tiempo necesario para cada operación de GetRecords en la secuencia durante un período de tiempo específico. Confirma que los recursos físicos o la lógica de procesamiento de registros son suficientes para aumentar el rendimiento de la secuencia. También procesa lotes de datos más grandes para reducir la latencia de la red y otras latencias posteriores en su aplicación. En la biblioteca de clientes de Kinesis (KCL), investigue la métrica ProcessTask.Time para supervisar el tiempo de procesamiento de la aplicación que se está retrasando. La métrica GetRecords.Latency confirma que la configuración IDLE_TIME_BETWEEN_READS_IN_MILLIS está establecida para seguir el ritmo de procesamiento de la secuencia.

PutRecords.Latency
PutRecords.Latency mide el tiempo necesario para cada operación de PutRecords en la secuencia durante un período de tiempo específico. Si el valor de PutRecords.Latency es alto, añada los registros en un archivo más grande para incluir los datos del lote en la secuencia de datos de Kinesis. También puede usar varios subprocesos para escribir datos. La lógica de limitación y reintento de la API de PutRecords puede afectar a la latencia y al tiempo necesario para cada operación de PutRecords de la secuencia. A continuación, utilice la estadística Promedio para las métricas enumeradas para supervisar el rendimiento y el rendimiento de la secuencia.
Nota: En GetRecords.IteratorAgeMilliseconds, utilice la estadística Máximo para reducir el riesgo de pérdida de datos para los consumidores que se retrasan con respecto a cualquier operación de lectura. Configure una alarma de CloudWatch para responder a cualquier punto de datos que se vaya a evaluar para una métrica. Para obtener más información sobre las alarmas de CloudWatch, consulte Uso de las alarmas de Amazon CloudWatch.

Si utiliza la característica de distribución ramificada mejorada, utilice las siguientes métricas para supervisar Kinesis Data Streams:

SubscribeToShard.RateExceeded: mide el número de llamadas por segundo superadas que están permitidas para la operación o cuando un intento de suscripción falla porque ya existe una suscripción activa.

SubscribeToShard.Success: comprueba si la operación SubscribeToShard se realiza correctamente.

SubscribeToShardEvent.Success: comprueba si la publicación de un evento se ha realizado correctamente para una suscripción activa.

SubscribeToShardEvent.Bytes: mide el número de bytes recibidos en las particiones durante el período de tiempo especificado.

SubscribeToShardEvent.Records: mide el número de registros recibidos en las particiones durante el período de tiempo especificado.

SubscribeToShardEvent.MillisBehindLatest: mide la diferencia entre la hora actual y el último registro del evento SubscribeToShard escrito en la secuencia.

Activación de las métricas mejoradas en el nivel de partición

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente de AWS CLI.

Active las métricas en el nivel de partición en CloudWatch para supervisar tareas específicas y solucionar problemas de los productores y consumidores de datos. Por ejemplo, active las métricas en el nivel de partición para identificar problemas como las distribuciones desiguales de la carga de trabajo. Para activar la supervisión mejorada, siga estos pasos:

Nota: También puede usar la solicitud de API EnableEnhancedMonitoring o el comando enable-enhanced-monitoring de la AWS CLI. 

  1. Abra la consola de Kinesis.
  2. Elija una región específica.
  3. En el panel de navegación, elija Secuencias de datos.
  4. En Nombre de la secuencia de datos, seleccione su secuencia de datos de Kinesis.
  5. Elija Configuración.
  6. En Métricas mejoradas en el nivel de partición, seleccione Editar.
  7. En el menú desplegable, seleccione sus métricas para mejorar la supervisión.
  8. Elija Guardar cambios.

Solución de problemas adicionales con llamadas a la API

Utilice las siguientes llamadas a la API para leer o escribir datos de Kinesis Data Streams:

  • CreateStream: límite de cinco transacciones por segundo por cuenta.
  • DeleteStream: límite de cinco transacciones por segundo por cuenta.
  • ListStreams: límite de cinco transacciones por segundo por cuenta.
  • GetShardIterator: límite de cinco transacciones por segundo por cuenta y partición abierta.
  • MergeShards: límite de cinco transacciones por segundo por cuenta.
  • DescribeStream: límite de diez transacciones por segundo por cuenta.
  • DescribeStreamSummary: límite de veinte transacciones por segundo por cuenta.

Cuando utiliza estas llamadas a la API, puede supervisar cualquier limitación en los registros de AWS CloudTrail. Para obtener más información sobre las llamadas a la API de Kinesis Data Streams y CloudTrail, consulte Logging Amazon Kinesis Data Streams API calls with AWS CloudTrail.

Información relacionada

Precios de Amazon CloudWatch

Monitoring the Amazon Kinesis Data Streams service with Amazon CloudWatch

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 5 meses