Com os recursos de armazenamento e visualização de métricas do Managed Service for Prometheus e do Managed Service for Grafana da Alibaba Cloud, o Message Queue for Apache RocketMQ 5.0 oferece o recurso de painel. Esse recurso permite coletar, observar e visualize métricas multidimensionais de forma centralizada para avaliar rapidamente o status operacional do seu negócio. Este tópico descreve os casos de uso, o contexto, os detalhes das métricas, o faturamento e os métodos de consulta do painel.
Casos de uso
Solucione problemas de exceções no consumo de mensagens online, receba alertas em tempo hábil e identifique rapidamente falhas quando as mensagens não forem processadas no tempo esperado.
Investigue a entrega de mensagens no pipeline ao encontrar problemas com pedidos online.
Analise tendências de tráfego de mensagens, padrões de distribuição ou o volume de mensagens para embasar a análise de tendências e o planejamento do negócio.
Visualize e analise a topologia de dependências upstream e downstream das suas aplicações para atualizar ou otimizar a arquitetura do sistema.
Contexto
No processo de envio e recebimento de mensagens do Alibaba Cloud Message Queue for Apache RocketMQ, o acúmulo na fila, o status de buffer e o tempo gasto em cada etapa do processamento de mensagens refletem diretamente o desempenho dos seus services e o status operacional do servidor. Portanto, as principais métricas do Alibaba Cloud Message Queue for Apache RocketMQ estão relacionadas, sobretudo, aos seguintes cenários de negócio.
Cenários de atraso do consumidor
A figura a seguir mostra o status das mensagens em uma fila específica de um tópico.

A figura anterior mostra o status das mensagens em uma fila de um tópico específico. O Message Queue for Apache RocketMQ coleta estatísticas sobre a quantidade de mensagens e o tempo gasto em diferentes etapas de processamento. Essas métricas refletem diretamente a taxa de processamento e o acúmulo de mensagens na fila. Ao observar essas métricas, é possível avaliar preliminarmente se o consumo do seu service está normal. As definições e fórmulas de cálculo específicas para essas métricas são as seguintes:
Categoria | Métrica | Descrição | Fórmula |
Métricas de contagem de mensagens | mensagens em trânsito | Mensagens em processamento por um cliente consumidor, mas ainda não confirmadas. | Offset da última mensagem puxada - Offset da última mensagem confirmada |
mensagens prontas | Mensagens prontas no broker do Message Queue for Apache RocketMQ 5.0, visíveis e disponíveis para consumo. Se a filtragem por tag estiver configurada para o grupo de consumidores, as mensagens prontas incluirão apenas aquelas que correspondem às condições do filtro. | Offset máximo de mensagem - Offset da última mensagem puxada | |
atraso do consumidor | O total de mensagens ainda não processadas completamente. | Número de mensagens em trânsito + Número de mensagens prontas | |
Métricas de latência de mensagens | Tempo de prontidão |
| N/D |
Tempo de fila de mensagem pronta | A diferença entre o horário atual e o tempo de prontidão da mensagem pronta mais antiga. Essa duração reflete a rapidez com que o consumidor puxa as mensagens. | Horário atual - Tempo de prontidão da mensagem pronta mais antiga | |
Tempo de atraso do consumidor | A diferença entre o horário atual e o tempo de prontidão da mensagem não confirmada mais antiga. Essa duração reflete a rapidez com que o consumidor processa as mensagens. | Horário atual - Tempo de prontidão da mensagem não confirmada mais antiga |
Quando o atraso do consumidor diminui continuamente e se aproxima de 0, e o tempo de atraso do consumidor também reduz continuamente e se aproxima de 0, a velocidade de consumo ultrapassou a de produção e o acúmulo está sendo eliminado. Quando ambas as métricas se aproximam de 0, o grupo de consumidores alcançou a velocidade de produção e o acúmulo voltou ao normal.
Cenários de consumidor push
Um consumidor push encapsula a lógica de busca de mensagens, threading e lógica de repetição. Registre um listener de mensagens durante a inicialização e o SDK gerencia o rest.

Para mais informações sobre os conceitos, consulte Push consumers.
Em um cenário de consumidor push, as seguintes métricas medem o status da fila de buffer local:
Número de mensagens na fila de buffer local: o total de mensagens na fila de buffer local.
Tamanho das mensagens na fila de buffer local: o tamanho total de todas as mensagens nessa fila.
Tempo de espera da mensagem: o tempo durante o qual as mensagens ficam armazenadas temporariamente na fila de buffer local.
Detalhes das métricas
O TPS de mensagens, a contagem de chamadas de API e a contagem de mensagens são baseados em uma mensagem normal de 4 KB. Para calcular o valor final, multiplique essa base por fatores correspondentes ao tamanho e ao tipo reais da mensagem. Para mais informações sobre as regras de cálculo, consulte How computing specifications work.
A tabela a seguir descreve os campos relacionados às métricas.
Campo | Valor |
Tipo de métrica |
|
Rótulo |
|
Métricas do broker
Tipo de métrica | Nome da métrica | Unidade | Descrição | Rótulos |
Gauge | rocketmq_instance_requests_max | contagem/s | O TPS máximo para envio e recebimento de mensagens na instância por minuto. Esta métrica exclui requisições limitadas. O sistema coleta uma amostra por segundo durante 1 minuto. O valor máximo entre as 60 amostras é utilizado. |
|
Gauge | rocketmq_instance_requests_in_max | contagem/s | O TPS máximo para envio de mensagens na instância por minuto. Esta métrica exclui requisições limitadas. O sistema coleta uma amostra por segundo durante 1 minuto. O valor máximo entre as 60 amostras é utilizado. |
|
Gauge | rocketmq_instance_requests_out_max | contagem/s | O TPS máximo para consumo de mensagens na instância por minuto. Esta métrica exclui requisições limitadas. O sistema coleta uma amostra por segundo durante 1 minuto. O valor máximo entre as 60 amostras é utilizado. |
|
Gauge | rocketmq_topic_requests_max | contagem/s | O TPS máximo para envio de mensagens para um tópico na instância por minuto. Esta métrica exclui requisições limitadas. O sistema coleta uma amostra por segundo durante 1 minuto. O valor máximo entre as 60 amostras é utilizado. |
|
Gauge | rocketmq_group_requests_max | contagem/s | O TPS máximo para consumo de mensagens em um grupo de consumidores dentro da instância por minuto. Esta métrica exclui requisições limitadas. O sistema coleta uma amostra por segundo durante 1 minuto. O valor máximo entre as 60 amostras é utilizado. |
|
Gauge | rocketmq_instance_requests_in_threshold | contagem/s | O limiar de limitação para envio de mensagens na instância. |
|
Gauge | rocketmq_instance_requests_out_threshold | contagem/s | O limiar de limitação para consumo de mensagens na instância. |
|
Gauge | rocketmq_throttled_requests_in | contagem | O número de requisições limitadas para envio de mensagens. |
|
Gauge | rocketmq_throttled_requests_out | contagem | O número de requisições limitadas para consumo de mensagens. |
|
Gauge | rocketmq_instance_elastic_requests_max | contagem/s | O TPS elástico máximo para envio e recebimento de mensagens na instância. |
|
Counter | rocketmq_requests_in_total | contagem | O número de chamadas de API relacionadas ao envio de mensagens. |
|
Counter | rocketmq_requests_out_total | contagem | O número de chamadas de API relacionadas ao consumo de mensagens. |
|
Counter | rocketmq_messages_in_total | mensagem | O número de mensagens enviadas dos produtores para o broker. |
|
Counter | rocketmq_messages_out_total | mensagem | O número de mensagens entregues do broker aos consumidores. Isso inclui mensagens em processamento, processadas com sucesso ou que falharam no processamento. |
|
Counter | rocketmq_throughput_in_total | byte | O throughput de mensagens dos produtores para o broker. |
|
Counter | rocketmq_throughput_out_total | byte | O throughput de mensagens do broker para os consumidores. A contagem inclui mensagens em processamento, processadas com sucesso ou que falharam no processamento. |
|
Counter | rocketmq_internet_throughput_out_total | byte | O tráfego de rede pública de saída consumido pelo envio e recebimento de mensagens. |
|
Histogram | rocketmq_message_size | byte | A distribuição de tamanhos de mensagens, registrada após o envio bem-sucedido. Os buckets de distribuição são:
|
|
Gauge | rocketmq_consumer_ready_messages | mensagem | Número de mensagens prontas. O número de mensagens prontas no broker e disponíveis para consumo. Esta métrica reflete o volume de mensagens que os consumidores ainda não puxaram. |
|
Gauge | rocketmq_consumer_inflight_messages | mensagem | O número de mensagens que os clientes consumidores estão processando, mas ainda não confirmaram. O total de mensagens que o cliente consumidor está processando, mas para as quais ainda não retornou um resultado de consumo. |
|
Gauge | rocketmq_consumer_queueing_latency | ms | Latência de fila das mensagens prontas. A diferença entre o horário atual e o tempo de prontidão da mensagem pronta mais antiga. Esta métrica indica a rapidez com que os consumidores puxam as mensagens. |
|
Gauge | rocketmq_consumer_lag_latency | ms | Latência de processamento de consumo. A diferença entre o horário atual e o tempo de prontidão da mensagem não consumida mais antiga. Esta métrica indica a rapidez com que os consumidores processam as mensagens. |
|
Counter | rocketmq_send_to_dlq_messages | mensagem | O número de mensagens enviadas para a fila de mensagens mortas (DLQ) por minuto. Uma mensagem é enviada para a DLQ se falhar no consumo mais vezes do que o máximo de tentativas de reentrega configurado. Dependendo da política de mensagens mortas configurada para o grupo de consumidores, essas mensagens não entregues são salvas em um tópico especificado ou descartadas. |
|
Gauge | rocketmq_storage_size | byte | A quantidade de espaço de armazenamento usada pela instância, incluindo o tamanho de todos os arquivos. |
|
Métricas do produtor
Tipo de métrica | Nome da métrica | Unidade | Descrição | Rótulos |
Histogram | rocketmq_send_cost_time | ms | A distribuição do tempo gasto em chamadas bem-sucedidas à API de envio de mensagens. Os buckets de distribuição são:
|
|
Métricas do consumidor
Tipo de métrica | Nome da métrica | Unidade | Descrição | Rótulo |
Histogram | rocketmq_process_time | ms | A distribuição do tempo gasto por um consumidor push para processar mensagens. Isso inclui tentativas de processamento bem-sucedidas e com falha.
Os intervalos de distribuição são:
|
|
Gauge | rocketmq_consumer_cached_messages | mensagem | O número de mensagens na fila de cache local de um consumidor push. |
|
Gauge | rocketmq_consumer_cached_bytes | byte | O tamanho total das mensagens na fila de cache local de um consumidor push. |
|
Histogram | rocketmq_await_time | ms | A distribuição do tempo que as mensagens aguardam na fila de cache local de um consumidor push.
Os intervalos de distribuição são:
|
|
Faturamento
As métricas do painel para o ApsaraMQ for RocketMQ são métricas básicas no Alibaba Cloud Managed Service for Prometheus. Não há cobrança para métricas básicas. Portanto, o recurso de painel também é gratuito.
Para mais informações, consulte Metrics e Pay-as-you-go.
Pré-requisitos
-
crie uma função vinculada ao service
Nome da função: AliyunServiceRoleForOns
Nome da política: AliyunServiceRolePolicyForOns
Permissões: permite que o Message Queue for Apache RocketMQ use essa função para acessar seus services, como o CloudMonitor e o Application Real-Time Monitoring Service (ARMS), a fim de ative os recursos de monitoramento, alerta e painel.
Para mais informações, consulte Service-linked roles.
visualize painéis
O ApsaraMQ for RocketMQ permite visualize painéis a partir das seguintes páginas:
Página Dashboard: visualize métricas de todos os tópicos e grupos em uma instância.
Página Instance Details: exibe uma visão geral do produtor, métricas de faturamento e métricas de limitação para uma instância específica.
Página Topic Details: exibe métricas de produção e métricas do cliente produtor para um tópico específico.
Página Group Details: exibe métricas de acúmulo de mensagens e métricas do cliente consumidor para um grupo específico.
acesse o console do ApsaraMQ for RocketMQ. No painel de navegação à esquerda, clique em Instances.
Na barra de navegação superior, selecione uma região, como China (Hangzhou). Na página Instances, clique em nome da instância que deseja gerencie.
-
Visualize o painel de uma das seguintes maneiras:
Página Instance Details: na página Instance Details, clique em aba Dashboard.
Página Dashboard: no painel de navegação à esquerda, clique em Overview.
Página Topic Details: no painel de navegação à esquerda, clique em Topics. Na lista de tópicos, clique em nome do tópico desejado. Em seguida, na página Topic Details, clique em aba Dashboard.
Página Group Details: no painel de navegação à esquerda, clique em Groups. Na lista de grupos, clique em nome do grupo desejado. Em seguida, na página Group Details, clique em aba Dashboard.
FAQ do Painel
Como obtenho os dados de métricas do painel?
Use sua conta principal para acessar o console do ARMS.
No painel de navegação à esquerda, clique em Integration Center.
Na página Integration Center, insira
RocketMQna caixa de pesquisa e clique em ícone de pesquisa.Nos resultados da pesquisa, selecione o service em cloud a ser integrado, como Alibaba Cloud RocketMQ (5.0) Service. Para mais informações, consulte Step 1: Integrate cloud service monitoring data.
Quando a integração for bem-sucedida, no painel de navegação à esquerda, clique em Integration Management.
Na página Integration Management, clique em aba Cloud Service Region Environment.
Na lista Cloud Service Region Environment, clique em nome do ambiente desejado e acesse a página de detalhes do ambiente do service em cloud.
Na aba Component Management, na seção Basic Information, clique em região do service em cloud após Prometheus Instance.
Na aba Settings, você pode obter diferentes métodos de acesso aos dados.
Como integro os dados de métricas do painel a uma instância do Grafana autogerenciada?
Todos os dados de métricas do ApsaraMQ for RocketMQ são salvos na sua instância do Managed Service for Prometheus. Siga as etapas em How do I get dashboard metric data? para integrar o service em cloud e obter o nome do ambiente e o endereço da API REST. Em seguida, use a API para integrar os dados de métricas do painel do ApsaraMQ for RocketMQ à sua instância do Grafana autogerenciada. Para mais informações, consulte Use an HTTP API address to connect Grafana or a self-managed application to Prometheus for data access.
O que significa o valor de TPS máximo para uma instância?
TPS máximo: o valor é calculado durante um período de 1 minuto, com uma amostra coletada por segundo. O resultado final é o valor máximo entre essas 60 amostras.
Por exemplo:
Suponha que uma instância produza 60 mensagens em 1 minuto (todas são mensagens normais e cada uma tem 4 KB de tamanho). A taxa de produção da instância é de 60 mensagens por minuto.
-
Se todas as 60 mensagens forem enviadas no primeiro segundo, os valores de TPS por segundo para a instância durante esse minuto serão 60, 0, 0, ..., 0.
TPS máximo da instância = 60 TPS.
-
Se 40 mensagens forem enviadas no primeiro segundo e 20 mensagens forem enviadas no segundo seguinte, os valores de TPS por segundo para a instância durante esse minuto serão 40, 20, 0, 0, ..., 0.
TPS máximo da instância = 40 TPS.
Por que a taxa de produção é muito maior que o atraso do consumidor?
A taxa de produção é calculada no nível do tópico e conta todas as mensagens, independentemente da tag. O atraso do consumidor é calculado no nível do grupo de consumidores e é afetado pela filtragem de tags: apenas as mensagens que correspondem às condições de filtro do grupo de consumidores são contadas. Se a maioria das mensagens em um tópico não corresponder às condições de filtro de tags do grupo de consumidores, o atraso do consumidor pode ser muito menor que a taxa de produção.
Por que a lista suspensa de tópicos no painel da página de detalhes do grupo mostra apenas alguns tópicos ou apenas None?
A lista suspensa de tópicos no painel da página Group Details mostra apenas os tópicos que enviaram mensagens recentemente. Se um tópico não enviou nenhuma mensagem recentemente, ele não aparece na lista, mesmo depois de criado. Para visualize as métricas de outro tópico assinado, insira manualmente o nome do tópico na lista suspensa e pressione insira.