Message Service (MNS) propose la fonctionnalité de trace des messages pour suivre chaque message tout au long de son cycle de vie : envoi, mise en correspondance avec les abonnements, transmission (push) et consommation. Elle affiche les horodatages, les résultats ainsi que les identités des producteurs et des consommateurs afin de faciliter le dépannage.
Cas d'utilisation
La fonctionnalité message trace vous permet de :
Confirmer la livraison des messages : Vérifiez si un message a atteint sa file d'attente ou son sujet (topic) et s'il a été consommé.
Dépanner les consommations en double : Consultez l'historique complet de consommation d'un message : horodatage, identité du consommateur et résultat de chaque tentative de consommation.
Dépanner les échecs de transmission (push) : Consultez le statut détaillé et les motifs d'échec des transmissions vers les abonnements aux sujets (HTTP, e-mail, etc.).
Dépanner la latence des messages : Consultez les horodatages de chaque étape du cycle de vie pour identifier les retards.
Vérifier le statut des messages planifiés : Confirmez si un message planifié a atteint son heure de livraison.
Interroger les identités des producteurs et des consommateurs : Consultez l'adresse IP du producteur, l'AccessKey et l'adresse IP du consommateur pour le dépannage.
Paramètres de trace
Trace des messages de file d'attente
Une trace de message se compose de trois sections : Informations d'envoi, Informations sur le message et Informations sur la consommation.
Envoi de messages
Envoi standard
|**Paramètre**
|
**Description**
| | --- | --- | |
Source du message
|
Un producteur qui envoie le message directement à la file d'attente.
| |
Méthode
|
L'opération d'API, telle que SendMessage ou BatchSendMessage.
| |
IP du producteur
|
L'adresse IP du client émetteur.
| |
AccessKey
|
L'AccessKey utilisé pour envoyer le message.
| |
Heure d'envoi
|
L'heure serveur à laquelle le message est arrivé dans la file d'attente.
| |
Résultat
|
Affiche « Success » ou un message d'erreur spécifique.
|
File d'attente des messages morts (Dead-letter)
Une nouvelle trace est générée lorsqu'un message est transféré vers une file d'attente des messages morts.
|**Paramètre**
|
**Description**
| | --- | --- | |
Source du message
|
Constante : Dead-Letter
| |
File d'attente d'origine
|
Le nom de la file d'attente d'origine du message.
| |
ID du message de la file d'attente d'origine
|
L'ID du message dans la file d'attente d'origine.
| |
Heure d'envoi
|
L'heure à laquelle le message a été transféré vers la file d'attente des messages morts.
| |
Résultat
|
Affiche « Success » ou un message d'erreur spécifique.
|
Transmission par abonnement
Générée lorsqu'un sujet transmet un message à une file d'attente via un abonnement.
|**Paramètre**
|
**Description**
| | --- | --- | |
Source du message
|
Constante : Topic Queue Subscription
| |
Sujet (Topic)
|
Le nom du sujet qui a transmis le message.
| |
Abonnement
|
Le nom de l'abonnement qui a transmis le message.
| |
ID du message d'origine
|
L'ID du message dans le sujet.
| |
Heure d'envoi
|
L'heure à laquelle le message a été transmis à la file d'attente.
| |
Résultat
|
Affiche « Success » ou un message d'erreur spécifique.
|
Autres services cloud
Générée lorsqu'EventBridge transmet un message à une file d'attente via un abonnement.
|**Paramètre**
|
**Description**
| | --- | --- | |
Source du message
|
Constante : other cloud services
| |
Méthode
|
Constante : Notify
| |
Heure d'envoi
|
L'heure à laquelle le message a été transmis à la file d'attente.
| |
Résultat
|
Affiche « Success » ou un message d'erreur spécifique.
|
Informations sur le message
Message standard
|**Paramètre**
|
**Description**
| | --- | --- | |
Type de message
|
Valeur : standard message
| |
ID du message
|
Un identifiant unique pour le message.
| |
File d'attente
|
Le nom de la file d'attente contenant le message.
| |
Période de rétention
|
Durée maximale de stockage. Correspond à l'attribut `MessageRetentionPeriod` de la file d'attente.
| |
Délai de visibilité
|
Durée pendant laquelle un message récupéré reste invisible pour les autres consommateurs. Correspond à l'attribut `VisibilityTimeout` de la file d'attente.
|
Message planifié
|**Paramètre**
|
**Description**
| | --- | --- | |
Type de message
|
Valeur : scheduled message
| |
ID du message
|
Un identifiant unique pour le message.
| |
File d'attente
|
Le nom de la file d'attente contenant le message.
| |
Période de rétention
|
Durée maximale de stockage. Correspond à l'attribut `MessageRetentionPeriod` de la file d'attente.
| |
Délai de visibilité
|
Durée pendant laquelle un message récupéré reste invisible pour les autres consommateurs. Correspond à l'attribut `VisibilityTimeout` de la file d'attente.
| |
Délai de livraison
|
Le délai en secondes avant la livraison du message.
| |
Heure de livraison planifiée
|
L'heure précise à laquelle le message deviendra disponible pour la consommation.
|
Consommation
La trace de consommation d'un message de file d'attente est regroupée en sessions de consommation, chacune identifiée par un ReceiptHandle.
|
Paramètre |
Description |
|
Résultat |
Le résultat final de la session de consommation. Les valeurs possibles incluent :
|
|
IP du consommateur |
L'adresse IP du client qui a reçu ou traité le message. |
|
AccessKey |
L'AccessKey utilisé pour traiter le message. |
|
ReceiptHandle |
Le handle du message, utilisé pour supprimer le message ou modifier son délai de visibilité. |
|
Heure de l'opération |
L'heure serveur de l'opération. |
|
Opération |
L'opération d'API. Les valeurs possibles incluent :
|
Un message peut avoir plusieurs valeurs
ReceiptHandlecar un nouveau handle est généré à chaque appel deReceiveMessageouBatchReceiveMessage.Si un consommateur supprime un message avant l'expiration du délai de visibilité, le résultat de la session de consommation est Success.
Si un consommateur reçoit un message mais ne le supprime pas, le message peut être consommé à nouveau après l'expiration du délai de visibilité. La réception du message génère un nouveau
ReceiptHandle.Toute opération sur un message avec un
ReceiptHandleexpiré renvoie une erreur 404.
Trace des messages de sujet (Topic)
Une trace de message de sujet comprend trois sections : informations d'envoi, informations de mise en correspondance des abonnements et informations de transmission (push).
Informations d'envoi
Envoi standard
|**Paramètre**
|
**Description**
| | --- | --- | |
Source du message
|
Un producteur a publié le message directement sur le sujet.
| |
Méthode
|
Type d'opération d'API : PublishMessage
| |
IP du producteur
|
L'adresse IP du client qui a publié le message.
| |
AccessKey
|
L'AccessKey utilisé pour publier le message.
| |
Heure d'envoi
|
L'heure serveur à laquelle le message est arrivé sur le sujet.
| |
Résultat
|
Le résultat de l'opération de publication. Affiche « Success » ou un message d'erreur spécifique.
|
Autres services cloud
Générée lorsqu'un autre service cloud publie un message sur le sujet.
|**Paramètre**
|
**Description**
| | --- | --- | |
Source du message
|
Indique que le message provient d'un autre service cloud.
| |
Méthode
|
Type d'opération d'API : PublishMessage
| |
Heure d'envoi
|
L'heure à laquelle le message a été publié sur le sujet.
| |
Résultat
|
Le résultat de l'opération de publication. Affiche « Success » ou un message d'erreur spécifique.
|
Mise en correspondance des abonnements
Lorsqu'un sujet reçoit un message, il met en correspondance les abonnements par FilterTag et transmet le message à chaque correspondance.
|
Paramètre |
Description |
|
ID du message |
L'identifiant unique du message. |
|
Tag |
Le tag du message, utilisé pour le filtrage des abonnements. |
|
Nom de l'abonnement |
Le nom de l'abonnement correspondant. |
|
Type d'abonnement |
Le type du point de terminaison de l'abonnement. Les valeurs possibles incluent :
|
Informations de transmission (Push)
Abonnement à une file d'attente
|**Paramètre**
|
**Description**
| | --- | --- | |
ID du message
|
Le nouvel ID attribué au message une fois qu'il entre dans la file d'attente.
| |
Résultat de la consommation
|
Indique si la transmission a réussi. Affiche « Success » ou un message d'erreur spécifique.
| |
Heure de transmission
|
L'heure à laquelle la transmission a commencé.
| |
Durée de traitement
|
La durée de la transmission, en millisecondes.
|
Autres abonnements
|
Paramètre |
Description |
|
Résultat de la transmission |
Le code d'état et le résultat de la transmission, tels que :
|
|
Heure de transmission |
L'heure à laquelle la transmission a commencé. |
|
Durée de traitement |
La durée de la transmission, en millisecondes. |
Limites d'utilisation
Message Trace : La fonction Message Trace est désactivée par défaut. Vous pouvez l'activer sur la page Message Trace.
Plage de temps de requête : Les requêtes peuvent couvrir au maximum 3 jours et doivent commencer dans les 15 derniers jours.
Facturation
Détails de facturation : Coûts de la trace des messages.
Période de rétention de la trace des messages
Les données de trace des messages sont conservées pendant 15 jours, après quoi elles sont automatiquement supprimées et ne peuvent plus être interrogées.
Méthodes de requête
ApsaraMQ for MNS propose cinq méthodes pour interroger les traces de messages :
|**Méthode de requête**
|
**Cas d'utilisation**
|
**Résultat**
| | --- | --- | --- | |
Requête par ID de message
|
Vous connaissez l'ID du message et souhaitez trouver la trace complète de ce message.
|
Renvoie une seule trace de message.
| |
Requête par ID de requête
|
Vous connaissez l'ID de requête d'un appel d'API et souhaitez trouver les messages concernés.
|
Renvoie les traces de messages associées à la requête.
| |
Requête par nom de file d'attente
|
Vous souhaitez afficher toutes les traces de messages d'une file d'attente sur une période donnée.
|
Renvoie les traces de messages de la file d'attente dans la plage de temps spécifiée.
| |
Requête par nom de sujet (Topic)
|
Vous souhaitez afficher toutes les traces de messages d'un sujet sur une période donnée.
|
Renvoie les traces de messages du sujet dans la plage de temps spécifiée.
| |
Requête par nom d'abonnement
|
Vous souhaitez afficher toutes les traces de messages transmis à un abonnement sur une période donnée.
|
Renvoie les traces de messages pour les messages transmis à l'abonnement dans la plage de temps spécifiée.
|
Si vous connaissez l'ID du message, utilisez la requête par ID de message pour obtenir des résultats rapides et précis.
Pour résoudre les problèmes de messages sur une période donnée, utilisez la requête par nom de file d'attente, par nom de sujet ou par nom d'abonnement.
Utilisez la requête par ID de requête pour résoudre les problèmes d'appels d'API liés à l'envoi ou à la consommation par lots.
Procédure
Interroger les traces de messages
Connectez-vous à la console Simple Message Queue (anciennement MNS).
Dans le volet de navigation de gauche, choisissez .
Dans la barre de navigation supérieure, sélectionnez une région.
Cliquez sur Off pour activer la trace des messages.
-
Sur la page Message Trace, sélectionnez une méthode de requête et saisissez les critères de recherche.
Query by Message ID : Saisissez un ID de message et cliquez sur Query.
Query by RequestID : Saisissez le RequestID d'une requête d'API et cliquez sur Query.
Query by Queue Name : Sélectionnez un nom de file d'attente, choisissez une heure de début dans les 15 derniers jours (la durée ne peut pas dépasser 3 jours) et cliquez sur Query.
Query by Topic Name : Sélectionnez un nom de sujet, choisissez une heure de début dans les 15 derniers jours (la durée ne peut pas dépasser 3 jours) et cliquez sur Query.
Query by Subscription Name : Sélectionnez un sujet et un nom d'abonnement, choisissez une heure de début dans les 15 derniers jours (la durée ne peut pas dépasser 3 jours) et cliquez sur Query.
Dans les résultats de la requête, repérez le message cible et, dans la colonne Actions, cliquez sur Details.
-
La page des détails de la trace du message affiche la trace complète du message.
-
Détails de la trace des messages de file d'attente : Comprend les informations d'envoi, les informations sur le message et les informations sur la consommation.
Sending Information : Comprend la source du message, la méthode d'envoi, l'adresse IP du producteur, l'AccessKey, l'heure d'arrivée et le résultat de l'envoi.
Message Information : Comprend l'ID du message, le nom de la file d'attente, la période de rétention, le délai de visibilité, etc. Pour un message planifié, la durée du délai et l'heure de livraison planifiée sont également affichées.
Consumption Information : Les enregistrements de consommation des messages sont regroupés par ReceiptHandle. Développez un ReceiptHandle pour afficher toutes les opérations de cette session de consommation, y compris l'heure, l'adresse IP du consommateur et le résultat de la réception, de la suppression et de la modification de la visibilité du message.
-
Détails de la trace des messages de sujet : Comprend les informations d'envoi, les informations de mise en correspondance des abonnements et les informations de transmission.
Sending Information : Comprend la méthode d'envoi, l'adresse IP du producteur, l'AccessKey, l'heure d'arrivée et le résultat de l'envoi.
Subscription Matching Information : Comprend l'ID du message, le tag, le nom de l'abonnement correspondant et le type d'abonnement.
Push Information : Comprend le résultat de la transmission, l'heure de transmission, etc. pour chaque abonnement. Pour les abonnements à une file d'attente, le nouvel ID du message après la transmission est affiché. Pour les abonnements HTTP, e-mail ou SMS, le code d'état de la transmission et la durée de traitement sont indiqués.
-
-
(Facultatif) Pour afficher la trace du message après qu'un message a été transmis à une file d'attente par un abonnement à une file d'attente, cliquez sur le lien Message ID dans la section Push Information pour afficher les détails de la trace du message de file d'attente correspondant.
Cette page affiche Sending Information (producteur, méthode, heure, résultat), Message Information (type de message, liste des abonnements) et Consumption Information (ID du message, résultat de la consommation, heure de transmission, durée de traitement).
FAQ
Q : Pourquoi ne puis-je pas trouver une trace de message ?
R : Les causes possibles incluent :
Les données de trace des messages sont supprimées après 15 jours.
La plage de temps spécifiée est incorrecte. Essayez d'élargir la plage de temps.
L'ID du message ou le RequestID a été saisi incorrectement. Vérifiez l'ID et relancez la requête.
Q : Que signifie le statut « Not Responded » dans une trace de message ?
R : Un consommateur a reçu le message mais ne l'a ni supprimé ni modifié son délai de visibilité. Lorsque le délai expire, le message redevient disponible. Vérifiez votre application consommatrice pour vous assurer qu'elle traite et supprime correctement les messages.
Q : Pourquoi un seul message possède-t-il plusieurs ReceiptHandles ?
R : Chaque appel à ReceiveMessage ou BatchReceiveMessage génère un nouveau ReceiptHandle. Si un message est récupéré plusieurs fois (par exemple, après l'expiration de son délai de visibilité), chaque récupération produit un ReceiptHandle différent.
Q : La trace des messages affecte-t-elle les performances d'envoi et de réception des messages ?
R : Non. L'enregistrement des traces est asynchrone et n'affecte pas les performances ni la fiabilité de l'envoi et de la réception des messages. Les échecs d'enregistrement n'ont pas d'impact sur le fonctionnement normal.