En tirant parti des capacités de stockage et de visualisation des métriques d'Alibaba Cloud Managed Service for Prometheus et Managed Service for Grafana, Message Queue for Apache RocketMQ 5,0 propose une fonctionnalité de tableau de bord. Cette fonctionnalité vous aide à centraliser la collecte, l'observation et la visualisation de métriques multidimensionnelles afin d'évaluer rapidement l'état opérationnel de votre activité. Cette rubrique décrit les cas d'utilisation, le contexte, le détail des métriques, la facturation et les méthodes de requête pour le tableau de bord.
Cas d'utilisation
Dépannez les exceptions de consommation de messages en ligne, recevez des alertes en temps utile et localisez rapidement les problèmes lorsque les messages ne sont pas traités dans les délais.
Analysez le pipeline de livraison des messages lorsque vous rencontrez des problèmes avec les commandes en ligne.
Analysez les tendances du trafic de messages, les modèles de distribution ou le volume de messages pour soutenir l'analyse et la planification des tendances commerciales.
Consultez et analysez la topologie des dépendances amont et aval de vos applications pour mettre à niveau ou optimiser l'architecture de votre système.
Contexte
Lors du processus d'envoi et de réception de messages de Alibaba Cloud Message Queue for Apache RocketMQ, l'accumulation dans la file d'attente, l'état de mise en mémoire tampon et le temps consommé à chaque étape du traitement des messages reflètent directement les performances de vos services et l'état opérationnel du serveur. Par conséquent, les métriques clés de Alibaba Cloud Message Queue for Apache RocketMQ sont principalement liées aux scénarios commerciaux suivants.
Scénarios de retard de consommation
La figure suivante illustre l'état des messages dans une file d'attente spécifique d'un topic.

La figure ci-dessus montre l'état des messages dans une file d'attente pour un topic spécifique. Message Queue for Apache RocketMQ recense le nombre de messages et le temps consommé aux différentes étapes de traitement. Ces métriques reflètent directement la vitesse de traitement et l'accumulation des messages dans la file d'attente. En observant ces métriques, vous pouvez déterminer initialement si la consommation de votre service est anormale. Les définitions spécifiques et les formules de calcul de ces métriques sont les suivantes :
Catégorie | Métrique | Description | Formule |
Métriques de comptage des messages | messages inflight | Messages en cours de traitement par un client consommateur mais qui n'ont pas encore été acquittés. | Offset du dernier message extrait - Offset du dernier message acquitté |
messages ready | Messages prêts sur le broker Message Queue for Apache RocketMQ 5,0, visibles et disponibles pour la consommation. Si un filtrage par tag est configuré pour le groupe de consommateurs, les messages ready incluent uniquement les messages correspondant aux conditions de filtre. | Offset maximal du message - Offset du dernier message extrait | |
consumer lag | Le nombre total de messages qui n'ont pas été entièrement traités. | Nombre de messages inflight + Nombre de messages ready | |
Métriques de latence des messages | Ready time |
| S.O. |
Ready message queue time | La différence de temps entre l'heure actuelle et le ready time du premier message ready. Cette durée reflète la rapidité avec laquelle le consommateur extrait les messages. | Heure actuelle - Ready time du premier message ready | |
Consumer lag time | La différence de temps entre l'heure actuelle et le ready time du premier message non acquitté. Cette durée reflète la rapidité avec laquelle le consommateur traite les messages. | Heure actuelle - Ready time du premier message non acquitté |
Lorsque le consumer lag diminue continuellement et s'approche de 0, et que le consumer lag time se raccourcit continuellement et s'approche de 0, la vitesse de consommation a dépassé la vitesse de production et l'accumulation est en cours de résorption. Lorsque les deux métriques s'approchent de 0, le groupe de consommateurs a rattrapé la vitesse de production et l'accumulation est revenue à la normale.
Scénarios de consommateur Push
Un consommateur Push encapsule la récupération des messages, la gestion des threads et la logique de nouvelle tentative. Enregistrez un écouteur de messages lors de l'initialisation et le SDK gère le reste.

Pour plus d'informations sur les principes, consultez Consommateurs Push.
Dans un scénario de consommateur push, les métriques suivantes mesurent l'état de la file d'attente de mémoire tampon locale :
Nombre de messages dans la file d'attente de mémoire tampon locale : le nombre total de messages dans la file d'attente de mémoire tampon locale.
Taille des messages dans la file d'attente de mémoire tampon locale : la taille totale de tous les messages dans la file d'attente de mémoire tampon locale.
Temps d'attente des messages : la durée pendant laquelle les messages sont temporairement stockés dans la file d'attente de mémoire tampon locale.
Détails des métriques
Les TPS de messages, les nombres d'appels API et les nombres de messages sont basés sur un message normal de 4 Ko. Pour calculer la valeur finale, multipliez cette base par des facteurs correspondant à la taille et au type réels du message. Pour plus d'informations sur les règles de calcul, consultez Fonctionnement des spécifications de calcul.
Le tableau suivant décrit les champs liés aux métriques.
Champ | Valeur |
Type de métrique |
|
Libellé |
|
Métriques du broker
Type de métrique | Nom de la métrique | Unité | Description | Libellés |
Gauge | rocketmq_instance_requests_max | count/s | Le TPS maximal pour l'envoi et la réception de messages dans l'instance par minute. Cette métrique exclut les requêtes limitées (throttled). Le système collecte un échantillon par seconde sur une période d'une minute. La valeur maximale parmi les 60 échantillons est utilisée. |
|
Gauge | rocketmq_instance_requests_in_max | count/s | Le TPS maximal pour l'envoi de messages dans l'instance par minute. Cette métrique exclut les requêtes limitées (throttled). Le système collecte un échantillon par seconde sur une période d'une minute. La valeur maximale parmi les 60 échantillons est utilisée. |
|
Gauge | rocketmq_instance_requests_out_max | count/s | Le TPS maximal pour la consommation de messages dans l'instance par minute. Cette métrique exclut les requêtes limitées (throttled). Le système collecte un échantillon par seconde sur une période d'une minute. La valeur maximale parmi les 60 échantillons est utilisée. |
|
Gauge | rocketmq_topic_requests_max | count/s | Le TPS maximal pour l'envoi de messages vers un topic dans l'instance par minute. Cette métrique exclut les requêtes limitées (throttled). Le système collecte un échantillon par seconde sur une période d'une minute. La valeur maximale parmi les 60 échantillons est utilisée. |
|
Gauge | rocketmq_group_requests_max | count/s | Le TPS maximal pour la consommation de messages dans un groupe de consommateurs au sein de l'instance par minute. Cette métrique exclut les requêtes limitées (throttled). Le système collecte un échantillon par seconde sur une période d'une minute. La valeur maximale parmi les 60 échantillons est utilisée. |
|
Gauge | rocketmq_instance_requests_in_threshold | count/s | Le seuil de limitation (throttling) pour l'envoi de messages dans l'instance. |
|
Gauge | rocketmq_instance_requests_out_threshold | count/s | Le seuil de limitation (throttling) pour la consommation de messages dans l'instance. |
|
Gauge | rocketmq_throttled_requests_in | count | Le nombre de requêtes limitées (throttled) pour l'envoi de messages. |
|
Gauge | rocketmq_throttled_requests_out | count | Le nombre de requêtes limitées (throttled) pour la consommation de messages. |
|
Gauge | rocketmq_instance_elastic_requests_max | count/s | Le TPS élastique maximal pour l'envoi et la réception de messages dans l'instance. |
|
Counter | rocketmq_requests_in_total | count | Le nombre d'appels API liés à l'envoi de messages. |
|
Counter | rocketmq_requests_out_total | count | Le nombre d'appels API liés à la consommation de messages. |
|
Counter | rocketmq_messages_in_total | message | Le nombre de messages envoyés des producteurs vers le broker. |
|
Counter | rocketmq_messages_out_total | message | Le nombre de messages livrés du broker aux consommateurs. Cela inclut les messages en cours de traitement, traités avec succès ou dont le traitement a échoué. |
|
Counter | rocketmq_throughput_in_total | byte | Le débit des messages des producteurs vers le broker. |
|
Counter | rocketmq_throughput_out_total | byte | Le débit des messages du broker vers les consommateurs. Le nombre de messages inclut les messages en cours de traitement, traités avec succès ou dont le traitement a échoué. |
|
Counter | rocketmq_internet_throughput_out_total | byte | Le trafic sortant du réseau public consommé par l'envoi et la réception de messages. |
|
Histogram | rocketmq_message_size | byte | La distribution des tailles de message, enregistrée lors d'un envoi réussi. Les compartiments de distribution sont les suivants :
|
|
Gauge | rocketmq_consumer_ready_messages | message | Nombre de messages ready. Le nombre de messages prêts sur le broker et disponibles pour la consommation. Cette métrique reflète le volume de messages que les consommateurs n'ont pas encore extraits. |
|
Gauge | rocketmq_consumer_inflight_messages | message | Le nombre de messages que les clients consommateurs traitent mais n'ont pas encore acquittés. Le nombre total de messages que le client consommateur traite mais pour lesquels il n'a pas encore renvoyé de résultat de consommation. |
|
Gauge | rocketmq_consumer_queueing_latency | ms | Latence de mise en file d'attente des messages ready. La différence de temps entre l'heure actuelle et le ready time du premier message ready. Cette métrique indique la rapidité avec laquelle les consommateurs extraient les messages. |
|
Gauge | rocketmq_consumer_lag_latency | ms | Latence de traitement de la consommation. La différence de temps entre l'heure actuelle et le ready time du premier message non consommé. Cette métrique indique la rapidité avec laquelle les consommateurs traitent les messages. |
|
Counter | rocketmq_send_to_dlq_messages | message | Le nombre de messages envoyés vers la file d'attente des messages morts (DLQ) par minute. Un message est envoyé vers la DLQ si sa consommation échoue plus de fois que le nombre maximal de tentatives de redistribution configuré. Selon la politique de messages morts configurée pour le groupe de consommateurs, ces messages non livrés sont enregistrés dans un topic spécifié ou supprimés. |
|
Gauge | rocketmq_storage_size | byte | La quantité d'espace de stockage utilisée par l'instance, y compris la taille de tous les fichiers. |
|
Métriques du producteur
Type de métrique | Nom de la métrique | Unité | Description | Libellés |
Histogram | rocketmq_send_cost_time | ms | La distribution du temps pris pour les appels réussis à l'API d'envoi de messages. Les compartiments de distribution sont les suivants :
|
|
Métriques du consommateur
Type de métrique | Nom de la métrique | Unité | Description | Libellé |
Histogram | rocketmq_process_time | ms | La distribution du temps pris par un consommateur push pour traiter les messages. Cela inclut les tentatives de traitement réussies et échouées.
Les intervalles de distribution sont les suivants :
|
|
Gauge | rocketmq_consumer_cached_messages | message | Le nombre de messages dans la file d'attente du cache local d'un consommateur push. |
|
Gauge | rocketmq_consumer_cached_bytes | byte | La taille totale des messages dans la file d'attente du cache local d'un consommateur push. |
|
Histogram | rocketmq_await_time | ms | La distribution du temps d'attente des messages dans la file d'attente du cache local d'un consommateur push.
Les intervalles de distribution sont les suivants :
|
|
Facturation
Les métriques du tableau de bord pour ApsaraMQ for RocketMQ sont des métriques de base dans Alibaba Cloud Managed Service for Prometheus. Aucun frais n'est facturé pour les métriques de base. Par conséquent, la fonctionnalité de tableau de bord est également gratuite.
Pour plus d'informations, consultez Métriques et Paiement à l'utilisation.
Prérequis
-
Créez un rôle lié au service
Nom du rôle : AliyunServiceRoleForOns
Nom de la politique : AliyunServiceRolePolicyForOns
Autorisations : permet à Message Queue for Apache RocketMQ d'utiliser ce rôle pour accéder à vos services, tels que Cloud Monitor et Application Real-Time Monitoring Service (ARMS), afin d'activer les fonctionnalités de surveillance, d'alerte et de tableau de bord.
Pour plus d'informations, consultez Rôles liés au service.
Consulter les tableaux de bord
ApsaraMQ for RocketMQ vous permet de consulter les tableaux de bord depuis les pages suivantes :
Page Dashboard : consultez les métriques de tous les topics et groupes dans une instance.
Page Instance Details : affiche un aperçu du producteur, les métriques de facturation et les métriques de limitation pour une instance spécifique.
Page Topic Details : affiche les métriques de production et les métriques du client producteur pour un topic spécifique.
Page Group Details : affiche les métriques d'accumulation de messages et les métriques du client consommateur pour un groupe spécifique.
Connectez-vous à la console ApsaraMQ for RocketMQ. Dans le volet de navigation de gauche, cliquez sur Instances.
Dans la barre de navigation supérieure, sélectionnez une région, telle que China (Hangzhou). Sur la page Instances, cliquez sur le nom de l'instance que vous souhaitez gérer.
-
Consultez le tableau de bord de l'une des manières suivantes.
Page Instance Details : sur la page Instance Details, cliquez sur l'onglet Dashboard.
Page Dashboard : dans le volet de navigation de gauche, cliquez sur Overview.
Page Topic Details : dans le volet de navigation de gauche, cliquez sur Topics. Dans la liste des topics, cliquez sur le nom du topic cible. Ensuite, sur la page Topic Details, cliquez sur l'onglet Dashboard.
Page Group Details : dans le volet de navigation de gauche, cliquez sur Groups. Dans la liste des groupes, cliquez sur le nom du groupe cible. Ensuite, sur la page Group Details, cliquez sur l'onglet Dashboard.
FAQ sur le tableau de bord
Comment obtenir les données de métriques du tableau de bord ?
Utilisez votre compte principal pour vous connecter à la console ARMS.
Dans le volet de navigation de gauche, cliquez sur Integration Center.
Sur la page Integration Center, saisissez
RocketMQdans la zone de recherche et cliquez sur l'icône de recherche.Dans les résultats de recherche, sélectionnez le service cloud à intégrer, tel que Alibaba Cloud RocketMQ (5.0) Service. Pour plus d'informations, consultez Étape 1 : Intégrer les données de surveillance des services cloud.
Une fois l'intégration réussie, dans le volet de navigation de gauche, cliquez sur Integration Management.
Sur la page Integration Management, cliquez sur l'onglet Cloud Service Region Environment.
Dans la liste Cloud Service Region Environment, cliquez sur le nom de l'environnement cible pour accéder à la page des détails de l'environnement du service cloud.
Sur l'onglet Component Management, dans la section Basic Information, cliquez sur la région du service cloud après Prometheus Instance.
Sur l'onglet Settings, vous pouvez obtenir différentes méthodes d'accès aux données.
Comment intégrer les données de métriques du tableau de bord dans une instance Grafana autogérée ?
Toutes les données de métriques pour ApsaraMQ for RocketMQ sont enregistrées dans votre instance Managed Service for Prometheus. Suivez les étapes décrites dans Comment obtenir les données de métriques du tableau de bord ? pour intégrer le service cloud et obtenir le nom de l'environnement ainsi que l'adresse HTTP API. Vous pouvez ensuite utiliser l'API pour intégrer les données de métriques du tableau de bord pour ApsaraMQ for RocketMQ dans votre instance Grafana autogérée. Pour plus d'informations, consultez Utiliser une adresse HTTP API pour connecter Grafana ou une application autogérée à Prometheus pour l'accès aux données.
Que signifie la valeur TPS max d'une instance ?
TPS max : la valeur est calculée sur une période d'une minute, avec un échantillon prélevé par seconde. Le résultat final est la valeur maximale parmi ces 60 échantillons.
Par exemple :
Supposons qu'une instance produise 60 messages en 1 minute (tous sont des messages normaux et chacun fait 4 Ko). Le taux de production de l'instance est de 60 messages par minute.
-
Si les 60 messages sont envoyés durant la première seconde, les valeurs TPS par seconde de l'instance pendant cette minute sont 60, 0, 0, ..., 0.
TPS max de l'instance = 60 TPS.
-
Si 40 messages sont envoyés durant la première seconde et 20 messages durant la deuxième seconde, les valeurs TPS par seconde de l'instance pendant cette minute sont 40, 20, 0, 0, ..., 0.
TPS max de l'instance = 40 TPS.
Pourquoi le taux de production est-il beaucoup plus élevé que le consumer lag ?
Le taux de production est calculé au niveau du topic et compte tous les messages, indépendamment des tags. Le consumer lag est calculé au niveau du groupe de consommateurs et est affecté par le filtrage des tags : seuls les messages correspondant aux conditions de filtre du groupe de consommateurs sont comptés. Si la plupart des messages d'un topic ne correspondent pas aux conditions de filtre par tag du groupe de consommateurs, le consumer lag peut être beaucoup plus faible que le taux de production.
Pourquoi la liste déroulante des topics sur le tableau de bord de la page des détails du groupe n'affiche-t-elle que certains topics ou uniquement None ?
La liste déroulante des topics sur le tableau de bord de la page Group Details affiche uniquement les topics qui ont récemment envoyé des messages. Si un topic n'a envoyé aucun message récemment, il n'apparaît pas dans la liste, même après sa création. Pour afficher les métriques d'un autre topic abonné, saisissez manuellement le nom du topic dans la liste déroulante et appuyez sur Entrée.