Partager via


Métriques pour le répartiteur MQTT

Le répartiteur MQTT fournit un ensemble de métriques d’observabilité que vous pouvez utiliser pour surveiller et analyser l’intégrité de votre solution. Cet article décrit les métriques disponibles pour le répartiteur MQTT.

Pour configurer des options pour ces métriques, consultez Configurer les paramètres de diagnostic du répartiteur MQTT.

Propriété utilisateur MQTT Connect metriccategory

Lorsqu’un client se connecte au répartiteur, il peut inclure une propriété utilisateur appelée metriccategory dans le paquet de connexion. Le répartiteur balise ensuite toutes les métriques pilotées par la session (telles que les publication et les abonnements) avec ce metriccategory paramètre .category

Par exemple, si la sonde de vérification automatique se connecte, metriccategory=broker_selftestle répartiteur étiquette toutes les métriques de ces sessions avec category=broker_selftest.

Cette fonctionnalité permet aux tableaux de bord d’afficher les sources de trafic sans les problèmes élevés de cardinalité des métriques avec des rubriques.

Les sessions sans metriccategory étiquette sont marquées comme category=uncategorized.

Métriques de messagerie

Toutes les métriques incluent la hostname balise pour identifier le pod qui a généré les métriques. Les balises répertoriées dans les descriptions de métriques individuelles sont ajoutées à cette balise.

Métrique Description Balises
aio_broker_publishes_received Sur le front-end, cette métrique représente le nombre de paquets de publication entrants reçus des clients. Pour le back-end, cette métrique représente le nombre de messages internes envoyés à partir des nœuds frontaux. category
aio_broker_publishes_sent Sur le front-end, cette métrique représente le nombre de paquets de publication sortants envoyés aux clients. Si plusieurs clients sont abonnés à la même rubrique, cette métrique compte chaque message envoyé, même s’ils ont la même charge utile. Ce nombre ne compte pas les paquets ack. Pour le serveur principal, cette métrique représente le nombre de messages internes envoyés aux nœuds frontaux. category
aio_broker_payload_bytes_received Somme des charges utiles de toutes les publication reçues. Cette somme n’inclut pas la taille des propriétés ni la publication des paquets eux-mêmes. category
aio_broker_payload_bytes_sent Somme des charges utiles de toutes les publication envoyées. Cette somme n’inclut pas la taille des propriétés ni la publication des paquets eux-mêmes. category
aio_broker_authentication_successes Cette métrique compte le nombre de demandes d’authentification réussies. category
aio_broker_authentication_failures Cette métrique compte le nombre de demandes d’authentification ayant échoué. Pour un serveur d’authentification sans erreur, aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent category
aio_broker_authentication_deny Cette métrique compte le nombre de demandes d’authentification refusées. category
aio_broker_authorization_allow Cette métrique compte les demandes d’autorisation réussies. Cette métrique doit toujours être inférieure ou égale à aio_broker_authentication_successes. category
aio_broker_authorization_deny Cette métrique compte les demandes d’autorisation refusées. Cette métrique doit toujours être inférieure ou égale à aio_broker_authentication_successes. category
aio_broker_qos0_messages_dropped Cette métrique compte le nombre de messages QoS0 supprimés pour une raison quelconque. La catégorie direction est l’une ou l’autre incoming outgoing. category, direction
aio_broker_backpressure_packets_rejected Cette métrique compte le nombre de paquets rejetés en raison de la rétropression. Un paquet est rejeté si le système est à 97 % de capacité.
aio_broker_store_retained_messages Cette métrique compte le nombre de messages conservés stockés sur le répartiteur.
aio_broker_store_retained_bytes Cette métrique compte le nombre d’octets stockés via des messages conservés sur le répartiteur.
aio_broker_store_will_messages Cette métrique compte le nombre de messages stockés sur le répartiteur.
aio_broker_store_will_bytes Cette métrique compte le nombre d’octets stockés via les messages du répartiteur.
aio_broker_number_of_routes Nombre d’itinéraires.
aio_broker_connect_route_replication_correctness Décrit si une requête de connexion d’un client de test automatique est répliquée correctement le long d’un itinéraire spécifique.
aio_broker_connect_latency_route_ms Décrit l’intervalle de temps entre l’envoi par un client de test automatique d’un paquet CONNECT et la réception d’un paquet CONNACK. Cette métrique est générée par itinéraire. La métrique est générée uniquement si un paquet CONNECT réussit.
aio_broker_connect_latency_last_value_ms Estimation p99 de connect_latency_route_ms.
aio_broker_connect_latency_mu_ms Valeur moyenne de connect_latency_route_ms.
aio_broker_connect_latency_sigma_ms Écart type de connect_latency_route_ms.
aio_broker_subscribe_route_replication_correctness Décrit si une requête d’abonnement d’un client de test automatique est répliquée correctement le long d’un itinéraire spécifique.
aio_broker_subscribe_latency_route_ms Décrit l’intervalle de temps entre l’envoi par un client de test automatique d’un paquet SUBSCRIBE et la réception d’un paquet SUBACK. Cette métrique est générée par itinéraire. La métrique est générée uniquement si un paquet SUBSCRIBE réussit.
aio_broker_subscribe_latency_last_value_ms Estimation p99 de subscribe_latency_route_ms.
aio_broker_subscribe_latency_mu_ms Valeur moyenne de subscribe_latency_route_ms.
aio_broker_subscribe_latency_sigma_ms Écart type de subscribe_latency_route_ms.
aio_broker_unsubscribe_route_replication_correctness Décrit si une requête de désabonnement d’un client de test automatique est répliquée correctement le long d’un itinéraire spécifique.
aio_broker_unsubscribe_latency_route_ms Décrit l’intervalle de temps entre l’envoi par un client de test automatique d’un paquet UNSUBSCRIBE et la réception d’un paquet UNSUBACK. Cette métrique est générée par itinéraire. La métrique est générée uniquement si un paquet UNSUBSCRIBE réussit.
aio_broker_unsubscribe_latency_last_value_ms Estimation p99 de unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_mu_ms Valeur moyenne de unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_sigma_ms Écart type de subscribe_latency_route_ms.
aio_broker_publish_route_replication_correctness Décrit si une requête de désabonnement d’un client de test automatique est répliquée correctement le long d’un itinéraire spécifique.
aio_broker_publish_latency_route_ms Décrit l’intervalle de temps entre l’envoi par un client de test automatique d’un paquet PUBLISH et la réception d’un paquet PUBACK. Cette métrique est générée par itinéraire. La métrique est générée uniquement si un paquet PUBLISH réussit.
aio_broker_publish_latency_last_value_ms Estimation p99 de publish_latency_route_ms.
aio_broker_publish_latency_mu_ms Valeur moyenne de publish_latency_route_ms.
aio_broker_publish_latency_sigma_ms Écart type de publish_latency_route_ms.
aio_broker_payload_check_latency_last_value_ms Estimation p99 de la vérification de latence de la dernière valeur.
aio_broker_payload_check_latency_mu_ms Valeur moyenne de vérification de la latence.
aio_broker_payload_check_latency_sigma_ms Écart type de la latence de la charge utile.
aio_broker_payload_check_total_messages_lost Nombre total de messages de charges utiles perdus.
aio_broker_payload_check_total_messages_received Nombre total de messages reçus.
aio_broker_payload_check_total_messages_sent Nombre total de messages envoyés.
aio_broker_ping_correctness Décrit si le test Ping à partir du client de test automatique fonctionne correctement.
aio_broker_ping_latency_last_value_ms Estimation p99 de l’opération de test Ping de la dernière valeur.
aio_broker_ping_latency_mu_ms Valeur moyenne de la vérification de test Ping.
aio_broker_ping_latency_route_ms Latence de test Ping en millisecondes pour un itinéraire spécifique.
aio_broker_ping_latency_sigma_ms Écart type de la latence de l’opération de test Ping.
aio_broker_publishes_processed_count Décrit le nombre de messages traités et publiés.
aio_broker_publishes_received_per_second Nombre de messages publiés reçus par seconde.
aio_broker_publishes_sent_per_second Nombre de messages envoyés reçus par seconde.

Métriques d’intégrité de l’opérateur Broker

Cet ensemble de métriques suit l’état de cardinalité du répartiteur. Chaque métrique souhaitée est associée à une métrique signalée pour afficher l’état actuel. Ces métriques indiquent le nombre de pods sains du point de vue du répartiteur, qui peuvent différer des rapports kubernetes.

Par exemple, si un nœud principal redémarre mais ne se reconnecte pas à sa chaîne, il peut y avoir une différence dans les rapports d’intégrité. Kubernetes peut signaler le pod comme sain, tandis que le répartiteur le signale comme étant en panne, car il ne fonctionne pas correctement.

Métrique souhaitée Métrique signalée
aio_broker_backend_replicas aio_broker_backend_replicas_current
aio_broker_backend_vertical_chain aio_broker_backend_vertical_chain_current
aio_broker_frontend_replicas aio_broker_frontend_replicas_current

Remarque

backend_vertical_chain_current signale le nombre de nœuds sains dans la chaîne la moins saine. Par exemple, si la longueur de chaîne attendue est 4 et que trois chaînes ont 4 nœuds sains, tandis qu’une chaîne n’a que 2 nœuds sains, backend_vertical_chain_current indique 2.

Métriques de connexion et d’abonnement

Ces métriques permettent d’observer les connexions et les abonnements sur le répartiteur.

Métrique Description Balises
aio_broker_total_sessions Sur le serveur frontal et le répartiteur à nœud unique, cette métrique représente le nombre de sessions clientes qu’il y a. Ce nombre n’inclut pas les sessions persistantes déconnectées, car un client peut se reconnecter à un autre nœud frontal. Pour le back-end, cette métrique représente ses connexions aux autres nœuds de sa chaîne. Sur l’opérateur, cette métrique représente le nombre de nœuds front et back-end connectés. Pour le serveur d’authentification, cette métrique représente le nombre de workers frontend connectés (1 par serveur frontal par thread). mqtt_version: [v3/v5]
Balises de nœud principal uniquement :
is_tail: [true/false]
chain_id: [n]
aio_broker_store_total_sessions Cette métrique représente le nombre de sessions dans la chaîne back-end. Les nœuds principaux de la même chaîne doivent signaler le même nombre de sessions, et la somme de chaque chaîne doit être égale à la somme des total_sessions du serveur frontal. is_persistent: [true/false]
is_tail: [true/false]
chain_id: [n]
aio_broker_connected_sessions Identique à aio_broker_total_sessions, sauf uniquement les sessions qui ont une connexion active.
aio_broker_store_connected_sessions Identique à aio_broker_store_total_sessions, sauf uniquement les sessions qui ont une connexion active. Si is_persistent la valeur est false, ce nombre doit être égal au nombre total de sessions.
aio_broker_total_subscriptions Sur le front-end, cette métrique représente le nombre d’abonnements dont disposent les sessions actuellement connectées. Ce nombre n’inclut pas les sessions persistantes déconnectées, car un client peut se reconnecter à un autre nœud frontal. Sur l’opérateur, cette métrique représente les nœuds front-end et back-end. Pour le serveur d’authentification, cette métrique représente le nombre de workers frontend connectés (1 par serveur frontal par thread).
aio_broker_store_total_subscriptions Cette métrique représente le nombre d’abonnements dans la chaîne back-end. Les nœuds back end de la même chaîne doivent signaler le même nombre d’abonnements. Ce nombre ne correspond pas nécessairement aux serveurs frontend total_subscriptions, car cette métrique suit également les sessions persistantes déconnectées.

Métriques du magasin d’état

Cet ensemble de métriques suit l’état global du magasin d’états.

Métrique Description Balises
aio_broker_state_store_deletions Cette métrique compte le nombre de demandes de clé de suppression reçues, y compris les suppressions réussies et les erreurs.
aio_broker_state_store_insertions Cette métrique compte le nombre de nouvelles demandes d’insertion de clé reçues, y compris les insertions réussies et les erreurs.
aio_broker_state_store_keynotify_requests Cette métrique compte le nombre de demandes de surveillance des modifications clés reçues (KEYNOTIFY), y compris les modifications réussies et les erreurs.
aio_broker_state_store_modifications Cette métrique compte le nombre de demandes de modification de clés reçues, y compris les modifications réussies et les erreurs.
aio_broker_state_store_notifications_sent Cette métrique compte le nombre de messages de notification envoyés par le magasin d’états lorsqu’une valeur de clé change et qu’un client est inscrit via KEYNOTIFY.
aio_broker_state_store_retrievals Cette métrique compte le nombre de demandes de récupération de valeur de clé reçues, y compris les récupérations réussies et les erreurs.

Métriques de mémoire tampon de message sauvegardées sur disque

Ces métriques fournissent une observabilité pour la mémoire tampon de messages sauvegardée sur disque.

Métrique Description Balises
aio_broker_buffer_pool_used_percent Signale le pourcentage de mémoire tampon utilisée pour un pool de mémoires tampons front-end ou back-end unique. name
aio_broker_disk_transfers_completed Signale le nombre de transferts de disque effectués sur un pod principal donné. Suit le nombre total de publication transférées d’un pool de mémoires tampons vers le disque.
aio_broker_disk_transfers_failed Signale le nombre de transferts de disque qui ont échoué sur un pod principal donné.

Remarque

Seuls certains pools de mémoires tampons principaux, en particulier ceux dynamiques nommés « lecteur », utilisent la fonctionnalité de mémoire tampon de message sauvegardée sur disque. Ces pools stockent les files d’attente de messages d’abonné et transfèrent des éléments vers le disque lorsque l’utilisation dépasse 75 %.

Métriques de récupération d’échec

Métrique Description
aio_broker_store_transfer_batch_receiver_message_count Cette métrique signale le nombre de messages reçus par le récepteur de transfert de magasin. Ce nombre doit être égal au nombre de messages envoyés par l’expéditeur du transfert de magasin.
aio_broker_store_transfer_batch_sender_transfer_bytes Cette métrique indique le nombre d’octets envoyés par l’expéditeur du transfert de magasin.
aio_broker_store_transfer_batch_sender_message_count Cette métrique signale le nombre de messages envoyés par l’expéditeur du transfert de magasin.
aio_broker_store_transfer_ack_event_receiver_message_count Cette métrique signale le nombre de messages d’événement ack reçus par le récepteur de transfert de magasin. Ce nombre doit être égal au nombre de messages d’événement ack envoyés par l’expéditeur du transfert de magasin.
aio_broker_store_transfer_ack_event_sender_message_count Cette métrique signale le nombre de messages d’événement ack envoyés par l’expéditeur du transfert de magasin.
aio_broker_store_transfer_ack_event_sender_transfer_bytes Cette métrique signale le nombre d’octets envoyés par l’expéditeur de transfert de magasin pour les événements ack.
aio_broker_store_transfer_patch_tracker_receiver_message_count Cette métrique signale le nombre de messages de suivi des correctifs reçus par le récepteur de transfert de magasin. Ce nombre doit être égal au nombre de messages de suivi des correctifs envoyés par l’expéditeur du transfert de magasin.
aio_broker_store_transfer_patch_tracker_sender_message_count Cette métrique signale le nombre de messages de suivi des correctifs envoyés par l’expéditeur du transfert de magasin.

Métriques des développeurs

Ces métriques sont utiles pour le débogage des développeurs.

Métrique Description
aio_broker_patch_tracker_held_patches Cette métrique indique le nombre de correctifs actuellement conservés dans un nœud d’une chaîne.
aio_broker_ack_handler_pending_transactions Cette métrique indique le nombre de transactions actuellement en attente dans le gestionnaire ack.
aio_broker_client_connected Cette métrique indique le nombre de clients connectés.
aio_broker_client_disconnected Cette métrique indique le nombre de clients déconnectés.
aio_broker_client_removed Cette métrique indique le nombre de clients supprimés.