Visualizando métricas e dimensões no 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á.

Visualizando métricas e dimensões no Managed Service para Apache Flink

Quando seu serviço gerenciado para Apache Flink processa uma fonte de dados, o serviço gerenciado para Apache Flink reporta as seguintes métricas e dimensões para a Amazon. CloudWatch

Métricas da aplicação

Métrica Unidade Descrição Nível Observações sobre o uso
backPressuredTimeMsPerSecond* Milissegundos O tempo (em milissegundos) em que essa tarefa ou operador é contrapressionado por segundo. Tarefa, operador, paralelismo

*Disponível para aplicativos Managed Service para Apache Flink executando somente a versão 1.13 do Flink.

Essas métricas podem ser úteis para identificar gargalos em um aplicativo.

busyTimeMsPerSecond* Milissegundos O tempo (em milissegundos) em que essa tarefa ou operador está ocupado (sem inatividade ou contrapressão) por segundo. Pode ser NaN, se o valor não puder ser calculado. Tarefa, operador, paralelismo

*Disponível para aplicativos Managed Service para Apache Flink executando somente a versão 1.13 do Flink.

Essas métricas podem ser úteis para identificar gargalos em um aplicativo.

cpuUtilization Porcentagem Porcentagem geral de utilização da CPU nos gerenciadores de tarefas. Por exemplo, se houver cinco gerenciadores de tarefas, o Managed Service for Apache Flink publica cinco amostras dessa métrica por intervalo de geração de relatórios. Aplicativo Você pode usar essa métrica para monitorar a utilização mínima, média e máxima da CPU em seu aplicativo. A CPUUtilization métrica considera apenas o uso da CPU do processo TaskManager JVM executado dentro do contêiner.
containerCPUUtilization Porcentagem Porcentagem geral de utilização da CPU em contêineres do gerenciador de tarefas no cluster de aplicativos do Flink. Por exemplo, se houver cinco gerenciadores de tarefas, correspondentemente, há cinco TaskManager contêineres e o Managed Service for Apache Flink publica 2 x cinco amostras dessa métrica por intervalo de relatório de 1 minuto. Aplicativo

É calculado por contêiner como:

Tempo total da CPU (em segundos) consumido pelo contêiner × 100 / Limite da CPU para o contêiner (em CPUs/segundos)

A CPUUtilization métrica considera apenas o uso da CPU do processo TaskManager JVM executado dentro do contêiner. Há outros componentes em execução fora da JVM dentro do mesmo contêiner. A métrica containerCPUUtilization fornece uma visão mais completa, incluindo todos os processos, em termos de esgotamento da CPU no contêiner e falhas resultantes disso.

containerMemoryUtilization Porcentagem Porcentagem geral de utilização da memória nos contêineres do gerenciador de tarefas no cluster de aplicativos do Flink. Por exemplo, se houver cinco gerenciadores de tarefas, correspondentemente, há cinco TaskManager contêineres e o Managed Service for Apache Flink publica 2 x cinco amostras dessa métrica por intervalo de relatório de 1 minuto. Aplicativo

É calculado por contêiner como:

Uso de memória do contêiner (bytes) × 100 / Limite de memória do contêiner de acordo com a especificação de implantação do pod (em bytes)

As ManagedMemoryUtilzations métricas HeapMemoryUtilization e consideram apenas métricas de memória específicas, como uso de memória em pilha da TaskManager JVM ou memória gerenciada (uso de memória fora da JVM para processos nativos, como o RocksDB State Backend). A métrica containerMemoryUtilization fornece uma visão mais completa ao incluir a memória do conjunto de trabalho, que é um rastreador melhor do esgotamento total da memória. Após sua exaustão, isso resultará na Out of Memory Error cápsula. TaskManager

containerDiskUtilization Porcentagem Porcentagem geral de utilização do disco nos contêineres do gerenciador de tarefas no cluster de aplicativos do Flink. Por exemplo, se houver cinco gerenciadores de tarefas, correspondentemente, há cinco TaskManager contêineres e o Managed Service for Apache Flink publica 2 x cinco amostras dessa métrica por intervalo de relatório de 1 minuto. Aplicativo

É calculado por contêiner como:

Uso do disco em bytes × 100 / Limite do disco por contêiner em bytes

Para contêineres, ele representa a utilização do sistema de arquivos no qual o volume raiz do contêiner está configurado.

currentInputWatermark Milissegundos A última marca d’água que este aplicativo/operador/tarefa/thread recebeu Aplicativo, operador, tarefa, paralelismo Esse registro só é emitido para dimensões com duas entradas. Esse é o valor mínimo das últimas marcas d’água recebidas.
currentOutputWatermark Milissegundos A última marca d’água que este aplicativo/operador/tarefa/thread emitiu Aplicativo, operador, tarefa, paralelismo
downtime Milissegundos Para trabalhos que, atualmente, estão em situação de falha/recuperação, o tempo acabou durante essa interrupção. Aplicativo Essa métrica mede o tempo transcorrido enquanto um trabalho está falhando ou se recuperando. Essa métrica retorna 0 para trabalhos em execução e –1 para trabalhos concluídos. Se essa métrica não for 0 ou –1, isso indica que a tarefa do Apache Flink para o aplicativo falhou na execução.
fullRestarts Contagem O número total de vezes em que esse trabalho foi totalmente reiniciado desde que foi enviado. Essa métrica não mede reinicializações refinadas. Aplicativo Você pode usar essa métrica para avaliar a integridade geral do aplicativo. As reinicializações podem ocorrer durante a manutenção interna do Managed Service for Apache Flink. Reinicializações acima do normal podem indicar um problema com o aplicativo.
heapMemoryUtilization Porcentagem Utilização geral da memória heap em todos os gerenciadores de tarefas. Por exemplo, se houver cinco gerenciadores de tarefas, o Managed Service for Apache Flink publica cinco amostras dessa métrica por intervalo de geração de relatórios. Aplicativo Você pode usar essa métrica para monitorar a utilização mínima, média e máxima da memória heap em seu aplicativo. A HeapMemoryUtilization única conta para métricas de memória específicas, como o uso de memória em pilha da TaskManager JVM.
idleTimeMsPerSecond* Milissegundos O tempo (em milissegundos) em que essa tarefa ou operador fica inativo (não tem dados para processar) por segundo. O tempo sem atividade exclui o tempo de contrapressão, portanto, se a tarefa for contrapressionada, ela não estará sem atividade. Tarefa, operador, paralelismo

*Disponível para aplicativos Managed Service para Apache Flink executando somente a versão 1.13 do Flink.

Essas métricas podem ser úteis para identificar gargalos em um aplicativo.

lastCheckpointSize Bytes O tamanho total do último ponto de verificação Aplicativo Você pode usar essa métrica para determinar a utilização do armazenamento de aplicativos em execução.

Se o valor dessa métrica estiver aumentando, isso pode indicar que há um problema com seu aplicativo, como um vazamento de memória ou gargalo.

lastCheckpointDuration Milissegundos O tempo necessário para concluir o último ponto de verificação Aplicativo Essa métrica mede o tempo necessário para concluir o ponto de verificação mais recente. Se o valor dessa métrica estiver aumentando, isso pode indicar que há um problema com seu aplicativo, como um vazamento de memória ou gargalo. Em alguns casos, você pode solucionar esse problema desativando o ponto de verificação.
managedMemoryUsed* Bytes A quantidade de memória gerenciada usada no momento. Aplicativo, operador, tarefa, paralelismo

*Disponível para aplicativos Managed Service para Apache Flink executando somente a versão 1.13 do Flink.

Isso está relacionado à memória gerenciada pelo Flink fora da heap do Java. Ele é usado para o RocksDB State Backend e também está disponível para aplicativos.

managedMemoryTotal* Bytes A quantidade total de memória gerenciada. Aplicativo, operador, tarefa, paralelismo

*Disponível para aplicativos Managed Service para Apache Flink executando somente a versão 1.13 do Flink.

Isso está relacionado à memória gerenciada pelo Flink fora da heap do Java. Ele é usado para o RocksDB State Backend e também está disponível para aplicativos. A métrica ManagedMemoryUtilzations só considera métricas de memória específicas, como a memória gerenciada (uso de memória fora da JVM para processos nativos, como o RocksDB State Backend)

managedMemoryUtilization* Porcentagem Derivado por managedMemoryUsed/managedMemoryTotal Aplicativo, operador, tarefa, paralelismo

*Disponível para aplicativos Managed Service para Apache Flink executando somente a versão 1.13 do Flink.

Isso está relacionado à memória gerenciada pelo Flink fora da heap do Java. Ele é usado para o RocksDB State Backend e também está disponível para aplicativos.

numberOfFailedCheckpoints Contagem O número de vezes que o ponto de verificação falhou. Aplicativo Você pode usar essa métrica para monitorar a integridade e o progresso do aplicativo. Os pontos de verificação podem falhar devido a problemas do aplicativo, como problemas de throughput ou permissões.
numRecordsIn* Contagem O número total de registros que esse aplicativo, operador ou tarefa recebeu. Aplicativo, operador, tarefa, paralelismo

*Para aplicar a estatística SUM por um período de tempo (segundo/minuto):

  • Selecione a métrica no nível correto. Se você estiver monitorando a métrica de um operador, precisará selecionar as métricas correspondentes do operador.

  • Como o Managed Service para Apache Flink faz quatro snapshots por minuto, a seguinte matemática métrica deve ser usada: m1/4, onde m1 é a estatística SUM durante um período (segundo/minuto)

O nível da métrica especifica se essa métrica mede o número total de registros que o aplicativo todo, um operador específico ou uma tarefa específica recebeu.

numRecordsInPerSecond* Contagem/segundo O número total de registros que esse aplicativo, operador ou tarefa recebeu por segundo. Aplicativo, operador, tarefa, paralelismo

*Para aplicar a estatística SUM por um período de tempo (segundo/minuto):

  • Selecione a métrica no nível correto. Se você estiver monitorando a métrica de um operador, precisará selecionar as métricas correspondentes do operador.

  • Como o Managed Service para Apache Flink faz quatro snapshots por minuto, a seguinte matemática métrica deve ser usada: m1/4, onde m1 é a estatística SUM durante um período (segundo/minuto)

O nível da métrica especifica se essa métrica mede o número total de registros que o aplicativo todo, um operador específico ou uma tarefa específica recebeu por segundo.

numRecordsOut* Contagem O número total de registros que esse aplicativo, operador ou tarefa emitiu. Aplicativo, operador, tarefa, paralelismo

*Para aplicar a estatística SUM por um período de tempo (segundo/minuto):

  • Selecione a métrica no nível correto. Se você estiver monitorando a métrica de um operador, precisará selecionar as métricas correspondentes do operador.

  • Como o Managed Service para Apache Flink faz quatro snapshots por minuto, a seguinte matemática métrica deve ser usada: m1/4, onde m1 é a estatística SUM durante um período (segundo/minuto)

O nível da métrica especifica se essa métrica mede o número total de registros que o aplicativo todo, um operador específico ou uma tarefa específica emitiu.

numLateRecordsDropped* Contagem Aplicativo, operador, tarefa, paralelismo

*Para aplicar a estatística SUM por um período de tempo (segundo/minuto):

  • Selecione a métrica no nível correto. Se você estiver monitorando a métrica de um operador, precisará selecionar as métricas correspondentes do operador.

  • Como o Managed Service para Apache Flink faz quatro snapshots por minuto, a seguinte matemática métrica deve ser usada: m1/4, onde m1 é a estatística SUM durante um período (segundo/minuto)

O número de registros que esse operador ou tarefa reduziu devido ao atraso na chegada.

numRecordsOutPerSecond* Contagem/segundo O número total de registros que esse aplicativo, operador ou tarefa emitiu por segundo. Aplicativo, operador, tarefa, paralelismo

*Para aplicar a estatística SUM por um período de tempo (segundo/minuto):

  • Selecione a métrica no nível correto. Se você estiver monitorando a métrica de um operador, precisará selecionar as métricas correspondentes do operador.

  • Como o Managed Service para Apache Flink faz quatro snapshots por minuto, a seguinte matemática métrica deve ser usada: m1/4, onde m1 é a estatística SUM durante um período (segundo/minuto)

O nível da métrica especifica se essa métrica mede o número total de registros que o aplicativo todo, um operador específico ou uma tarefa específica emitiu por segundo.

oldGenerationGCCount Contagem O número total de operações antigas de coleta de resíduos que ocorreram em todos os gerenciadores de tarefas. Aplicativo
oldGenerationGCTime Milissegundos O tempo total gasto executando operações antigas de coleta de resíduos. Aplicativo Você pode usar essa métrica para monitorar a soma, a média e o tempo máximo de coleta de resíduos.
threadCount Contagem O número total de threads ativos usados pelo aplicativo. Aplicativo Essa métrica mede o número de segmentos usados pelo código do aplicativo. Isso não é o mesmo que paralelismo de aplicativos.
uptime Milissegundos O tempo no qual o trabalho foi executado sem interrupções. Aplicativo Você pode usar essa métrica para determinar se um trabalho está sendo executado com êxito. Essa métrica retorna –1 para trabalhos concluídos.
KPUs* Contagem O número total de KPUs usados pelo aplicativo. Aplicativo

*Essa métrica recebe uma amostra por período de cobrança (uma hora). Para visualizar o número de KPUs ao longo do tempo, use MAX ou AVG por um período de pelo menos uma (1) hora.

A contagem de KPU inclui a orchestration KPU. Para obter mais informações, consulte Preços do Managed Service for Apache Flink.

Métricas do conector Kinesis Data Streams

AWS emite todos os registros do Kinesis Data Streams, além dos seguintes:

Métrica Unidade Descrição Nível Observações sobre o uso
millisbehindLatest Milissegundos O número de milissegundos em que o consumidor está atrás do início do fluxo de dados, indicando o quão atrasado o consumidor está em relação ao horário atual. Aplicação (para Stream), Paralelismo (para) ShardId
  • Um valor zero indica que o processamento de registros foi alcançado e não há nenhum registro novo para processar no momento. A métrica de um fragmento específico pode ser especificada pelo nome do fluxo e pelo ID do fragmento.

  • Um valor de –1 indica que o serviço ainda não relatou um valor para a métrica.

bytesRequestedPerFetch Bytes Os bytes solicitados em uma única chamada para getRecords. Aplicação (para Stream), Paralelismo (para) ShardId

Métricas do conector Amazon MSK

AWS emite todos os registros do Amazon MSK, além dos seguintes:

Métrica Unidade Descrição Nível Observações sobre o uso
currentoffsets N/D O deslocamento de leitura atual do consumidor, para cada partição. A métrica de uma partição específica pode ser especificada pelo nome do tópico e pela ID da partição. Aplicação (para tópico), paralelismo (para) PartitionId
commitsFailed N/D O número total de falhas de confirmação de deslocamentos para o Kafka, se o deslocamento e o ponto de verificação estiverem habilitados. Aplicativo, operador, tarefa, paralelismo Enviar os deslocamentos de volta ao Kafka é apenas um meio de expor o progresso do consumidor, portanto, uma falha de confirmação não afeta a integridade dos deslocamentos de partição do ponto de verificação do Flink.
commitsSucceeded N/D O número total de confirmações de deslocamentos bem-sucedidas para o Kafka, se a confirmação do deslocamento e o ponto de verificação estiverem habilitados. Aplicativo, operador, tarefa, paralelismo
committedoffsets N/D Os últimos deslocamentos confirmados com sucesso para o Kafka, para cada partição. A métrica de uma partição específica pode ser especificada pelo nome do tópico e pela ID da partição. Aplicação (para tópico), paralelismo (para) PartitionId
records_lag_max Contagem O atraso máximo em termos de número de registros para qualquer partição nesta janela Aplicativo, operador, tarefa, paralelismo
bytes_consumed_rate Bytes O número médio de bytes consumidos por segundo para um tópico Aplicativo, operador, tarefa, paralelismo

Métricas do Apache Zeppelin

Para notebooks Studio, AWS emite as seguintes métricas no nível do aplicativo:KPUs,cpuUtilization,heapMemoryUtilization, oldGenerationGCTimeoldGenerationGCCount, e. threadCount Além disso, ela emite as métricas mostradas na tabela a seguir, também no nível do aplicativo.

Métrica Unidade Descrição Nome no Prometheus
zeppelinCpuUtilization Porcentagem Porcentagem geral de utilização da CPU no servidor Apache Zeppelin. process_cpu_usage
zeppelinHeapMemoryUtilization Porcentagem Porcentagem geral de utilização da memória heap para o servidor Apache Zeppelin. jvm_memory_used_bytes
zeppelinThreadCount Contagem O número total de threads ativos usados pelo servidor Apache Zeppelin. jvm_threads_live_threads
zeppelinWaitingJobs Contagem O número de trabalhos enfileirados do Apache Zeppelin esperando por um thread. jetty_threads_jobs
zeppelinServerUptime Segundos O tempo total em que o servidor esteve ativo e funcionando. process_uptime_seconds

Visualizando CloudWatch métricas

Você pode visualizar CloudWatch as métricas do seu aplicativo usando o CloudWatch console da Amazon ou AWS CLI o.

Para visualizar métricas usando o CloudWatch console
  1. Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, selecione Métricas.

  3. No painel CloudWatch Métricas por categoria do Managed Service for Apache Flink, escolha uma categoria de métricas.

  4. No painel superior, role para visualizar a lista completa de métricas.

Para visualizar métricas usando o AWS CLI
  • Em um prompt de comando, use o seguinte comando.

    aws cloudwatch list-metrics --namespace "AWS/KinesisAnalytics" --region region

Definindo níveis de relatórios de CloudWatch métricas

Você pode controlar o nível das métricas do aplicativo que seu aplicativo cria. O Managed Service for Apache Flink oferece suporte para os seguintes níveis de métricas:

  • Aplicativo: o aplicativo relata apenas o nível mais alto de métricas para cada aplicativo. Por padrão, as métricas do Managed Service for Apache Flink são publicadas no nível do aplicativo.

  • Tarefa: o aplicativo relata dimensões métricas específicas da tarefa para métricas definidas com o nível de relatório métrico da tarefa, como o número de registros de entrada e saída do aplicativo por segundo.

  • Operador: o aplicativo relata dimensões métricas específicas do operador para métricas definidas com o nível de relatório métrico do operador, como métricas para cada operação de filtro ou mapa.

  • Paralelismo: o aplicativo relata Task e Operator métricas de nível para cada thread de execução. O nível de relatório não é recomendado para aplicativos com uma configuração de paralelismo acima de 64 devido aos custos excessivos.

    nota

    Você só deve usar esse nível métrico para solucionar problemas devido à quantidade de dados métricos que o serviço gera. Você só pode definir esse nível métrico usando a CLI. Esse nível métrico não está disponível no console.

O nível padrão é Aplicativo. O aplicativo relata métricas no nível atual e em todos os níveis superiores. Por exemplo, se o nível de relatório estiver definido como Operator, o aplicativo reportará as métricas de Aplicativo, Tarefa e Operador.

Você define o nível do relatório de CloudWatch métricas usando o MonitoringConfiguration parâmetro da CreateApplicationação ou o MonitoringConfigurationUpdate parâmetro da UpdateApplicationação. O exemplo a seguir de solicitação para a UpdateApplicationação define o nível de relatório de CloudWatch métricas como Tarefa:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "MetricsLevelUpdate": "TASK" } } } }

Você também pode configurar o nível de registro em log usando o parâmetro LogLevel da ação CreateApplication ou o parâmetro LogLevelUpdate da ação UpdateApplication. Você pode usar os seguintes níveis de log:

  • ERROR: registra eventos de erro potencialmente recuperáveis.

  • WARN: registra eventos de alerta que podem levar a um erro.

  • INFO: registra eventos informativos.

  • DEBUG: registra eventos gerais de depuração.

Para obter mais informações sobre os níveis de registro em log do Log4j, consulte Níveis de registro personalizados na documentação do Apache Log4j.