Supervise la biblioteca de clientes de Kinesis 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.

Supervise la biblioteca de clientes de Kinesis con Amazon CloudWatch

La biblioteca de clientes de Kinesis (KCL) para Amazon Kinesis Data Streams publica métricas de CloudWatch Amazon personalizadas en su nombre, utilizando el nombre de su aplicación de KCL como espacio de nombres. Puede ver estas métricas navegando a la consola y seleccionando Métricas personalizadas. CloudWatch 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 KCL; 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.

Métricas y espacio de nombres

El espacio de nombres que se utiliza para cargar las métricas es el nombre de aplicación que se ha especificado al lanzar KCL.

Niveles y dimensiones de las métricas

Existen dos opciones para controlar qué métricas se cargan en CloudWatch:

Niveles de métricas

A cada métrica se le asigna un nivel individual. Cuando estableces un nivel de informe de métricas, las métricas con un nivel individual inferior al nivel de informe no se envían a CloudWatch. Los niveles son: NONE, SUMMARY y DETAILED. La configuración predeterminada esDETAILED, es decir, se envían todas las métricas a CloudWatch. El nivel de informe NONE se utiliza cuando no se desea enviar ninguna métrica. Para obtener información sobre qué niveles se asignan a las métricas, consulte Lista de métricas.

Dimensiones habilitadas

Cada métrica de KCL tiene dimensiones asociadas que también se envían a CloudWatch. En KCL 2.x, si KCL se configura para procesar un solo flujo de datos, todas las dimensiones de las métricas (Operation, ShardId y WorkerIdentifier) están habilitadas de forma predeterminada. Además, en KCL 2.x, si KCL se configura para procesar un único flujo de datos, la dimensión Operation no se puede deshabilitar. En KCL 2.x, si KCL se configura para procesar varios flujos de datos, todas las dimensiones de las métricas (Operation, ShardId, StreamId y WorkerIdentifier) están habilitadas de forma predeterminada. Además, en KCL 2.x, si el KCL está configurado para procesar varios flujos de datos, las dimensiones Operation y las StreamId dimensiones no se pueden deshabilitar. StreamIdLa dimensión solo está disponible para las métricas por fragmento.

En KCL 1.x, solo las dimensiones Operation y ShardId están habilitadas de forma predeterminada. La dimensión WorkerIdentifier está deshabilitada. En KCL 1.x, la dimensión Operation no se puede deshabilitar.

Para obtener más información sobre las dimensiones CloudWatch métricas, consulta la sección Dimensiones del tema CloudWatch Conceptos de Amazon, en la Guía del CloudWatch usuario de Amazon.

Cuando la WorkerIdentifier dimensión está habilitada, si se utiliza un valor diferente para la propiedad del identificador de trabajador cada vez que se reinicia un determinado trabajador de KCL, se envían nuevos conjuntos de métricas con nuevos valores de WorkerIdentifier dimensión. CloudWatch Si necesita que el valor de la dimensión WorkerIdentifier sea el mismo cada vez que un proceso de trabajo de KCL determinado se reinicie, debe especificar explícitamente el mismo valor del ID del proceso de trabajo durante la inicialización para cada proceso de trabajo. Tenga en cuenta que el valor del ID de proceso de trabajo para cada proceso de trabajo de KCL activo deberá ser único entre todos los procesos de trabajo de KCL.

Configuración de métricas

Los niveles métricos y las dimensiones habilitadas se pueden configurar mediante la KinesisClientLibConfiguration instancia, que se pasa a Worker al iniciar la aplicación KCL. En MultiLangDaemon ese caso, las metricsEnabledDimensions propiedades metricsLevel y se pueden especificar en el archivo.properties utilizado para iniciar la aplicación MultiLangDaemon KCL.

Los niveles de las métricas pueden tener asignado uno de estos tres valores: NONE, SUMMARY o DETAILED. Los valores de dimensiones habilitados deben ser cadenas separadas por comas con la lista de dimensiones permitidas para las métricas. CloudWatch Las dimensiones utilizadas por la aplicación de KCL son Operation, ShardId y WorkerIdentifier.

Lista de métricas

En las siguientes tablas se enumeran las métricas de KCL agrupadas por ámbito y operación.

Per-KCL-application métricas

Estas métricas se agregan a todos los trabajadores de KCL dentro del ámbito de la aplicación, tal y como se define en el espacio de CloudWatch nombres de Amazon.

LeaseAssignmentManager

La LeaseAssignmentManager operación es responsable de asignar los arrendamientos a los trabajadores y reequilibrar los arrendamientos entre los trabajadores para lograr una utilización uniforme de los recursos de los trabajadores. La lógica de esta operación incluye leer los metadatos relacionados con el arrendamiento de la tabla de arrendamientos y las métricas de la tabla de métricas de los trabajadores, y realizar las asignaciones de arrendamiento.

Métrica Descripción

LeaseAndWorkerMetricsLoad.Hora

Tiempo necesario para cargar todos los arrendamientos y las métricas de los trabajadores en el administrador de asignación de arrendamientos (LAM), el nuevo algoritmo de asignación de arrendamientos y equilibrio de carga introducido en KCL 3.x.

Nivel de métrica: Detailed

Unidades: milisegundos

TotalLeases

Número total de arrendamientos para la aplicación KCL actual.

Nivel de métrica: Summary

Unidades: recuento

NumWorkers

Número total de trabajadores en la solicitud de KCL actual.

Nivel de métrica: Summary

Unidades: recuento

AssignExpiredOrUnassignedLeases.Hora

Es hora de realizar la asignación en memoria de las concesiones vencidas.

Nivel de métrica: Detailed

Unidades: milisegundos

LeaseSpillover

Número de arrendamientos que no se asignaron por haber alcanzado el límite establecido en cuanto al número máximo de arrendamientos o al rendimiento máximo por trabajador.

Nivel de métrica: Summary

Unidades: recuento

BalanceWorkerVariance4. Hora

Es hora de realizar un equilibrio en la memoria de los arrendamientos entre trabajadores.

Nivel de métrica: Detailed

Unidades: milisegundos

NumOfLeasesReassignment

Número total de reasignaciones de arrendamiento realizadas en la iteración de reasignación actual.

Nivel de métrica: Summary

Unidades: recuento

FailedAssignmentCount

Número de errores en las AssignLease llamadas a la tabla de arrendamiento de DynamoDB.

Nivel de métrica: Detailed

Unidades: recuento

ParallelyAssignLeases.Hora

Es hora de incluir las nuevas asignaciones en la tabla de arrendamientos de DynamoDB.

Nivel de métrica: Detailed

Unidades: milisegundos

ParallelyAssignLeases.Éxito

Número de nuevas tareas realizadas satisfactoriamente.

Nivel de métrica: Detailed

Unidades: recuento

TotalStaleWorkerMetricsEntry

Número total de entradas de métricas de trabajadores que deben limpiarse.

Nivel de métrica: Detailed

Unidades: recuento

StaleWorkerMetricsCleanup.Hora

Es hora de eliminar la entrada de métricas de trabajadores de la tabla de métricas de trabajadores de DynamoDB.

Nivel de métrica: Detailed

Unidades: milisegundos

Tiempo

Tiempo empleado por la LeaseAssignmentManager operación.

Nivel de métrica: Summary

Unidades: milisegundos

Success

Número de veces que se completa correctamente la operación LeaseAssignmentManager.

Nivel de métrica: Summary

Unidades: recuento

ForceLeaderRelease

Indica que el gerente de asignación de arrendamientos ha fallado tres veces seguidas y que el trabajador líder está liberando al liderazgo.

Nivel de métrica: Summary

Unidades: recuento

NumWorkersWithInvalidEntry

Número de entradas de métricas de trabajadores que se consideran inválidas.

Nivel de métrica: Summary

Unidades: recuento

NumWorkersWithFailingWorkerMetric

Número de entradas de métricas de trabajadores que tienen -1 (no está disponible el valor que representa la métrica de trabajadores) como uno de los valores de las métricas de trabajadores.

Nivel de métrica: Summary

Unidades: recuento

LeaseDeserializationFailureCount

Entrada de arrendamiento de la tabla de arrendamientos que no se pudo deserializar.

Nivel de métrica: Summary

Unidades: recuento

InitializeTask

La operación InitializeTask es responsable de inicializar el procesador de registros de la aplicación de KCL. La lógica de esta operación incluye la obtención de un iterador de particiones de Kinesis Data Streams y la inicialización del procesador de registros.

Métrica Descripción
KinesisDataFetcher.getIterator. ¿Exacto

Número de operaciones GetShardIterator correctas por aplicación de KCL.

Nivel de métrica: Detailed

Unidades: recuento

KinesisDataFetcher.getIterator.Time

Tiempo que tarda la operación GetShardIterator para la aplicación de KCL en cuestión.

Nivel de métrica: Detailed

Unidades: milisegundos

RecordProcessor.Inicializar. Time

Tiempo que tarda el método de inicialización del procesador de registros.

Nivel de métrica: Summary

Unidades: milisegundos

Success

Número de inicializaciones correctas del procesador de registros.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

Tiempo que tarda el proceso de trabajo de KCL en inicializar el procesador de registros.

Nivel de métrica: Summary

Unidades: milisegundos

ShutdownTask

La operación ShutdownTask inicia la secuencia de cierre para el procesamiento de fragmentos. Esto puede ocurrir porque un fragmento esté dividido o fusionado, o cuando se pierde la asignación del fragmento desde el proceso de trabajo. En ambos casos se invoca la función shutdown() del procesador de registros. También se descubren fragmentos nuevos en caso de que un fragmento se divida o se fusione, lo que da como resultado la creación de uno o varios fragmentos nuevos.

Métrica Descripción
CreateLease.Éxito

Número de veces que se agregan correctamente nuevas particiones secundarias a la tabla de DynamoDB de la aplicación de KCL después del cierre de la partición principal.

Nivel de métrica: Detailed

Unidades: recuento

CreateLease.Hora

Tiempo que se tarda en agregar la información de la nueva partición secundaria a la tabla DynamoDB de la aplicación de KCL.

Nivel de métrica: Detailed

Unidades: milisegundos

UpdateLease.Éxito

Número de puntos de comprobación finales correctos durante el cierre del procesador de registros.

Nivel de métrica: Detailed

Unidades: recuento

UpdateLease.Hora

Tiempo que tarda la operación de puntos de comprobación durante el cierre del procesador de registros.

Nivel de métrica: Detailed

Unidades: milisegundos

RecordProcessor.Hora de apagar

Tiempo que tarda el método de cierre del procesador de registros.

Nivel de métrica: Summary

Unidades: milisegundos

Success

Número de tareas cerradas correctamente.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

Tiempo que tarda el proceso de trabajo de KCL en la tarea de cierre.

Nivel de métrica: Summary

Unidades: milisegundos

ShardSyncTask

La operación ShardSyncTask detecta los cambios en la información de la partición del flujo de datos de Kinesis, de modo que las nuevas particiones se puedan procesar en la aplicación de KCL.

Métrica Descripción
CreateLease.Éxito

Número de intentos correctos para agregar nueva información sobre la partición a la tabla de DynamoDB de la aplicación de KCL.

Nivel de métrica: Detailed

Unidades: recuento

CreateLease.Hora

Tiempo que se tarda en agregar la información de la nueva partición a la tabla DynamoDB de la aplicación de KCL.

Nivel de métrica: Detailed

Unidades: milisegundos

Success

Número de operaciones de sincronización del fragmento correctas.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

Tiempo necesario para la operación de sincronización del fragmento.

Nivel de métrica: Summary

Unidades: milisegundos

BlockOnParentTask

Si el fragmento está dividido o fusionado con otros fragmentos, entonces se crean nuevos fragmentos secundarios. La operación BlockOnParentTask garantiza que el procesamiento de registros de las nuevas particiones no se inicie hasta que KCL procese por completo las particiones principales.

Métrica Descripción
Success

Número de comprobaciones correctas para completar el fragmento principal.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

Tiempo necesario para completar los fragmentos principales.

Nivel de métrica: Summary

Unidad: milisegundos

PeriodicShardSyncManager

PeriodicShardSyncManager es responsable de examinar los flujos de datos que procesa la aplicación de consumo de KCL, identificar los flujos de datos con asignaciones parciales y transferirlos para su sincronización.

Las siguientes métricas están disponibles cuando KCL está configurado para procesar un único flujo de datos (entonces el valor de NumStreamsToSync y NumStreamsWithPartialLeases se establece en 1) y también cuando KCL está configurado para procesar varios flujos de datos.

Métrica Descripción
NumStreamsToSync

El número de flujos de datos (por AWS cuenta) que procesa la aplicación de consumo que contiene concesiones parciales y que deben transferirse para su sincronización.

Nivel de métrica: Summary

Unidades: recuento

NumStreamsWithPartialLeases

El número de flujos de datos (por AWS cuenta) que la aplicación de consumo está procesando y que contienen arrendamientos parciales.

Nivel de métrica: Summary

Unidades: recuento

Success

El número de veces que PeriodicShardSyncManager pudo identificar correctamente las asignaciones parciales en los flujos de datos que la aplicación de consumo está procesando.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

La cantidad de tiempo (en milisegundos) que PeriodicShardSyncManager se tarda en examinar los flujos de datos que la aplicación de consumo está procesando, a fin de determinar qué flujos de datos requieren sincronización de fragmentos.

Nivel de métrica: Summary

Unidades: milisegundos

MultistreamTracker

La interfaz de MultistreamTracker le permite crear aplicaciones de consumo de KCL que pueden procesar varios flujos de datos al mismo tiempo.

Métrica Descripción
DeletedStreams4. Contar

El número de flujos de datos eliminados en este periodo de tiempo.

Nivel de métrica: Summary

Unidades: recuento

ActiveStreams.Cuenta

El número de flujos de datos activos que se están procesando.

Nivel de métrica: Summary

Unidades: recuento

StreamsPendingDeletion.Cuenta

El número de flujos de datos pendientes de eliminación en función de FormerStreamsLeasesDeletionStrategy.

Nivel de métrica: Summary

Unidades: recuento

Métricas por proceso de trabajo

Estas métricas se agregan a todos los procesadores de registros que consumen datos de una transmisión de datos de Kinesis, como una instancia de Amazon EC2 .

WorkerMetricStatsReporter

La WorkerMetricStatReporter operación se encarga de publicar periódicamente las métricas del trabajador actual en la tabla de métricas del trabajador. La LeaseAssignmentManager operación utiliza estas métricas para realizar las asignaciones de arrendamiento.

Métrica Descripción

InMemoryMetricStatsReporterFailure

Número de errores al capturar el valor de la métrica de trabajadores en memoria, debido a un error en algunas métricas de trabajadores.

Nivel de métrica: Summary

Unidades: recuento

WorkerMetricStatsReporter.Hora

Tiempo empleado por la WorkerMetricsStats operación.

Nivel de métrica: Summary

Unidades: milisegundos

WorkerMetricStatsReporter.Éxito

Número de veces que se completa correctamente la operación WorkerMetricsStats.

Nivel de métrica: Summary

Unidades: recuento

LeaseDiscovery

La LeaseDiscovery operación es responsable de identificar los nuevos contratos de arrendamiento que la operación ha asignado al LeaseAssignmentManager trabajador actual. La lógica de esta operación implica identificar los arrendamientos asignados al trabajador actual mediante la lectura del índice secundario global de la tabla de arrendamientos.

Métrica Descripción

ListLeaseKeysForWorker.Hora

Es hora de incluir el índice secundario global de la tabla de arrendamientos y obtener las claves de arrendamiento asignadas al trabajador actual.

Nivel de métrica: Detailed

Unidades: milisegundos

FetchNewLeases.Hora

Es hora de buscar todos los nuevos arrendamientos de la tabla de arrendamientos.

Nivel de métrica: Detailed

Unidades: milisegundos

NewLeasesDiscovered

Número total de nuevos arrendamientos asignados a los trabajadores.

Nivel de métrica: Detailed

Unidades: recuento

Tiempo

Tiempo empleado por la LeaseDiscovery operación.

Nivel de métrica: Summary

Unidades: milisegundos

Success

Número de veces que se completa correctamente la operación LeaseDiscovery.

Nivel de métrica: Summary

Unidades: recuento

OwnerMismatch

El número de propietarios no coincide con la respuesta del GSI y la lectura de la tabla de arrendamientos es coherente.

Nivel de métrica: Detailed

Unidades: recuento

RenewAllLeases

La operación RenewAllLeases renueva periódicamente las asignaciones de un fragmento propiedad de una instancia de proceso de trabajo en particular.

Métrica Descripción
RenewLease.Éxito

Número de renovaciones correctas de asignaciones por parte del proceso de trabajo.

Nivel de métrica: Detailed

Unidades: recuento

RenewLease.Hora

Tiempo necesario para la operación de renovación de la asignación.

Nivel de métrica: Detailed

Unidades: milisegundos

CurrentLeases

Número de asignaciones de fragmentos propiedad del proceso de trabajo tras la renovación de todas las asignaciones.

Nivel de métrica: Summary

Unidades: recuento

LostLeases

Número de asignaciones de fragmentos perdidos tras un intento de renovar todas las asignaciones propiedad del proceso de trabajo.

Nivel de métrica: Summary

Unidades: recuento

Success

Número de veces que la operación de renovación del contrato de arrendamiento fue exitosa para el trabajador.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

Tiempo necesario para renovar todas las asignaciones del proceso de trabajo.

Nivel de métrica: Summary

Unidades: milisegundos

TakeLeases

La operación TakeLeases equilibra el procesamiento de registros entre todos los procesos de trabajo de KCL. Si el proceso de trabajo actual de KCL tiene menos asignaciones de particiones de lo necesario, asume asignaciones de particiones de otro proceso de trabajo sobrecargado.

Métrica Descripción
ListLeases.Éxito

Número de veces que se han recuperado correctamente todas las concesiones de particiones de la tabla de DynamoDB de la aplicación de KCL.

Nivel de métrica: Detailed

Unidades: recuento

ListLeases.Hora

Tiempo que se tarda en recuperar todas las concesiones de particiones de la tabla de DynamoDB de la aplicación de KCL.

Nivel de métrica: Detailed

Unidades: milisegundos

TakeLease.Éxito

Número de veces que el proceso de trabajo ha asumido correctamente asignaciones de particiones de otros procesos de trabajo de KCL.

Nivel de métrica: Detailed

Unidades: recuento

TakeLease.Hora

Tiempo necesario para actualizar la tabla de asignaciones con las asignaciones asumidas por el proceso de trabajo.

Nivel de métrica: Detailed

Unidades: milisegundos

NumWorkers

El número total de procesos de trabajo identificado por un proceso de trabajo específico.

Nivel de métrica: Summary

Unidades: recuento

NeededLeases

Número de asignaciones de fragmentos que necesita el proceso de trabajo actual para una carga de procesamiento de fragmentos equilibrada.

Nivel de métrica: Detailed

Unidades: recuento

LeasesToTake

Número de asignaciones que el proceso de trabajo intentará asumir.

Nivel de métrica: Detailed

Unidades: recuento

TakenLeases

Número de asignaciones asumidas correctamente por el proceso de trabajo.

Nivel de métrica: Summary

Unidades: recuento

TotalLeases

Número total de particiones que procesa la aplicación de KCL.

Nivel de métrica: Detailed

Unidades: recuento

ExpiredLeases

Número total de fragmentos que no están siendo procesados por ningún proceso de trabajo, según lo identifica el proceso de trabajo específico.

Nivel de métrica: Summary

Unidades: recuento

Success

Número de veces que se completa correctamente la operación TakeLeases.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

Tiempo necesario para la operación TakeLeases para un proceso de trabajo.

Nivel de métrica: Summary

Unidades: milisegundos

Métricas por partición

Las métricas se acumulan en un único procesador de registros.

ProcessTask

La operación ProcessTask llama a GetRecords con la posición actual del iterador para recuperar los registros de la secuencia e invoca la función processRecords del procesador de registros.

Métrica Descripción
KinesisDataFetcher.GetRecords.Éxito

Número de operaciones GetRecords correctas por partición de flujo de datos de Kinesis.

Nivel de métrica: Detailed

Unidades: recuento

KinesisDataFetcher.getRecords.Time

Tiempo que tarda cada operación GetRecords para la partición de flujo de datos de Kinesis.

Nivel de métrica: Detailed

Unidades: milisegundos

UpdateLease.Éxito

Número de puntos de comprobación correctos realizados por el procesador de registros para un fragmento determinado.

Nivel de métrica: Detailed

Unidades: recuento

UpdateLease.Hora

Tiempo necesario para cada operación de punto de comprobación para el fragmento determinado.

Nivel de métrica: Detailed

Unidades: milisegundos

DataBytesProcessed

Tamaño total en bytes de los registros procesados en cada invocación de ProcessTask.

Nivel de métrica: Summary

Unidades: bytes

RecordsProcessed

Número de registros procesados en cada invocación de ProcessTask.

Nivel de métrica: Summary

Unidades: recuento

ExpiredIterator

Número de mensajes ExpiredIteratorException recibidos al llamarGetRecords.

Nivel de métrica: Summary

Unidades: recuento

MillisBehindLatest Tiempo de que el iterador actual permanece por detrás del último registro (el extremo) del fragmento. Este valor es inferior o igual a la diferencia de tiempo entre el último registro en una respuesta y la hora actual. Esto refleja con más precisión qué tan lejos está un fragmento de la punta que comparar las marcas de tiempo del último registro de respuesta. Este valor se aplica al último lote de registros, no a un promedio de todas las marcas de tiempo de cada registro.

Nivel de métrica: Summary

Unidades: milisegundos

RecordProcessor.ProcessRecords.Time

Tiempo que tarda el método processRecords del procesador de registros.

Nivel de métrica: Summary

Unidades: milisegundos

Success

Número de operaciones de tareas de proceso correctas.

Nivel de métrica: Summary

Unidades: recuento

Tiempo

Tiempo necesario para la operación de tarea de proceso.

Nivel de métrica: Summary

Unidades: milisegundos