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á.
Monitorar a Kinesis Client Library com o Amazon CloudWatch
A Kinesis Client Library (KCL) para o Amazon Kinesis Data Streams publica métricas personalizadas do Amazon CloudWatch em seu nome, usando o nome da aplicação da KCL como namespace. Essas métricas podem ser visualizadas navegando até o console do CloudWatch
Há uma cobrança nominal para métricas carregadas por upload no CloudWatch pela KCL. Aplicam-se cobranças especificamente para métricas personalizadas do Amazon CloudWatch e solicitações de API do Amazon CloudWatch. Para obter mais informações, consulte Preços do Amazon CloudWatch
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. Ao definir um nível de relatório de métricas, as métricas com um nível individual abaixo do nível de relatório não são enviadas ao CloudWatch. Os níveis são:
NONE,SUMMARYeDETAILED. A configuração padrão éDETAILED, ou seja, todas as métricas são enviadas ao CloudWatch. Um nível de relatórioNONEsignifica 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 da KCL tem dimensões associadas que também são enviadas ao 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,ShardIdeWorkerIdentifier) 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ãoOperationnã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,StreamIdeWorkerIdentifier) 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õesOperationeStreamIdnão poderão ser desabilitadas. A dimensãoStreamIdsó está disponível para métricas por fragmento.Na KCL 1.x, apenas as dimensões
OperationeShardIdestão habilitadas por padrão, e a dimensãoWorkerIdentifierestá desabilitada. Na KCL 1.x, a dimensãoOperationnão pode ser desabilitada.Para obter mais informações sobre dimensões de métricas do CloudWatch, consulte a seção Dimensões no tópico “Conceitos do Amazon CloudWatch” no Guia do usuário do Amazon CloudWatch.
Quando a dimensão
WorkerIdentifierestá habilitada, se um valor diferente for usado para a propriedade do ID do operador toda vez que um determinado operador da KCL é reiniciado, novos conjuntos de métricas com novos valores da dimensãoWorkerIdentifierserão enviados ao CloudWatch. Se houver necessidade de que o valor da dimensãoWorkerIdentifierseja 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 de métrica e as dimensões habilitadas podem ser configurados com a instância KinesisClientLibConfiguration, que é passada ao operador na inicialização da aplicação da KCL. No caso de MultiLangDaemon, as propriedades metricsLevel e metricsEnabledDimensions podem ser especificadas no arquivo .properties usado para executar a aplicação da KCL em MultiLangDaemon.
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 habilitadas precisam ser strings separadas por vírgulas e constar da lista de dimensões permitidas para as métricas do 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.
Métricas por aplicação da KCL
Essas métricas são agregadas em todos os operadores da KCL no escopo da aplicação, conforme definido pelo namespace do Amazon CloudWatch.
Tópicos
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 | Descrição |
|---|---|
|
LeaseAndWorkerMetricsLoad.Time |
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.Time |
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.Time |
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 chamadas AssignLease para a tabela de concessões do DynamoDB. Nível de métrica: detalhado Unidades: contagem |
|
ParallelyAssignLeases.Time |
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.Success |
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.Time |
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 |
| Time |
Tempo gasto pela operação Nível de métrica: resumo Unidade: milissegundos |
| Bem-sucedida |
Número de vezes que a operação 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 | Descrição |
|---|---|
| KinesisDataFetcher.getIterator.Success |
Número de operações Nível de métrica: detalhado Unidades: contagem |
| KinesisDataFetcher.getIterator.Time |
Tempo decorrido por operação 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 |
| Time |
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 | Descrição |
|---|---|
| CreateLease.Success |
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.Time |
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.Success |
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.Time |
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.shutdown.Time |
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 |
| Time |
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 | Descrição |
|---|---|
| CreateLease.Success |
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.Time |
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 |
| Time |
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 | Descrição |
|---|---|
| Bem-sucedida |
Número de verificações bem-sucedidas para a conclusão de fragmentos pai. Nível de métrica: resumo Unidades: contagem |
| Time |
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 (valores de numStreamsToSync e numStreamsWithPartialLeases definidos como 1) e quando está configurada para processar vários fluxos de dados.
| Métrica | Descrição |
|---|---|
| NumStreamsToSync |
Número de fluxos de dados (por conta da AWS) processados pela aplicação de consumo que contêm concessões parciais e que precisam ser entregues para sincronização. Nível de métrica: resumo Unidades: contagem |
| NumStreamsWithPartialLeases |
Número de fluxos de dados (por conta da AWS) processados pela aplicação de consumo que contêm concessões parciais. Nível de métrica: resumo Unidades: contagem |
| Bem-sucedida |
O número de vezes que Nível de métrica: resumo Unidades: contagem |
| Time |
O tempo (em milissegundos) que 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 | Descrição |
|---|---|
| DeletedStreams.Count |
O número de fluxos de dados excluídos no período. Nível de métrica: resumo Unidades: contagem |
| ActiveStreams.Count |
O número de fluxos de dados ativos sendo processados. Nível de métrica: resumo Unidades: contagem |
| StreamsPendingDeletion.Count |
O número de fluxos de dados com exclusão pendente com base em 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 fluxo de dados do Kinesis, como uma instância do 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 | Descrição |
|---|---|
|
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.Time |
Tempo gasto pela operação Nível de métrica: resumo Unidade: milissegundos |
|
WorkerMetricStatsReporter.Success |
Número de vezes que a operação 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 | Descrição |
|---|---|
|
ListLeaseKeysForWorker.Time |
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.Time |
Tempo para buscar todas as novas concessões na tabela de concessões. Nível de métrica: detalhado Unidade: milissegundos |
|
NewLeasesDiscovered |
Número total de novas concessões atribuídas aos operadores. Nível de métrica: detalhado Unidades: contagem |
|
Time |
Tempo gasto pela operação Nível de métrica: resumo Unidade: milissegundos |
|
Bem-sucedida |
Número de vezes que a operação Nível de métrica: resumo Unidades: contagem |
|
OwnerMismatch |
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 | Descrição |
|---|---|
| RenewLease.Success |
Número de renovações bem-sucedidas de concessões por parte do operador. Nível de métrica: detalhado Unidades: contagem |
| RenewLease.Time |
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 |
| Time |
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 | Descrição |
|---|---|
| ListLeases.Success |
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.Time |
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.Success |
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.Time |
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 Nível de métrica: resumo Unidades: contagem |
| Time |
Tempo percorrido pela operação 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 fluxo e invoca a função processRecords do processador de registros.
| Métrica | Descrição |
|---|---|
| KinesisDataFetcher.getRecords.Success |
Número de operações Nível de métrica: detalhado Unidades: contagem |
| KinesisDataFetcher.getRecords.Time |
Tempo decorrido por operação Nível de métrica: detalhado Unidade: milissegundos |
| UpdateLease.Success |
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.Time |
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 Nível de métrica: resumo Unidades: byte |
| RecordsProcessed |
Número de registros processados em cada chamada de Nível de métrica: resumo Unidades: contagem |
| ExpiredIterator |
Número de ExpiredIteratorException recebidos durante a chamada de 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.processRecords.Time |
Tempo percorrido pelo método 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 |
| Time |
Tempo percorrido para a operação de tarefas do processo. Nível de métrica: resumo Unidade: milissegundos |