Usando CloudWatch alarmes com o Amazon Managed Service para Apache Flink - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

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á.

Usando CloudWatch alarmes com o Amazon Managed Service para Apache Flink

Usando os alarmes CloudWatch métricos da Amazon, você assiste a uma CloudWatch métrica durante um período de tempo especificado por você. O alarme executa uma ou mais ações com base no valor da métrica ou na expressão em relação a um limite em alguns períodos. Um exemplo de uma ação é o envio de uma notificação para um tópico do Amazon Simple Notification Service (Amazon SNS).

Para obter mais informações sobre CloudWatch alarmes, consulte Usando CloudWatch alarmes da Amazon.

Esta seção contém os alarmes recomendados para monitorar o aplicativos Managed Service for Apache Flink.

A tabela descreve os alarmes recomendados e tem as seguintes colunas:

  • Expressão métrica: a métrica ou expressão métrica a ser testada em relação ao limite.

  • Estatística: a estatística usada para verificar a métrica, por exemplo, Average (Média).

  • Limite: o uso deste alarme exige que você determine o limite do desempenho esperado do aplicativo. Você precisa determinar esse limite monitorando seu aplicativo em condições normais.

  • Descrição: causas que podem acionar esse alarme e possíveis soluções para a situação.

Expressão da métrica Estatística Limite Descrição
downtime> 0 Média 0 Um tempo de inatividade maior que zero indica que o aplicativo falhou. Se o valor for maior que zero, o aplicativo não está processando nenhum dado. Recomendado para todas as aplicações. A Downtime métrica mede a duração de uma interrupção. Um tempo de inatividade maior que zero indica que o aplicativo falhou. Para solução de problemas, consulteO aplicativo está sendo reiniciado.
RATE (numberOfFailedCheckpoints)> 0 Média 0 Essa métrica conta o número de pontos de verificação com falha desde o início do aplicativo. Dependendo do aplicativo, pode ser tolerável que os pontos de verificação falhem de vez em quando. Mas, se os pontos de verificação falharem regularmente, é provável que o aplicativo não esteja íntegro e precise de mais atenção. Recomendamos monitorar RATE (numberOfFailedCheckpoints) para alertar sobre o gradiente e não sobre valores absolutos. Recomendado para todas as aplicações. Use essa métrica para monitorar a integridade do aplicativo e verificar o progresso. O aplicativo salva os dados do estado nos pontos de verificação quando estão íntegros. O ponto de verificação pode falhar devido a tempos limite se o aplicativo não estiver progredindo no processamento dos dados de entrada. Para solução de problemas, consulteO ponto de verificação está atingindo o tempo limite.
Operator.numRecordsOutPerSecond< limite Média O número mínimo de registros emitidos pelo aplicativo em condições normais. Recomendado para todas as aplicações. Ficar abaixo desse limite pode indicar que o aplicativo não está fazendo o progresso esperado nos dados de entrada. Para solução de problemas, consulteO throughput é muito lento.
records_lag_max|millisbehindLatest> limite Máximo A latência máxima esperada em condições normais. Se o aplicativo estiver consumindo do Kinesis ou do Kafka, essas métricas indicam se o aplicativo está ficando para trás e precisa ser escalado para acompanhar a carga atual. Essa é uma boa métrica genérica que é fácil de rastrear para todos os tipos de aplicativos. Mas, ele só pode ser usado para escalonamento reativo, ou seja, quando o aplicativo já ficou para trás. Recomendado para todas as aplicações. Use a records_lag_max métrica para uma fonte do Kafka ou millisbehindLatest para uma fonte de stream do Kinesis. Superar esse limite pode indicar que o aplicativo não está fazendo o progresso esperado nos dados de entrada. Para solução de problemas, consulteO throughput é muito lento.
lastCheckpointDuration> limite Máximo A duração máxima esperada do ponto de verificação em condições normais. Monitora a quantidade de dados armazenados no estado e quanto tempo leva para passar por um ponto de verificação. Se os pontos de verificação aumentarem ou demorarem muito, o aplicativo gastará tempo continuamente fazendo pontos de verificação e terá menos ciclos para o processamento real. Em alguns pontos, os pontos de verificação podem ficar muito grandes ou demorar tanto tempo que acabam falhando. Além de monitorar valores absolutos, os clientes também devem considerar monitorar a taxa de alteração com RATE(lastCheckpointSize) e RATE(lastCheckpointDuration). Se o lastCheckpointDuration aumento continuar, ultrapassar esse limite pode indicar que o aplicativo não está fazendo o progresso esperado nos dados de entrada ou que há problemas com a integridade do aplicativo, como contrapressão. Para solução de problemas, consulteCrescimento estadual ilimitado.
lastCheckpointSize> limite Máximo O tamanho máximo esperado do ponto de verificação em condições normais. Monitora a quantidade de dados armazenados no estado e quanto tempo leva para passar por um ponto de verificação. Se os pontos de verificação aumentarem ou demorarem muito, o aplicativo gastará tempo continuamente fazendo pontos de verificação e terá menos ciclos para o processamento real. Em alguns pontos, os pontos de verificação podem ficar muito grandes ou demorar tanto tempo que acabam falhando. Além de monitorar valores absolutos, os clientes também devem considerar monitorar a taxa de alteração com RATE(lastCheckpointSize) e RATE(lastCheckpointDuration). Se o lastCheckpointSize aumento continuar, ultrapassar esse limite pode indicar que o aplicativo está acumulando dados de estado. Se os dados de estado ficarem muito grandes, o aplicativo poderá ficar sem memória ao se recuperar de um ponto de verificação, ou a recuperação de um ponto de verificação poderá levar muito tempo. Para solução de problemas, consulteCrescimento estadual ilimitado.
heapMemoryUtilization> limite Máximo Isso fornece uma boa indicação da utilização geral dos recursos do aplicativo e pode ser usado para escalabilidade proativa, a menos que o aplicativo esteja vinculado à E/S. O heapMemoryUtilization tamanho máximo esperado em condições normais, com um valor recomendado de 90 por cento. Você pode usar essa métrica para monitorar a utilização máxima da memória dos gerenciadores de tarefas em todo o aplicativo. Se o aplicativo atingir esse limite, você precisará provisionar mais recursos. Você faz isso ativando o escalonamento automático ou aumentando o paralelismo do aplicativo. Para obter mais informações sobre o aumento de recursos, consulteEscalabilidade.
cpuUtilization> limite Máximo Isso fornece uma boa indicação da utilização geral dos recursos do aplicativo e pode ser usado para escalabilidade proativa, a menos que o aplicativo esteja vinculado à E/S. O cpuUtilization tamanho máximo esperado em condições normais, com um valor recomendado de 80%. Você pode usar essa métrica para monitorar a utilização máxima da CPU dos gerenciadores de tarefas em todo o aplicativo. Se o aplicativo atingir esse limite, você precisará provisionar mais recursos. Faça isso ativando o escalonamento automático ou aumentando o paralelismo do aplicativo. Para obter mais informações sobre o aumento de recursos, consulteEscalabilidade.
threadsCount> limite Máximo O threadsCount tamanho máximo esperado em condições normais. Você pode usar essa métrica para observar vazamentos de tópicos nos gerenciadores de tarefas em todo o aplicativo. Se essa métrica atingir esse limite, verifique se há threads criados sem serem fechados no código do aplicativo.
(oldGarbageCollectionTime * 100)/60_000 over 1 min period')> limite Máximo A oldGarbageCollectionTime duração máxima esperada. Recomendamos definir um limite de forma que o tempo normal de coleta de lixo seja 60% do limite especificado, mas o limite correto para seu aplicativo variará. Se essa métrica estiver aumentando continuamente, isso pode indicar que há um vazamento de memória nos gerenciadores de tarefas em todo o aplicativo.
RATE(oldGarbageCollectionCount) > limite Máximo O máximo esperado oldGarbageCollectionCount em condições normais. O limite correto para sua inscrição variará. Se essa métrica estiver aumentando continuamente, isso pode indicar que há um vazamento de memória nos gerenciadores de tarefas em todo o aplicativo.
Operator.currentOutputWatermark - Operator.currentInputWatermark > limite Mínimo O incremento mínimo esperado da marca d'água em condições normais. O limite correto para sua inscrição variará. Se essa métrica estiver aumentando continuamente, isso pode indicar que o aplicativo está processando eventos cada vez mais antigos ou que uma subtarefa inicial não envia uma marca d'água há um tempo cada vez mais longo.