Monitore a biblioteca de cliente do Kinesis com a Amazon CloudWatch - Amazon Kinesis Data Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Monitore a biblioteca de cliente do Kinesis com a Amazon CloudWatch

A Kinesis Client Library (KCL) para Amazon Kinesis Data Streams publica métricas personalizadas da CloudWatch Amazon em seu nome, usando o nome do seu aplicativo KCL como namespace. Você pode visualizar essas métricas navegando até o CloudWatch console e escolhendo Métricas personalizadas. Para obter mais informações sobre métricas personalizadas, consulte Publicar métricas personalizadas no Guia CloudWatch do usuário da Amazon.

Há uma cobrança nominal pelas métricas enviadas CloudWatch pela KCL; especificamente, as cobranças de Amazon CloudWatch Custom Metrics e Amazon CloudWatch API Requests se aplicam. Para obter mais informações, consulte Amazon CloudWatch Pricing.

Métricas e namespace

O namespace usado para o carregamento de métricas é o nome da aplicação especificado ao executar o KCL.

Dimensões e níveis de métricas

Há duas opções para controlar quais métricas são carregadas para o CloudWatch:

níveis de métrica

Cada métrica é atribuída a um nível individual. Quando você define um nível de relatório de métricas, métricas com um nível individual abaixo do nível de relatório não são enviadas para CloudWatch. Os níveis são: NONE, SUMMARY e DETAILED. A configuração padrão éDETAILED; ou seja, todas as métricas são enviadas para CloudWatch. Um nível de relatório NONE significa que nenhuma métrica é enviada. Para obter informações sobre quais níveis são atribuídos a quais métricas, consulte Lista de métricas.

dimensões habilitadas

Cada métrica KCL tem dimensões associadas que também são enviadas para CloudWatch. Na KCL 2.x, se a KCL estiver configurada para processar um único fluxo de dados, todas as dimensões de métricas (Operation, ShardId e WorkerIdentifier) serão habilitadas por padrão. Além disso, na KCL 2.x, se a KCL estiver configurada para processar um único fluxo de dados, a dimensão Operation não poderá ser desabilitada. Na KCL 2.x, se a KCL estiver configurada para processar vários fluxos de dados, todas as dimensões de métricas (Operation, ShardId, StreamId e WorkerIdentifier) serão habilitadas por padrão. Além disso, na KCL 2.x, se a KCL estiver configurada para processar vários fluxos de dados, as dimensões Operation e StreamId não poderão ser desabilitadas. A dimensão StreamId só está disponível para métricas por fragmento.

Na KCL 1.x, apenas as dimensões Operation e ShardId estão habilitadas por padrão, e a dimensão WorkerIdentifier está desabilitada. Na KCL 1.x, a dimensão Operation não pode ser desabilitada.

Para obter mais informações sobre dimensões CloudWatch métricas, consulte a seção Dimensões no tópico Amazon CloudWatch Concepts, no Guia CloudWatch do usuário da Amazon.

Quando a WorkerIdentifier dimensão é ativada, se um valor diferente for usado para a propriedade de ID do trabalhador toda vez que um determinado trabalhador da KCL for reiniciado, novos conjuntos de métricas com novos valores de WorkerIdentifier dimensão serão enviados para. CloudWatch Se houver necessidade de que o valor da dimensão WorkerIdentifier seja o mesmo nas reinicializações de um operador da KCL específico, será necessário especificar explicitamente o mesmo valor do ID do operador durante a inicialização para cada operador. Observe que o valor do ID do operador para cada operador da KCL ativo precisa ser único entre todos os operadores da KCL.

Configuração da métrica

Os níveis métricos e as dimensões habilitadas podem ser configurados usando a KinesisClientLibConfiguration instância, que é passada para o Worker ao iniciar o aplicativo KCL. MultiLangDaemon Nesse caso, as metricsEnabledDimensions propriedades metricsLevel e podem ser especificadas no arquivo.properties usado para iniciar o aplicativo MultiLangDaemon KCL.

Os níveis de métrica podem ser atribuídos a um dos três valores: NONE, SUMMARY ou DETAILED. Os valores das dimensões ativadas devem ser sequências de caracteres separadas por vírgula com a lista de dimensões permitidas para as métricas. CloudWatch As dimensões usadas pela aplicação da KCL são Operation, ShardId e WorkerIdentifier.

Lista de métricas

As tabelas a seguir listam as métricas da KCL agrupadas por escopo e operação.

Per-KCL-application métricas

Essas métricas são agregadas em todos os trabalhadores da KCL dentro do escopo do aplicativo, conforme definido pelo namespace da Amazon CloudWatch .

LeaseAssignmentManager

A operação LeaseAssignmentManager é responsável por atribuir concessões aos operadores e reequilibrar as concessões entre os operadores para obter uma utilização uniforme dos recursos dos operadores. A lógica dessa operação inclui a leitura dos metadados da concessão presentes na tabela da concessão e as métricas da tabela de métricas do operador e a execução de atribuições da concessão.

Métrica Description

LeaseAndWorkerMetricsLoad.Hora

Tempo gasto para carregar todas as concessões e informações de métricas dos operadores no gerenciador de atribuição de concessão (LAM), o novo algoritmo de atribuição de concessão e balanceamento de carga introduzido na KCL 3.x.

Nível de métrica: detalhado

Unidade: milissegundos

TotalLeases

Número total de concessões para a aplicação da KCL atual.

Nível de métrica: resumo

Unidades: contagem

NumWorkers

O número total de operadores na aplicação atual da KCL.

Nível de métrica: resumo

Unidades: contagem

AssignExpiredOrUnassignedLeases.Hora

Tempo para a realização da atribuição em memória de concessões expiradas.

Nível de métrica: detalhado

Unidade: milissegundos

LeaseSpillover

Número de concessões que não foram atribuídas por atingirem o limite do número máximo de concessões ou de throughput máxima por operador.

Nível de métrica: resumo

Unidades: contagem

BalanceWorkerVariance.Hora

Tempo para a realização do balanceamento na memória das concessões entre operadores.

Nível de métrica: detalhado

Unidade: milissegundos

NumOfLeasesReassignment

Número total de reatribuições de concessões feitas na iteração de reatribuição atual.

Nível de métrica: resumo

Unidades: contagem

FailedAssignmentCount

Número de falhas nas AssignLease chamadas para a tabela de lease do DynamoDB.

Nível de métrica: detalhado

Unidades: contagem

ParallelyAssignLeases.Hora

Tempo para a transferência de novas atribuições para a tabela de concessões do DynamoDB.

Nível de métrica: detalhado

Unidade: milissegundos

ParallelyAssignLeases.Sucesso

Número de transferências de novas atribuições com êxito.

Nível de métrica: detalhado

Unidades: contagem

TotalStaleWorkerMetricsEntry

Número total de informações de métricas do operador que devem ser eliminadas.

Nível de métrica: detalhado

Unidades: contagem

StaleWorkerMetricsCleanup.Hora

Tempo para a realização da exclusão das informações das métricas do operador da tabela de métricas de operadores do DynamoDB.

Nível de métrica: detalhado

Unidade: milissegundos

Hora

Tempo gasto pela operação LeaseAssignmentManager.

Nível de métrica: resumo

Unidade: milissegundos

Bem-sucedida

Número de vezes que a operação LeaseAssignmentManager foi concluída com sucesso.

Nível de métrica: resumo

Unidades: contagem

ForceLeaderRelease

Indica que o gerenciador de atribuição de concessões falhou 3 vezes consecutivas e que o operador líder está liberando a liderança.

Nível de métrica: resumo

Unidades: contagem

NumWorkersWithInvalidEntry

Número de informações de métricas do operador que são consideradas inválidas.

Nível de métrica: resumo

Unidades: contagem

NumWorkersWithFailingWorkerMetric

Número de informações de métricas do operador que têm -1 (representando que o valor da métrica do operador não está disponível) como um dos valores das métricas do operador.

Nível de métrica: resumo

Unidades: contagem

LeaseDeserializationFailureCount

Informações da concessão a partir da tabela de concessões que falhou em desserializar.

Nível de métrica: resumo

Unidades: contagem

InitializeTask

A operação InitializeTask é responsável por inicializar o processador de registros para a aplicação da KCL. A lógica dessa operação inclui a obtenção de um iterador de fragmentos do Kinesis Data Streams e a inicialização do processador de registros.

Métrica Description
KinesisDataFetcher.getIterator.Success

Número de operações GetShardIterator bem-sucedidas por aplicação da KCL.

Nível de métrica: detalhado

Unidades: contagem

KinesisDataFetcher.getIterator.time

Tempo decorrido por operação GetShardIterator para a aplicação da KCL determinada.

Nível de métrica: detalhado

Unidade: milissegundos

RecordProcessor.Initialize.time

Tempo percorrido pelo método de inicialização do processador de registros.

Nível de métrica: resumo

Unidade: milissegundos

Bem-sucedida

Número de inicializações bem-sucedidas do processador de registros.

Nível de métrica: resumo

Unidades: contagem

Hora

Tempo decorrido pelo operador da KCL para inicialização do processador de registros.

Nível de métrica: resumo

Unidade: milissegundos

ShutdownTask

A operação ShutdownTask inicia a sequência de desligamento para o processamento de fragmento. Isso pode ocorrer porque um fragmento é dividido ou mesclado, ou quando a concessão do fragmento é perdida no operador. Em ambos os casos, a função shutdown() do processador de registros é chamada. Novos fragmentos também são descobertos no caso em que um fragmento é dividido ou mesclado, resultando na criação de um ou dois novos fragmentos.

Métrica Description
CreateLease.Sucesso

O número de vezes que novos fragmentos filho são adicionados com êxito à tabela do DynamoDB da aplicação da KCL após o desligamento do fragmento pai.

Nível de métrica: detalhado

Unidades: contagem

CreateLease.Hora

Tempo decorrido para adicionar informações de novos fragmentos filho à tabela do DynamoDB da aplicação da KCL.

Nível de métrica: detalhado

Unidade: milissegundos

UpdateLease.Sucesso

Número de pontos de verificação finais bem-sucedidos durante o desligamento do processador de registros.

Nível de métrica: detalhado

Unidades: contagem

UpdateLease.Hora

Tempo necessário para a operação de pontos de verificação durante o desligamento do processador de registros.

Nível de métrica: detalhado

Unidade: milissegundos

RecordProcessor.Horário de desligamento

Tempo percorrido pelo método de desligamento do processador de registros.

Nível de métrica: resumo

Unidade: milissegundos

Bem-sucedida

Número de tarefas de desligamento bem-sucedidas.

Nível de métrica: resumo

Unidades: contagem

Hora

Tempo decorrido pelo operador da KCL para a tarefa de desligamento.

Nível de métrica: resumo

Unidade: milissegundos

ShardSyncTask

A operação ShardSyncTask detecta alterações nas informações de fragmentos do fluxo de dados do Kinesis para que novos fragmentos possam ser processados pela aplicação da KCL.

Métrica Description
CreateLease.Sucesso

Número de tentativas bem-sucedidas para adicionar novas informações de fragmentos à tabela do DynamoDB da aplicação da KCL.

Nível de métrica: detalhado

Unidades: contagem

CreateLease.Hora

Tempo decorrido para adicionar informações de novos fragmentos à tabela do DynamoDB da aplicação da KCL.

Nível de métrica: detalhado

Unidade: milissegundos

Bem-sucedida

Número de operações bem-sucedidas de sincronização de fragmentos.

Nível de métrica: resumo

Unidades: contagem

Hora

Tempo percorrido para a operação de sincronização de fragmentos.

Nível de métrica: resumo

Unidade: milissegundos

BlockOnParentTask

Se o fragmento é dividido ou mesclado com outros, novos fragmentos filhos são criados. A operação BlockOnParentTask garante que o processamento de registros de novos fragmentos não será iniciado até que os fragmentos pai sejam completamente processados pela KCL.

Métrica Description
Bem-sucedida

Número de verificações bem-sucedidas para a conclusão de fragmentos pai.

Nível de métrica: resumo

Unidades: contagem

Hora

Tempo percorrido para a conclusão de fragmentos pai.

Nível de métrica: resumo

Unidade: milissegundos

PeriodicShardSyncManager

A PeriodicShardSyncManager é responsável por examinar os fluxos de dados sendo processados pela aplicação de consumo da KCL, identificando fluxos de dados com concessões parciais e entregando-os para sincronização.

As métricas a seguir estão disponíveis quando a KCL está configurada para processar um único fluxo de dados (em seguida, o valor de NumStreamsToSync e NumStreamsWithPartialLeases é definido como 1) e também quando a KCL está configurada para processar vários fluxos de dados.

Métrica Description
NumStreamsToSync

O número de fluxos de dados (por AWS conta) processados pelo aplicativo consumidor que contém concessões parciais e que devem ser entregues para sincronização.

Nível de métrica: resumo

Unidades: contagem

NumStreamsWithPartialLeases

O número de fluxos de dados (por AWS conta) que o aplicativo do consumidor está processando e que contêm concessões parciais.

Nível de métrica: resumo

Unidades: contagem

Bem-sucedida

O número de vezes que PeriodicShardSyncManager conseguiu identificar com êxito as concessões parciais nos fluxos de dados que a aplicação de consumo está processando.

Nível de métrica: resumo

Unidades: contagem

Hora

O tempo (em milissegundos) que PeriodicShardSyncManager leva para examinar os fluxos de dados processados pela aplicação de consumo, a fim de determinar quais dos fluxos de dados exigem sincronização de fragmentos.

Nível de métrica: resumo

Unidade: milissegundos

MultistreamTracker

A interface MultistreamTracker permite a criação de aplicações de consumo da KCL que podem processar vários fluxos de dados ao mesmo tempo.

Métrica Description
DeletedStreams.Contagem

O número de fluxos de dados excluídos no período.

Nível de métrica: resumo

Unidades: contagem

ActiveStreams.Contagem

O número de fluxos de dados ativos sendo processados.

Nível de métrica: resumo

Unidades: contagem

StreamsPendingDeletion.Contagem

O número de fluxos de dados com exclusão pendente com base em FormerStreamsLeasesDeletionStrategy.

Nível de métrica: resumo

Unidades: contagem

Métricas por operador

Essas métricas são agregadas em todos os processadores de registros que consomem dados de um stream de dados do Kinesis, como uma instância da Amazon EC2 .

WorkerMetricStatsReporter

A operação WorkerMetricStatReporter é responsável por publicar periodicamente as métricas do operador atual na tabela de métricas do operador. Essas métricas são usadas pela operação LeaseAssignmentManager para realizar atribuições de concessão.

Métrica Description

InMemoryMetricStatsReporterFailure

Número de falhas na captura do valor da métrica do operador na memória, devido à falha de algumas métricas do operador.

Nível de métrica: resumo

Unidades: contagem

WorkerMetricStatsReporter.Hora

Tempo gasto pela operação WorkerMetricsStats.

Nível de métrica: resumo

Unidade: milissegundos

WorkerMetricStatsReporter.Sucesso

Número de vezes que a operação WorkerMetricsStats foi concluída com sucesso.

Nível de métrica: resumo

Unidades: contagem

LeaseDiscovery

A operação LeaseDiscovery é responsável por identificar as novas concessões atribuídas ao operador atual pela operação LeaseAssignmentManager. A lógica dessa operação envolve a identificação das concessões atribuídas ao operador atual por meio da leitura do índice secundário global da tabela de concessões.

Métrica Description

ListLeaseKeysForWorker.Hora

O tempo para chamar o índice secundário global na tabela de concessões e obter as chaves de concessão atribuídas ao operador atual.

Nível de métrica: detalhado

Unidade: milissegundos

FetchNewLeases.Hora

O tempo para buscar todas as novas concessões na tabela de concessões.

Nível de métrica: detalhado

Unidade: milissegundos

NewLeasesDiscovered

O número total de novas concessões atribuídas aos operadores.

Nível de métrica: detalhado

Unidades: contagem

Hora

Tempo gasto pela operação LeaseDiscovery.

Nível de métrica: resumo

Unidade: milissegundos

Bem-sucedida

Número de vezes que a operação LeaseDiscovery foi concluída com sucesso.

Nível de métrica: resumo

Unidades: contagem

OwnerMismatch

O número de incompatibilidades do proprietário em relação à resposta do GSI e à leitura consistente da tabela de concessão.

Nível de métrica: detalhado

Unidades: contagem

RenewAllLeases

A operação RenewAllLeases renova periodicamente concessões de fragmentos de propriedade de uma determinada instância de operador.

Métrica Description
RenewLease.Sucesso

Número de renovações bem-sucedidas de concessões por parte do operador.

Nível de métrica: detalhado

Unidades: contagem

RenewLease.Hora

O tempo necessário para a operação de renovação de concessões.

Nível de métrica: detalhado

Unidade: milissegundos

CurrentLeases

Número de concessões de fragmentos pertencentes ao operador depois que todas as concessões foram renovadas.

Nível de métrica: resumo

Unidades: contagem

LostLeases

Número de concessões de fragmentos perdidas após uma tentativa de renovar todas as concessões pertencentes ao operador.

Nível de métrica: resumo

Unidades: contagem

Bem-sucedida

Número de vezes que a operação de renovação da concessão foi bem-sucedida para o operador.

Nível de métrica: resumo

Unidades: contagem

Hora

Tempo percorrido para renovar todas as concessões para o operador.

Nível de métrica: resumo

Unidade: milissegundos

TakeLeases

A operação TakeLeases equilibra o processamento de registros entre todos os operadores da KCL. Se tiver menos concessões de fragmentos que o necessário, o operador atual da KCL usará concessões de fragmentos de outro operador que esteja sobrecarregado.

Métrica Description
ListLeases.Sucesso

Número de vezes que todas as concessões de fragmentos foram recuperadas com êxito da tabela do DynamoDB da aplicação da KCL.

Nível de métrica: detalhado

Unidades: contagem

ListLeases.Hora

Tempo decorrido para recuperar todas as concessões de fragmentos da tabela do DynamoDB da aplicação da KCL.

Nível de métrica: detalhado

Unidade: milissegundos

TakeLease.Sucesso

Número de vezes que o operador usou com êxito concessões de fragmentos de outros operadores da KCL.

Nível de métrica: detalhado

Unidades: contagem

TakeLease.Hora

Tempo decorrido para atualizar a tabela de concessão com concessões executadas pelo operador.

Nível de métrica: detalhado

Unidade: milissegundos

NumWorkers

Número total de operadores, conforme identificado por um operador específico.

Nível de métrica: resumo

Unidades: contagem

NeededLeases

Número de concessões de fragmentos que o operador atual precisa para uma carga de processamento de fragmentos equilibrada.

Nível de métrica: detalhado

Unidades: contagem

LeasesToTake

O número de concessões que o operador tentará executar.

Nível de métrica: detalhado

Unidades: contagem

TakenLeases

Número de concessões realizadas com sucesso pelo operador.

Nível de métrica: resumo

Unidades: contagem

TotalLeases

Número total de fragmentos que a aplicação da KCL está processando.

Nível de métrica: detalhado

Unidades: contagem

ExpiredLeases

Número total de fragmentos que não estão sendo processados por nenhum operador, conforme identificado pelo operador específico.

Nível de métrica: resumo

Unidades: contagem

Bem-sucedida

Número de vezes que a operação TakeLeases foi concluída com sucesso.

Nível de métrica: resumo

Unidades: contagem

Hora

Tempo percorrido pela operação TakeLeases para um operador.

Nível de métrica: resumo

Unidade: milissegundos

Métricas por fragmento

Essas métricas são agregadas em um único processador de registros.

ProcessTask

A operação ProcessTask chama GetRecords com a posição do iterador atual para recuperar registros do streaming e chama a função processRecords do processador de registros.

Métrica Description
KinesisDataFetcher.getRecords.Sucesso

Número de operações GetRecords bem-sucedidas por fragmento do fluxo de dados do Kinesis.

Nível de métrica: detalhado

Unidades: contagem

KinesisDataFetcher.Obter registros. Hora

Tempo decorrido por operação GetRecords para o fragmento do fluxo de dados do Kinesis.

Nível de métrica: detalhado

Unidade: milissegundos

UpdateLease.Sucesso

Número de pontos de verificação bem-sucedidos feitos pelo processador de registros para o determinado fragmento.

Nível de métrica: detalhado

Unidades: contagem

UpdateLease.Hora

Tempo percorrido para cada operação de ponto de verificação para o determinado fragmento.

Nível de métrica: detalhado

Unidade: milissegundos

DataBytesProcessed

Tamanho total de registros processados em bytes em cada chamada de ProcessTask.

Nível de métrica: resumo

Unidades: byte

RecordsProcessed

Número de registros processados em cada chamada de ProcessTask.

Nível de métrica: resumo

Unidades: contagem

ExpiredIterator

Número de ExpiredIteratorException recebidos ao ligarGetRecords.

Nível de métrica: resumo

Unidades: contagem

MillisBehindLatest Tempo em que o iterador atual está atrás do registro mais recente (ponta) no fragmento. Esse valor é menor ou igual à diferença da hora entre o registro mais recente em uma resposta e a hora atual. Esse é um reflexo mais preciso da distância em que um fragmento está da ponta do que a comparação de carimbos de data/hora no último registro de resposta. Esse valor se aplica ao último lote de registros, não a uma média de todos os carimbos de data/hora em cada registro.

Nível de métrica: resumo

Unidade: milissegundos

RecordProcessor.Registros do processo. Tempo

Tempo percorrido pelo método processRecords do processador de registros.

Nível de métrica: resumo

Unidade: milissegundos

Bem-sucedida

Número de operações bem-sucedidas de tarefas do processo.

Nível de métrica: resumo

Unidades: contagem

Hora

Tempo percorrido para a operação de tarefas do processo.

Nível de métrica: resumo

Unidade: milissegundos