Todos os produtos
Search
Central de documentação

ApsaraMQ for Kafka:Por que há diferença entre o acúmulo de mensagens no alerta e no console?

Última atualização: Jun 27, 2026

Este tópico explica por que o valor de acúmulo de mensagens no alerta pode divergir do valor exibido no console.

Sintomas

Você pode observar uma discrepância entre o acúmulo de mensagens reportado pelo alerta e o valor apresentado no console.

Por exemplo, na aba Prometheus monitoring da página de detalhes do grupo de consumidores, o cartão Total Message Accumulation exibe o valor 36. No entanto, o gráfico de linhas de monitoramento Prometheus logo abaixo mostra que o acúmulo de mensagens atingiu um pico repentino de aproximadamente 300 em um momento específico e depois se estabilizou. Os dois valores diferem significativamente.

Causas possíveis

Causa 1

O acúmulo de mensagens de uma partição é calculado pela fórmula: partition maximum offset - partition consumer offset. O acúmulo total corresponde à soma do acúmulo de todas as partições.

Considere, por exemplo, uma instância com m grupos de consumidores e n tópicos, em que cada grupo assina todos os tópicos. É possível calcular o acúmulo de mensagens para um grupo de consumidores de duas formas:

  • Método de requisição padrão

    Esse método envia uma requisição RPC para obter os offsets de consumo do grupo de consumidores e outra para obter os offsets máximos das partições dos tópicos assinados. Essa abordagem gera pelo menos m * n * number of broker nodes requisições RPC, o que impacta significativamente a eficiência do monitoramento.

  • Método de requisição em lote

    Neste método, o sistema busca primeiro todos os offsets de consumo de todos os grupos de consumidores em um único lote. Em seguida, outra requisição em lote obtém os offsets máximos de todas as partições assinadas. Essa estratégia reduz o número de requisições RPC de m * n * number of broker nodes para apenas o número de nós broker. Contudo, devido à natureza do processamento em lote, ocorre um atraso entre a obtenção dos offsets de consumo e dos offsets máximos. Durante esse intervalo, o offset máximo de uma partição pode continuar aumentando conforme novas mensagens são produzidas. Essa diferença temporal resulta em um cálculo impreciso do acúmulo de mensagens.

O valor de Total Message Accumulation na página Group Details do console vem de requisições RPC separadas para recuperar o offset de consumo e o offset máximo da partição. Como o intervalo de tempo entre essas duas requisições RPC é pequeno, a discrepância em relação ao acúmulo real de mensagens também é mínima. Já o monitoramento utiliza requisições em lote para obter o acúmulo de mensagens. Esse método cria um descompasso temporal entre a recuperação do offset de consumo e a do offset máximo da partição, o que inevitavelmente causa uma discrepância no cálculo do acúmulo. Por esse motivo, o valor do alerta de acúmulo de mensagens pode não corresponder exatamente ao valor exibido no console.

Causa 2

Quando o consumo está lento e o uso do disco é alto, a instância pode excluir mensagens antes do consumo. Isso pode fazer com que o offset de consumo de uma partição fique menor que seu offset mínimo. O Apache Kafka open source e o Message Queue for Apache Kafka lidam com essa situação de maneiras diferentes:

  • Apache Kafka open source

    Por padrão, ignora esse acúmulo de mensagens ao calcular os totais.

  • Message Queue for Apache Kafka

    Para detectar offsets de consumo anormais nas partições mais rapidamente, a política de alerta de monitoramento os reporta como alertas de acúmulo de mensagens, permitindo que você tome as medidas necessárias.

Para facilitar a distinção entre partições anormais e normais no console, o Message Queue for Apache Kafka exclui o acúmulo de mensagens das partições anormais do valor de Total Message Accumulation na página Group Details. Consequentemente, o acúmulo de mensagens reportado pelo sistema de monitoramento é muito maior do que o acúmulo exibido no console. Isso gera a discrepância entre o alerta de acúmulo de mensagens e o valor mostrado no console.

Nota
  • Se decidir ignorar este alerta, redefina o offset de consumo para 0 no console. Após a redefinição do offset, o Message Queue for Apache Kafka deixa de acionar alertas de acúmulo de mensagens para o tópico correspondente naquele grupo de consumidores. Para mais informações, consulte redefinir offsets de consumo.

  • Caso precise desativar temporariamente esse recurso, envie um ticket.

Os exemplos a seguir ilustram esse comportamento:

  • O acúmulo total de mensagens do console não corresponde ao acúmulo total do alerta.

    Na página de detalhes do grupo de consumidores Kafka, selecione a aba Prometheus monitoring. O valor de Total Message Accumulation no topo exibe 13.568, enquanto o gráfico de linhas de Total Message Accumulation abaixo indica que o acúmulo permaneceu estável nos últimos 30 minutos.

  • O acúmulo total de mensagens do console exclui acúmulos anormais.

    Na página de detalhes do grupo de consumidores, o valor de Total Message Accumulation aparece em um cartão na parte superior. Na aba Consumption Status, uma tabela apresenta o acúmulo de cada tópico na coluna Accumulation.

  • Os detalhes de consumo de um tópico mostram partições com acúmulo anormal, nas quais o offset de consumo é menor que o offset mínimo.

    Por exemplo, a partição 0 tem um Consumer Offset igual a 1, mas seu Min Offset é 97.413.417.052. O campo Accumulation é exibido como -- e não entra no cálculo do total.