Monitorando a biblioteca do produtor Kinesis com o 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á.

Monitorando a biblioteca do produtor Kinesis com o Amazon CloudWatch

OBiblioteca de produtores do Kinesis(KPL) para Amazon Kinesis Data Streams publica Amazon personalizada CloudWatch Métricas em seu nome. Você pode visualizar essas métricas navegando até oConsole do CloudWatche escolhendoMétricas personalizadas do. Para obter mais informações sobre métricas personalizadas, consultePublicar métricas personalizadasnoAmazônia CloudWatch Guia do usuário do.

Há uma cobrança nominal para as métricas obtidas por upload no no. CloudWatch pela KPL; especificamente, a Amazon CloudWatch Métricas personalizadas e Amazon CloudWatch Aplicam-se cobranças de solicitações de API. Para obter mais informações, consulteAmazônia CloudWatch Definição de preços. A coleta de métricas locais não gera cobranças do CloudWatch.

Métricas, dimensões e namespaces

Você pode especificar um nome de aplicativo ao ativar o KPL, que é, então, usado como parte do namespace durante o carregamento de métricas. Isso é opcional; a KPL oferece um valor padrão se um nome de aplicativo não é definido.

Você também pode configurar a KPL para adicionar dimensões adicionais arbitrárias às métricas. Isso é útil se você deseja dados mais refinados no seu CloudWatch Métricas do . Por exemplo, você pode adicionar o nome de host como uma dimensão, o que permite que você identifique distribuições de carga irregulares na frota. Todas as definições de configuração da KPL são imutáveis; portanto, não é possível alterar essas dimensões adicionais após a instância do KPL ser inicializada.

Granularidade e nível de métrica

Há duas opções para controlar o número de métricas carregadas para o CloudWatch:

nível de métrica

Este é um indicador aproximado da importância de uma métrica. Cada métrica é atribuída a um nível. Ao definir um nível, as métricas com níveis menores não são enviadas ao CloudWatch. Os níveis são NONE, SUMMARY e DETAILED. A configuração padrão é DETAILED. Ou seja, todas as métricas. NONE significa que não há métricas, de modo que nenhuma métrica é atribuída a esse nível.

granularidade

Controla se a mesma métrica é emitida em níveis adicionais de granularidade. Os níveis são GLOBAL, STREAM e SHARD. A configuração padrão é SHARD, que contém as métricas mais granulares.

Quando SHARD é escolhida, as métricas são emitidas com o nome do stream e o ID do estilhaço como dimensões. Além disso, a mesma métrica também é emitida com somente a dimensão do nome do stream, e a métrica sem o nome do stream. Isso significa que, para uma métrica específica, dois fluxos com dois fragmentos cada produzirão sete CloudWatch Métricas: uma para cada estilhaço, um para cada stream e uma geral; todas descrevem as mesmas estatísticas, mas em diferentes níveis de granularidade. Para ter um esclarecimento, consulte o diagrama abaixo.

Os diferentes níveis de granularidade formam uma hierarquia, e todas as métricas no sistema formam árvores, enraizadas nos nomes da métrica:

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

Nem todas as métricas estão disponíveis no nível de estilhaço; algumas são de nível de stream ou globais por natureza. Elas não são produzidas no nível de estilhaço, mesmo se você tiver habilitado as métricas nesse nível (Metric Y no diagrama acima).

Quando você especifica uma dimensão adicional, precisa fornecer valores para tuple:<DimensionName, DimensionValue, Granularity>. A granularidade é usada para determinar onde a dimensão personalizada é inserida na hierarquia: GLOBAL significa que a dimensão adicional é inserida após o nome da métrica, STREAM significa que ela é inserida após o nome do stream e SHARD significa que ela é inserida depois do ID de estilhaço. Se várias dimensões adicionais são fornecidas por nível de granularidade, elas são inseridas na ordem determinada.

Acesso local e Amazon CloudWatch Carregar

Métricas para a instância atual da KPL estão disponíveis localmente em tempo real; é possível consultar a KPL a qualquer momento para obtê-las. A KPL calcula localmente a soma, a média, o mínimo, o máximo, e a contagem de cada métrica, como no CloudWatch.

Você pode obter estatísticas que são cumulativas desde o início do programa até o presente momento ou usar uma janela contínua ao longo dos últimos N segundos, em que N é um número inteiro entre 1 e 60.

Todas as métricas estão disponíveis para carregamento ao CloudWatch. Isso é especialmente útil para agregar dados em vários hosts, monitoramentos e alarmes. Essa funcionalidade não está disponível localmente.

Conforme descrito anteriormente, é possível selecionar de quais métricas fazer upload com as configurações de nível de métrica e granularidade. As métricas que não são carregadas estão disponíveis localmente.

Carregar pontos de dados individualmente é insustentável, porque isso pode produzir milhões de carregamentos por segundo se o tráfego for alto. Por esse motivo, a KPL agrega métricas localmente em buckets de 1 minuto e faz upload de um objeto de estatística para CloudWatch Uma vez por minuto, por métrica ativada.

Lista de métricas

Métrica Descrição
UserRecordsReceived

Contagem de quantos registros de usuário lógicos foram recebidos pelo núcleo KPL para operações put. Não disponível no nível de estilhaço.

Nível de métrica: Detalhado

Unidade: contagem

UserRecordsPending

Exemplo periódico de quantos registros de usuário estão pendentes atualmente. Um registro está pendente se está atualmente em buffer e esperando para ser enviado ou se foi enviado e está em trânsito para o serviço de back-end. Não disponível no nível de estilhaço.

A KPL oferece um método dedicado para recuperar essa métrica em nível global para os clientes gerenciarem a taxa de colocação.

Nível de métrica: Detalhado

Unidade: contagem

UserRecordsPut

Contagem de quantos registros de usuário lógicos foram colocados com êxito.

A KPL não conta registros com falhas para essa métrica. Isso permite que a média ofereça a taxa de sucesso, que a contagem ofereça o total de tentativas e que a diferença entre a contagem e a soma ofereça o número de falhas.

Nível de métrica: Resumo

Unidade: contagem

UserRecordsDataPut

Bytes nos registros de usuário lógicos colocados com êxito.

Nível de métrica: Detalhado

Unidade: Bytes

KinesisRecordsPut

Contagem de quantos registros do Kinesis Data Streams foram colocados com sucesso (cada registro do Kinesis Data Streams pode conter vários registros de usuário).

O KPL retorna zero para registros com falha. Isso permite que a média ofereça a taxa de sucesso, que a contagem ofereça o total de tentativas e que a diferença entre a contagem e a soma ofereça o número de falhas.

Nível de métrica: Resumo

Unidade: contagem

KinesisRecordsDataPut

Bytes nos registros do Kinesis Data Streams.

Nível de métrica: Detalhado

Unidade: Bytes

ErrorsByCode

Contagem de cada tipo de código de erro. Apresenta uma dimensão adicional de ErrorCode, além de dimensões normais, como StreamName e ShardId. Nem todo erro pode ser rastreado até um estilhaço. Os erros que não podem ser rastreados são apenas emitidos nos níveis globais ou de stream. Essa métrica captura informações sobre fatores como limitações, alterações no mapa de estilhaços, falhas internas, serviço indisponível, limites de tempo e assim por diante.

Os erros da API Kinesis Data Streams são contados uma vez por registro do Kinesis Data Streams. Vários registros de usuário em um registro do Kinesis Data Streams não geram várias contagens.

Nível de métrica: Resumo

Unidade: contagem

AllErrors

Isso é acionado pelos mesmos erros de Erros por código, mas não faz distinção entre tipos. Isso é útil como um monitor geral da taxa de erros sem exigir uma soma manual das contagens de todos os tipos diferentes de erros.

Nível de métrica: Resumo

Unidade: contagem

RetriesPerRecord

Número de tentativas realizadas por registro de usuário. Zero é emitido para registros que são bem-sucedidos em uma tentativa.

Os dados são emitidos no momento em que um usuário termina (quando o registro é bem-sucedido ou não pode mais ser repetido). Registro Se o time-to-live É um valor grande, essa métrica pode estar significativamente atrasada.

Nível de métrica: Detalhado

Unidade: contagem

BufferingTime

O tempo entre um registro de usuário que chega ao KPL e sai para o back-end. Essas informações são transmitidas de volta ao usuário por registro, mas também estão disponíveis como estatística agregada.

Nível de métrica: Resumo

Unidade: Milissegundos

Request Time

O tempo necessário para executar PutRecordsRequests.

Nível de métrica: Detalhado

Unidade: Milissegundos

User Records per Kinesis Record

O número de registros de usuário lógicos agregados em um único registro do Kinesis Data Streams.

Nível de métrica: Detalhado

Unidade: contagem

Amazon Kinesis Records per PutRecordsRequest

O número de registros do Kinesis Data Streams agregados em uma únicaPutRecordsRequest. Não disponível no nível de estilhaço.

Nível de métrica: Detalhado

Unidade: contagem

User Records per PutRecordsRequest

O número total de registros de usuário contidos em um PutRecordsRequest. Isso é equivalente aproximadamente ao produto das últimas duas métricas. Não disponível no nível de estilhaço.

Nível de métrica: Detalhado

Unidade: contagem