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
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
Temas
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
yDETAILED
. La configuración predeterminada esDETAILED
, es decir, se envían todas las métricas a CloudWatch. El nivel de informeNONE
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
yWorkerIdentifier
) 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ónOperation
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
yWorkerIdentifier
) están habilitadas de forma predeterminada. Además, en KCL 2.x, si el KCL está configurado para procesar varios flujos de datos, las dimensionesOperation
y lasStreamId
dimensiones no se pueden deshabilitar.StreamId
La dimensión solo está disponible para las métricas por fragmento.En KCL 1.x, solo las dimensiones
Operation
yShardId
están habilitadas de forma predeterminada. La dimensiónWorkerIdentifier
está deshabilitada. En KCL 1.x, la dimensiónOperation
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 deWorkerIdentifier
dimensión. CloudWatch Si necesita que el valor de la dimensiónWorkerIdentifier
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.
Temas
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 Nivel de métrica: Summary Unidades: milisegundos |
Success |
Número de veces que se completa correctamente la operación 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 Nivel de métrica: Detailed Unidades: recuento |
KinesisDataFetcher.getIterator.Time |
Tiempo que tarda la operació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 Nivel de métrica: Summary Unidades: recuento |
Tiempo |
La cantidad de tiempo (en milisegundos) que 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 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 Nivel de métrica: Summary Unidades: milisegundos |
WorkerMetricStatsReporter.Éxito |
Número de veces que se completa correctamente la operación 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 Nivel de métrica: Summary Unidades: milisegundos |
Success |
Número de veces que se completa correctamente la operación 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 Nivel de métrica: Summary Unidades: recuento |
Tiempo |
Tiempo necesario para la operación 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 Nivel de métrica: Detailed Unidades: recuento |
KinesisDataFetcher.getRecords.Time |
Tiempo que tarda cada operación 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 Nivel de métrica: Summary Unidades: bytes |
RecordsProcessed |
Número de registros procesados en cada invocación de Nivel de métrica: Summary Unidades: recuento |
ExpiredIterator |
Número de mensajes ExpiredIteratorException recibidos al llamar 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 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 |