O rastro de mensagem registra todo o caminho percorrido no ApsaraMQ for RocketMQ, abrangendo envio, armazenamento e consumo. Cada etapa captura tempo, status e detalhes do cliente. O recurso de rastro de mensagens aplica-se a todos os tipos de mensagem.
Use os rastros de mensagens para:
Verificar se uma mensagem foi enviada e consumida com sucesso.
Identificar onde uma mensagem parou ou falhou.
Localizar o cliente consumidor específico e o timestamp de uma mensagem consumida.
Como funcionam os rastros de mensagens
Um rastro completo de mensagem captura dados em três etapas:
|
Producer |
Broker |
Consumer |
|
Endereço IP do cliente |
Hora de chegada ao servidor |
Endereço IP do cliente |
|
Timestamp de envio |
Hora programada para entrega |
Hora de chegada ao consumidor |
|
Duração do envio (RT) |
Hora real da entrega |
Tempo de espera antes do processamento |
|
Status de envio |
Tipo de mensagem |
Horário de início/término do processamento |
|
AccessKey ID |
Hora de commit/rollback da transação |
Duração do processamento |
|
Resultado da entrega |
||
|
AccessKey ID |

Antes de começar
Requisitos de versão do SDK
O rastreamento de mensagens exige uma versão mínima do SDK.
|
Protocolo |
Linguagem |
Versão mínima |
Notas de versão |
|
TCP |
Java |
V1.2.7.Final |
|
|
TCP |
C/C++ |
V1.1.2 |
|
|
TCP |
.NET |
V1.1.2 |
|
|
HTTP |
Node.js |
V1.0.2 |
|
|
HTTP |
Outras |
V1.0.1 |
Pré-requisitos do recurso de rastro aprimorado
O recurso de rastro aprimorado expõe parâmetros adicionais no console e permite visualizar dados de rastro gerados durante o consumo de mensagens, além de dados de mensagens agendadas, atrasadas e transacionais:
Producer: AccessKey
MQ Server: Arrive at Server At, Scheduled to Be Delivered At, Delivered At, Committed/Rolled back At
Consumer: Arrive at Consumer At, Wait Duration before Processing
Para usar o recurso de rastro aprimorado:
TCP SDK for Java: Atualize para a versão V2.x.x.Final. A instância deve estar implantada em uma das seguintes regiões: China (Hangzhou), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Shenzhen), China (Chengdu), Alemanha (Frankfurt) ou Indonésia (Jakarta).
TCP SDK for C++: Atualize para a versão V3.x.x. Disponível em todas as regiões.
Limite de intervalo de tempo
As consultas de rastro abrangem uma janela móvel de 24 horas. Apenas rastros de mensagens produzidas nas últimas 24 horas estão disponíveis. Por exemplo, às 15:09:48 de 30 de novembro de 2023, o intervalo de consulta vai de 15:09:48 de 29 de novembro de 2023 até 15:09:48 de 30 de novembro de 2023.
Como o status de consumo afeta os resultados da consulta
|
Tipo de mensagem |
Comportamento |
|
Exibe Not Consumed até que a mensagem seja consumida. Após o consumo, aparecem tanto os detalhes de envio quanto os de consumo. |
|
|
Igual às mensagens normais. |
|
|
Antes do horário programado para entrega, o rastro é consultável, mas a mensagem não pode ser consultada. |
|
|
Antes que a transação local seja confirmada (committed), o rastro é consultável, mas a mensagem não pode ser consultada. |
Consultar um rastro de mensagem no console
Faça login no 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). Clique no nome da sua instância.
No painel de navegação à esquerda, clique em Message Trace. No canto superior esquerdo da página, clique em Create Query Task.
-
No painel Create Message Trace Query Task, selecione um método de consulta e configure as condições de busca. Em seguida, clique em OK.
ImportanteDefina o intervalo de tempo com a maior precisão possível para restringir o escopo e acelerar a consulta.
Três métodos de consulta estão disponíveis:
Método
Tipo de correspondência
Mais indicado para
Query by Message ID
Correspondência exata
Buscas rápidas e precisas. Recomendado.
Query by Message Key
Correspondência aproximada (até 1.000 resultados)
Quando o ID da mensagem não está disponível, mas uma chave exclusiva foi definida na mensagem.
Query by Topic
Consulta por intervalo
Tópicos de baixo volume onde nem o ID nem a chave da mensagem estão disponíveis. Não recomendado para tópicos de alto throughput — os resultados são difíceis de filtrar.
A tarefa de consulta aparece na página Message Trace. Se a coluna Status mostrar Querying, clique no botão
no canto superior direito da lista de tarefas para atualizar até que o status mude para Query Completed. Clique em Query Results na coluna Actions para visualizar os detalhes do rastro.
Solucionar problemas de mensagem ausente

Se uma mensagem não foi recebida conforme esperado, siga estas etapas:
Reúna o ID da mensagem, a chave da mensagem, o tópico e o horário aproximado de envio.
Faça login no console do ApsaraMQ for RocketMQ e crie uma tarefa de consulta com as informações coletadas.
-
Analise os resultados da consulta:
Not Consumed aparece no rastro: Acesse a página Groups para verificar se o acúmulo de mensagens causou o problema. Para mais informações, consulte Visualizar detalhes do consumidor.
A mensagem foi consumida: Verifique os detalhes de consumo para identificar o cliente consumidor e o timestamp de consumo. Em seguida, revise os logs nesse cliente.
Referência de parâmetros de rastro
Na página de resultados do rastro, as colunas Sending Status e Consumption Status fornecem um resumo. Clique em uma mensagem específica para visualizar o rastro completo, organizado nas seções Producer, MQ Server e Consumer.
Informações básicas
|
Parâmetro |
Descrição |
|
Message ID |
Identificador globalmente exclusivo, gerado automaticamente pelo ApsaraMQ for RocketMQ. |
|
Topic |
O tópico ao qual a mensagem pertence. |
|
Message Key |
Identificador de negócio definido pelo produtor. Identifica exclusivamente uma lógica de negócio. |
|
Message Tag |
Tag usada para classificar mensagens dentro de um tópico. |
Producer
|
Parâmetro |
Descrição |
|
AccessKey |
AccessKey ID da conta Alibaba Cloud ou do usuário do Resource Access Management (RAM) que enviou a mensagem. |
|
Client IP Address |
Endereço IP do cliente produtor. |
|
Message Produced At |
Timestamp em que a mensagem foi enviada pelo produtor. |
|
Sending RT |
Tempo gasto para enviar a mensagem, em milissegundos. |
|
Sending Status |
Status da operação de envio. Consulte Status da mensagem. |
MQ Server
|
Parâmetro |
Descrição |
|
Message Type |
Mensagens normais, mensagens agendadas e atrasadas, mensagens ordenadas ou mensagens transacionais. Tanto mensagens agendadas quanto atrasadas aparecem como Scheduled Message. |
|
Arrive at Server At |
Hora em que a mensagem chegou ao broker do ApsaraMQ for RocketMQ. |
|
Scheduled to Be Delivered At |
Horário programado para entrega de mensagens agendadas. |
|
Delivered At |
Hora em que a mensagem ficou disponível para entrega ao consumidor. |
|
Committed/Rolled back At |
Hora em que uma transação foi confirmada (committed) ou revertida (rolled back). |
Consumer
|
Parâmetro |
Descrição |
|
AccessKey |
AccessKey ID da conta Alibaba Cloud ou do usuário RAM no lado do consumidor. |
|
Arrive at Consumer At |
Hora em que a mensagem chegou ao cliente consumidor. |
|
Wait Duration before Processing |
Duração entre a chegada da mensagem ao consumidor e o início do processamento. |
|
Delivery Result |
Resultado de uma única tentativa de entrega. Uma mensagem pode ser entregue várias vezes antes do consumo bem-sucedido. Consulte Status da mensagem. |
|
Client IP Address |
Endereço IP do cliente consumidor. |
|
Message Processing Started At |
Timestamp em que o consumidor iniciou o processamento da mensagem. |
|
Message Processing Complete At |
Timestamp em que o consumidor terminou o processamento. |
|
Message Processing Duration |
Tempo que o consumidor gastou processando a mensagem. |
Valores de status da mensagem
|
Tipo |
Valores possíveis |
|
Sending Status |
Sent, Failed, Scheduling, Transactional Message Not Committed, Transactional Message Rolled Back |
|
Consumption Status |
All Successful, Partially Successful, All Failed, Not Consumed, No Consumption Result Returned, Consumed, Failed |
Perguntas frequentes
Por que não consigo encontrar o rastro de uma mensagem?
Provavelmente, seu SDK está desatualizado ou a mensagem está fora da janela de consulta. Verifique estes itens nesta ordem:
Versão do SDK: Confirme se o seu SDK atende aos requisitos de versão mínima.
Intervalo de tempo: Os rastros estão disponíveis apenas para mensagens produzidas nas últimas 24 horas.
Lacuna de coleta assíncrona: Os dados de rastro são coletados de forma assíncrona e podem estar incompletos. Se a consulta não retornar resultados apesar de condições válidas, verifique diretamente os logs do cliente. Para mais informações, consulte Configurações de log.
Operações de API relacionadas
Consulte rastros de mensagens programaticamente:
OnsTraceQueryByMsgId -- Consulta por ID da mensagem.
OnsTraceQueryByMsgKey -- Consulta por chave da mensagem.
OnsTraceGetResult -- Obtém os resultados da consulta.