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_selftest
le 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. |
Contenu connexe
- Configurer les paramètres de diagnostic du répartiteur MQTT.
- Configurer l’observabilité