Una traza de mensaje registra la ruta completa de un mensaje en ApsaraMQ for RocketMQ. Esta ruta abarca el envío, el almacenamiento y el consumo del mensaje. Cada etapa captura los tiempos, el estado y los detalles del cliente. La función de traza de mensajes aplica a todos los tipos de mensajes.
Utilice las trazas de mensajes para:
Confirmar si un mensaje se envió y se consumió correctamente.
Identificar dónde se detuvo o falló un mensaje.
Encontrar el cliente consumidor específico y la marca de tiempo de un mensaje consumido.
Funcionamiento de las trazas de mensajes
Una traza de mensaje completa captura datos en tres etapas:
|
Producer |
Broker |
Consumer |
|
Dirección IP del cliente |
Hora de llegada al servidor |
Dirección IP del cliente |
|
Marca de tiempo de envío |
Hora de entrega programada |
Hora de llegada al consumidor |
|
Duración del envío (RT) |
Hora de entrega real |
Tiempo de espera antes del procesamiento |
|
Estado de envío |
Tipo de mensaje |
Hora de inicio y fin del procesamiento |
|
AccessKey ID |
Hora de confirmación o reversa de la transacción |
Duración del procesamiento |
|
Resultado de la entrega |
||
|
AccessKey ID |

Antes de empezar
Requisitos de versión del SDK
El seguimiento de mensajes requiere una versión mínima del SDK.
|
Protocolo |
Lenguaje |
Versión mínima |
Notas de la versión |
|
TCP |
Java |
V1.2.7.Final |
|
|
TCP |
C/C++ |
V1.1.2 |
|
|
TCP |
.NET |
V1.1.2 |
|
|
HTTP |
Node.js |
V1.0.2 |
|
|
HTTP |
Otros |
V1.0.1 |
Requisitos previos de la función de traza mejorada
La función de traza mejorada expone parámetros adicionales en la consola. Esto le permite consultar los datos de traza generados durante el consumo de mensajes, así como los datos de mensajes programados, diferidos y transaccionales:
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 la función de traza mejorada:
TCP SDK for Java: actualice a V2.x.x.Final. La instancia debe estar desplegada en una de las siguientes regiones: China (Hangzhou), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Shenzhen), China (Chengdu), Germany (Frankfurt) o Indonesia (Jakarta).
TCP SDK for C++: actualice a V3.x.x. Disponible en todas las regiones.
Límite del intervalo de tiempo
Las consultas de traza abarcan una ventana móvil de 24 horas. Solo están disponibles las trazas de los mensajes producidos en las últimas 24 horas. Por ejemplo, a las 15:09:48 del 30 de noviembre de 2023, el intervalo de consulta va de las 15:09:48 del 29 de noviembre de 2023 a las 15:09:48 del 30 de noviembre de 2023.
Efecto del estado de consumo en los resultados de la consulta
|
Tipo de mensaje |
Comportamiento |
|
Muestra Not Consumed hasta que se consume el mensaje. Después del consumo, aparecen los detalles de envío y de consumo. |
|
|
Igual que los mensajes normales. |
|
|
Antes de la hora de entrega programada, la traza se puede consultar, pero el mensaje no. |
|
|
Antes de confirmar la transacción local, la traza se puede consultar, pero el mensaje no. |
Consulta de una traza de mensaje en la consola
Inicie sesión en la consola de ApsaraMQ for RocketMQ. En el panel de navegación izquierdo, haga clic en Instances.
En la barra de navegación superior, seleccione una región, por ejemplo, China (Hangzhou). Haga clic en el nombre de su instancia.
En el panel de navegación izquierdo, haga clic en Message Trace. En la esquina superior izquierda de la página, haga clic en Create Query Task.
-
En el panel Create Message Trace Query Task, seleccione un método de consulta y configure las condiciones de búsqueda. Luego, haga clic en OK.
ImportanteEstablezca el intervalo de tiempo con la mayor precisión posible para reducir el alcance y acelerar la consulta.
Hay tres métodos de consulta disponibles:
Método
Tipo de coincidencia
Más indicado para
Query by Message ID
Coincidencia exacta
Búsquedas rápidas y precisas. Recomendado.
Query by Message Key
Coincidencia aproximada (hasta 1,000 resultados)
Escenarios donde el identificador del mensaje no está disponible, pero se configuró una clave única en el mensaje.
Query by Topic
Consulta por intervalo
Temas de bajo volumen donde no se dispone del identificador ni de la clave del mensaje. No se recomienda para temas de alto rendimiento, ya que los resultados son difíciles de filtrar.
La tarea de consulta aparece en la página Message Trace. Si la columna Status muestra Querying, haga clic en el botón
en la esquina superior derecha de la lista de tareas para actualizarla hasta que el estado cambie a Query Completed. Haga clic en Query Results en la columna Actions para consultar los detalles de la traza.
Solución de problemas de un mensaje faltante

Si no recibió un mensaje como esperaba, siga estos pasos:
Recopile el identificador del mensaje, la clave del mensaje, el tema y la hora aproximada de envío.
Inicie sesión en la consola de ApsaraMQ for RocketMQ y cree una tarea de consulta con la información recopilada.
-
Analice los resultados de la consulta:
Si la traza muestra Not Consumed: vaya a la página Groups para comprobar si una acumulación de mensajes causó el problema. Para obtener más información, consulte View consumer details.
Si el mensaje se consumió: revise los detalles de consumo para identificar el cliente consumidor y la marca de tiempo. Después, revise los registros de ese cliente.
Referencia de parámetros de traza
En la página de resultados de la traza, las columnas Sending Status y Consumption Status ofrecen un resumen. Haga clic en un mensaje específico para consultar la traza completa, organizada en las secciones Producer, MQ Server y Consumer.
Información básica
|
Parámetro |
Descripción |
|
Message ID |
Identificador único global, generado automáticamente por ApsaraMQ for RocketMQ. |
|
Topic |
El tema al que pertenece el mensaje. |
|
Message Key |
Identificador de negocio establecido por el productor. Identifica de forma única una lógica de negocio. |
|
Message Tag |
Etiqueta utilizada para clasificar mensajes dentro de un tema. |
Producer
|
Parámetro |
Descripción |
|
AccessKey |
AccessKey ID de la cuenta de Alibaba Cloud o del usuario de Resource Access Management (RAM) que envió el mensaje. |
|
Client IP Address |
Dirección IP del cliente productor. |
|
Message Produced At |
Marca de tiempo en la que el mensaje se envió desde el productor. |
|
Sending RT |
Tiempo empleado en enviar el mensaje, en milisegundos. |
|
Sending Status |
Estado de la operación de envío. Consulte Message status. |
MQ Server
|
Parámetro |
Descripción |
|
Message Type |
Normal messages, scheduled and delayed messages, ordered messages o transactional messages. Los mensajes programados y diferidos se muestran como Scheduled Message. |
|
Arrive at Server At |
Hora a la que el mensaje llegó al broker de ApsaraMQ for RocketMQ. |
|
Scheduled to Be Delivered At |
Hora de entrega programada para los mensajes programados. |
|
Delivered At |
Hora en la que el mensaje quedó disponible para entregarse al consumidor. |
|
Committed/Rolled back At |
Hora en la que se confirmó o revirtió una transacción. |
Consumer
|
Parámetro |
Descripción |
|
AccessKey |
AccessKey ID de la cuenta de Alibaba Cloud o del usuario RAM del lado del consumidor. |
|
Arrive at Consumer At |
Hora a la que el mensaje llegó al cliente consumidor. |
|
Wait Duration before Processing |
Tiempo transcurrido entre la llegada del mensaje al consumidor y el inicio del procesamiento. |
|
Delivery Result |
Resultado de un intento individual de entrega. Un mensaje se puede entregar varias veces antes de consumirse correctamente. Consulte Message status. |
|
Client IP Address |
Dirección IP del cliente consumidor. |
|
Message Processing Started At |
Marca de tiempo en la que el consumidor comenzó a procesar el mensaje. |
|
Message Processing Complete At |
Marca de tiempo en la que el consumidor terminó el procesamiento. |
|
Message Processing Duration |
Tiempo que el consumidor dedicó a procesar el mensaje. |
Valores de estado del mensaje
|
Tipo |
Valores posibles |
|
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 |
Preguntas frecuentes
¿Por qué no encuentro la traza de un mensaje?
Lo más probable es que su SDK sea demasiado antiguo o que el mensaje esté fuera de la ventana de consulta. Compruebe lo siguiente en este orden:
Versión del SDK: confirme que su SDK cumple con minimum version requirements.
Intervalo de tiempo: las trazas solo están disponibles para los mensajes producidos en las últimas 24 horas.
Retraso en la recopilación asíncrona: los datos de traza se recopilan de forma asíncrona y pueden estar incompletos. Si la consulta no devuelve resultados aunque las condiciones sean válidas, compruebe directamente los registros del cliente. Para obtener más información, consulte Logging settings.
Operaciones de API relacionadas
Consulte las trazas de mensajes mediante programación:
OnsTraceQueryByMsgId: consulta por identificador de mensaje.
OnsTraceQueryByMsgKey: consulta por clave de mensaje.
OnsTraceGetResult: obtención de resultados de la consulta.