Supervisión de la biblioteca de Kinesis Producer con Amazon CloudWatch - Amazon Kinesis Data Streams

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.

Supervisión de la biblioteca de Kinesis Producer con Amazon CloudWatch

La biblioteca de productores de Kinesis (KPL) para Amazon Kinesis Data Streams publica métricas de CloudWatch Amazon personalizadas en su nombre. Puede ver estas métricas navegando a la CloudWatch consola y seleccionando Métricas personalizadas. Para obtener más información sobre las métricas personalizadas, consulta Publicar métricas personalizadas en la Guía del CloudWatch usuario de Amazon.

Hay un cargo nominal por las métricas subidas CloudWatch por la KPL; en concreto, se aplican cargos por Amazon CloudWatch Custom Metrics y Amazon CloudWatch API Requests. Para obtener más información, consulta los CloudWatch precios de Amazon. La recopilación de métricas locales no conlleva CloudWatch cargos.

Métricas, dimensiones y espacios de nombres

Puede especificar un nombre de aplicación al lanzar KPL, que se utilizará como parte del espacio de nombres al cargar las métricas. Esto es opcional; KPL proporciona un valor predeterminado si no se establece el nombre de una aplicación.

También puede configurar KPL para que agregue dimensiones adicionales arbitrarias para las métricas. Esto resulta útil si quieres incluir datos más detallados en tus métricas. CloudWatch Por ejemplo, puede añadir el nombre de host como dimensión, lo que le permite identificar distribuciones de carga irregulares en la flota. La configuración de KPL es inmutable, por lo que no se pueden modificar estas dimensiones adicionales después de inicializar la instancia de KPL.

Nivel de métricas y grado de detalle

Existen dos opciones para controlar la cantidad de métricas que se cargan: CloudWatch

Nivel de métricas

Es una calibración aproximada de la importancia de una métrica. A cada métrica se le asigna un nivel. Cuando estableces un nivel, no se envían las métricas con niveles inferiores a ese nivel CloudWatch. Los niveles son: NONE, SUMMARY y DETAILED. El valor predeterminado es DETAILED; es decir, todas las métricas. NONE significa ninguna métrica, de modo no se asigna ninguna a ese nivel.

Grado de detalle

Controla si una misma métrica se emite con grados de detalle adicionales. Los niveles son: GLOBAL, STREAM y SHARD. El valor predeterminado es SHARD, que contiene las métricas con el mayor grado de detalle.

Cuando se elige SHARD, las métricas se emiten con el nombre de la secuencia y la ID del fragmento como dimensiones. Además, la misma métrica también se emitida únicamente con la dimensión del nombre de la secuencia y la métrica, sin el nombre de la secuencia. Esto significa que, para una métrica concreta, dos secuencias con dos fragmentos cada una generarán siete CloudWatch métricas: una para cada fragmento, otra para cada transmisión y otra para el conjunto; todas describen las mismas estadísticas pero con distintos niveles de granularidad. Para ver una ilustración, consulte el diagrama siguiente.

Los distintos niveles de granularidad forman una jerarquía y todas las métricas del sistema forman árboles enraizados en los nombres de las métricas:

MetricName (GLOBAL): Metric X Metric Y | | ----------------- ------------ | | | | StreamName (STREAM): Stream A Stream B Stream A Stream B | | -------- --------- | | | | ShardID (SHARD): Shard 0 Shard 1 Shard 0 Shard 1

No todas las métricas están disponibles en el nivel de fragmento, algunas pertenecen en el nivel de la secuencia o son de naturaleza global. Estas no se producen en el nivel de fragmento, ni siquiera si ha activado las métricas en el nivel de fragmento (Metric Y en el diagrama anterior).

Al especificar una dimensión adicional, debe proporcionar valores tuple:<DimensionName, DimensionValue, Granularity>. El grado de detalle se utiliza para determinar dónde se inserta la dimensión personalizada en la jerarquía: GLOBAL implica que la dimensión adicional se inserta después del nombre de la métrica, STREAM implica que se inserta después del nombre de la secuencia y SHARD implica que se inserta después del ID de fragmento. Si se dan varias dimensiones adicionales por grado de detalle, se insertan en el orden determinado.

Acceso local y Amazon CloudWatch Upload

Las métricas de la instancia de KPL actual están disponibles localmente en tiempo real. Puede enviar consultas a KPL en cualquier momento para obtenerlas. La KPL calcula localmente la suma, el promedio, el mínimo, el máximo y el recuento de cada métrica, como en. CloudWatch

Puede obtener estadísticas que son acumulativas desde el principio del programa hasta el momento actual, o mediante una ventana continua durante los últimos N segundos, donde N es un número entero entre 1 y 60.

Todas las métricas están disponibles para cargarlas en ellas. CloudWatch Esto resulta especialmente útil para agregar datos entre varios hosts, monitorizaciones y alarmas. Esta funcionalidad no está disponible a nivel local.

Como se ha descrito previamente, puede seleccionar qué métricas cargar con los ajustes de nivel y grado de detalle de las métricas. Las métricas que no están cargadas están disponibles localmente.

La carga individual de puntos de datos es insostenible, ya que podría producir millones de cargas por segundo, si el tráfico es alto. Por este motivo, la KPL agrega las métricas de forma local en grupos de 1 minuto y carga un objeto de estadísticas una vez por minuto, por cada métrica habilitada. CloudWatch

Lista de métricas

Métrica Descripción
UserRecordsReceived

Recuento de la cantidad de registros de usuarios lógicas recibidos por el núcleo de KPL para operaciones put. No disponible en el nivel de fragmento.

Nivel de métrica: Detailed

Unidad: recuento

UserRecordsPending

Muestra periódica del número de registros de usuario pendientes actualmente. Un registro está pendiente si se encuentra actualmente en la memoria intermedia y está en espera para enviarse, o se ha enviado y está en tránsito al servicio de backend. No disponible en el nivel de fragmento.

KPL proporciona un método específico para recuperar esta métrica de forma global para que los clientes administren la velocidad de la operación put.

Nivel de métrica: Detailed

Unidad: recuento

UserRecordsPut

Recuento del número de registros de usuario lógicos producidos correctamente.

KPL no cuenta los registros incorrectos para esta métrica. Así se permite que la media ofrezca la tasa de corrección y que el recuento exprese los intentos totales y la diferencia entre el recuento y suma para ver la cuenta de errores.

Nivel de métrica: Summary

Unidad: recuento

UserRecordsDataPut

Bytes producidos correctamente en los registros de los usuarios lógicos.

Nivel de métrica: Detailed

Unidades: bytes

KinesisRecordsPut

Recuento de cuántos registros de Kinesis Data Streams se produjeron correctamente (cada registro de Kinesis Data Streams puede contener varios registros de usuario).

KPL da como resultado un cero para los registros incorrectos. Así se permite que la media ofrezca la tasa de corrección y que el recuento exprese los intentos totales y la diferencia entre el recuento y suma para ver la cuenta de errores.

Nivel de métrica: Summary

Unidad: recuento

KinesisRecordsDataPut

Bytes en los registros de Kinesis Data Streams.

Nivel de métrica: Detailed

Unidades: bytes

ErrorsByCode

Recuento de cada tipo de código de error. Esto introduce una dimensión adicional de ErrorCode, además de las dimensiones normales como, por ejemplo, StreamName y ShardId. No todos los errores pueden localizarse en un fragmento. Los errores que no se puede localizar solo se emiten en niveles globales o de secuencias. Esta métrica recopila información sobre la limitación controlada, los cambios en el mapa de fragmentos, los errores internos, la indisponibilidad del servicio, los tiempos de espera, etcétera.

Los errores de la API de Kinesis Data Streams se cuentan una vez por registro de Kinesis Data Streams. Si hay varios registros de usuario dentro de un registro de Kinesis Data Streams, no se generan varios recuentos.

Nivel de métrica: Summary

Unidad: recuento

AllErrors

Esto se activa cuando se producen los mismos errores los mismos errores que en Errors by Code (Errores por código), pero sin distinguir entre tipos. Resulta útil como monitorización general de la tasa de errores sin necesidad de sumar manualmente los recuentos de todos los diferentes tipos de errores.

Nivel de métrica: Summary

Unidad: recuento

RetriesPerRecord

Número de reintentos realizados por registro de usuario. Se produce un cero para los registros que resultan correctos con un solo intento.

Los datos se emiten en el momento en que el registro de un usuario termina (si termina correctamente no se puede volver a intentar). Si el registro time-to-live es un valor grande, es posible que esta métrica se retrase considerablemente.

Nivel de métrica: Detailed

Unidad: recuento

BufferingTime

El tiempo entre la llegada de un registro de usuario a KPL y la salida hacia el backend. Esta información se transmite de vuelta al usuario en cada registro, pero también está disponible como una estadística acumulada.

Nivel de métrica: Summary

Unidad: milisegundos

Request Time

El tiempo que se tarda en realizar PutRecordsRequests.

Nivel de métrica: Detailed

Unidad: milisegundos

User Records per Kinesis Record

El número de registros de usuarios lógicos agregados en un solo registro de Kinesis Data Streams.

Nivel de métrica: Detailed

Unidad: recuento

Amazon Kinesis Records per PutRecordsRequest

El número de registros de Kinesis Data Streams agrupados en una sola PutRecordsRequest. No disponible en el nivel de fragmento.

Nivel de métrica: Detailed

Unidad: recuento

User Records per PutRecordsRequest

El número total de registros de usuario almacenados en un PutRecordsRequest. Esto es aproximadamente equivalente al producto de las dos métricas anteriores. No disponible en el nivel de fragmento.

Nivel de métrica: Detailed

Unidad: recuento