Condividi tramite


Metriche per il broker MQTT

Il broker MQTT fornisce un set di metriche di osservabilità che è possibile usare per monitorare e analizzare l'integrità della soluzione. Questo articolo descrive le metriche disponibili per il broker MQTT.

Per configurare le opzioni per queste metriche, vedere Configurare le impostazioni di diagnostica del broker MQTT.

Proprietà utente MQTT Connect metriccategory

Quando un client si connette al broker, può includere una proprietà utente chiamata metriccategory nel pacchetto di connessione. Il broker contrassegna quindi tutte le metriche guidate dalla sessione (ad esempio pubblica e sottoscrive) con questo metriccategory valore come category.

Ad esempio, se il probe di verifica automatica si connette con metriccategory=broker_selftest, il broker contrassegna tutte le metriche di queste sessioni con category=broker_selftest.

Questa funzionalità consente ai dashboard di visualizzare le origini del traffico senza problemi di cardinalità elevata di assegnazione di tag alle metriche con argomenti.

Le sessioni senza un metriccategory oggetto vengono contrassegnate come category=uncategorized.

Metriche di messaggistica

Tutte le metriche includono il hostname tag per identificare il pod che ha generato le metriche. I tag elencati nelle singole descrizioni delle metriche vengono aggiunti a questo tag.

Metrico Descrizione Tag
aio_broker_publishes_received Nel front-end questa metrica rappresenta il numero di pacchetti di pubblicazione in ingresso ricevuti dai client. Per il back-end, questa metrica rappresenta il numero di messaggi interni inviati dai nodi front-end. category
aio_broker_publishes_sent Nel front-end questa metrica rappresenta il numero di pacchetti di pubblicazione in uscita inviati ai client. Se più client sono sottoscritti nello stesso argomento, questa metrica conta ogni messaggio inviato, anche se hanno lo stesso payload. Questo conteggio non conta pacchetti ack. Per il back-end, questa metrica rappresenta il numero di messaggi interni inviati ai nodi front-end. category
aio_broker_payload_bytes_received Somma dei payload di tutte le pubblicate ricevute. Questa somma non include le dimensioni delle proprietà o i pacchetti di pubblicazione stessi. category
aio_broker_payload_bytes_sent Somma dei payload di tutte le pubblicazione inviate. Questa somma non include le dimensioni delle proprietà o i pacchetti di pubblicazione stessi. category
aio_broker_authentication_successes Questa metrica conta il numero di richieste di autenticazione riuscite. category
aio_broker_authentication_failures Questa metrica conta il numero di richieste di autenticazione non riuscite. Per un server di autenticazione senza errori, aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent category
aio_broker_authentication_deny Questa metrica conta il numero di richieste di autenticazione negate. category
aio_broker_authorization_allow Questa metrica conta correttamente le richieste di autorizzazione. Questa metrica deve essere sempre minore o uguale a aio_broker_authentication_successes. category
aio_broker_authorization_deny Questa metrica conta le richieste di autorizzazione negate. Questa metrica deve essere sempre minore o uguale a aio_broker_authentication_successes. category
aio_broker_qos0_messages_dropped Questa metrica conta il numero di messaggi QoS0 eliminati per qualsiasi motivo. La categoria direction è incoming o outgoing. category, direction
aio_broker_backpressure_packets_rejected Questa metrica conta il numero di pacchetti rifiutati a causa della backpressure. Un pacchetto viene rifiutato se il sistema ha una capacità del 97%.
aio_broker_store_retained_messages Questa metrica conta il numero di messaggi conservati archiviati nel broker.
aio_broker_store_retained_bytes Questa metrica conta il numero di byte archiviati tramite messaggi conservati nel broker.
aio_broker_store_will_messages Questa metrica conta il numero di messaggi archiviati nel broker.
aio_broker_store_will_bytes Questa metrica conta il numero di byte archiviati tramite messaggi nel broker.
aio_broker_number_of_routes Conta il numero di route.
aio_broker_connect_route_replication_correctness Descrive se una richiesta di connessione da un client di test self-test viene replicata correttamente lungo una route specifica.
aio_broker_connect_latency_route_ms Descrive l'intervallo di tempo tra un client di test automatico che invia un pacchetto CONNECT e riceve un pacchetto CONNACK. Questa metrica viene generata per ogni route. La metrica viene generata solo se un connect ha esito positivo.
aio_broker_connect_latency_last_value_ms Valore p99 stimato di connect_latency_route_ms.
aio_broker_connect_latency_mu_ms Valore medio di connect_latency_route_ms.
aio_broker_connect_latency_sigma_ms Deviazione standard di connect_latency_route_ms.
aio_broker_subscribe_route_replication_correctness Descrive se una richiesta di sottoscrizione da un client di test self-test viene replicata correttamente lungo una route specifica.
aio_broker_subscribe_latency_route_ms Descrive l'intervallo di tempo tra un client di test automatico che invia un pacchetto SUBSCRIBE e riceve un pacchetto SUBACK. Questa metrica viene generata per ogni route. La metrica viene generata solo se una sottoscrizione ha esito positivo.
aio_broker_subscribe_latency_last_value_ms Valore p99 stimato di subscribe_latency_route_ms.
aio_broker_subscribe_latency_mu_ms Valore medio di subscribe_latency_route_ms.
aio_broker_subscribe_latency_sigma_ms Deviazione standard di subscribe_latency_route_ms.
aio_broker_unsubscribe_route_replication_correctness Descrive se una richiesta di annullamento della sottoscrizione da un client di test self-test viene replicata correttamente lungo una route specifica.
aio_broker_unsubscribe_latency_route_ms Descrive l'intervallo di tempo tra un client di test automatico che invia un pacchetto UNSUBSCRIBE e riceve un pacchetto UNSUBACK. Questa metrica viene generata per ogni route. La metrica viene generata solo se l'annullamento della sottoscrizione ha esito positivo.
aio_broker_unsubscribe_latency_last_value_ms Valore p99 stimato di unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_mu_ms Valore medio di unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_sigma_ms Deviazione standard di subscribe_latency_route_ms.
aio_broker_publish_route_replication_correctness Descrive se una richiesta di annullamento della sottoscrizione da un client di test self-test viene replicata correttamente lungo una route specifica.
aio_broker_publish_latency_route_ms Descrive l'intervallo di tempo tra un client di test automatico che invia un pacchetto PUBLISH e riceve un pacchetto PUBACK. Questa metrica viene generata per ogni route. La metrica viene generata solo se un'operazione PUBLISH ha esito positivo.
aio_broker_publish_latency_last_value_ms Valore p99 stimato di publish_latency_route_ms.
aio_broker_publish_latency_mu_ms Valore medio di publish_latency_route_ms.
aio_broker_publish_latency_sigma_ms Deviazione standard di publish_latency_route_ms.
aio_broker_payload_check_latency_last_value_ms Valore p99 stimato del controllo della latenza dell'ultimo valore.
aio_broker_payload_check_latency_mu_ms Valore medio del controllo della latenza.
aio_broker_payload_check_latency_sigma_ms Deviazione standard della latenza del payload.
aio_broker_payload_check_total_messages_lost Conteggio del totale del messaggio di payload perso.
aio_broker_payload_check_total_messages_received Conteggio del numero totale di messaggi ricevuti.
aio_broker_payload_check_total_messages_sent Conteggio del numero totale di messaggi inviati.
aio_broker_ping_correctness Descrive se il ping dal client di test automatico funziona correttamente.
aio_broker_ping_latency_last_value_ms Valore p99 stimato dell'operazione ping dell'ultimo valore.
aio_broker_ping_latency_mu_ms Valore medio del controllo ping.
aio_broker_ping_latency_route_ms Latenza ping in millisecondi per una route specifica.
aio_broker_ping_latency_sigma_ms Deviazione standard della latenza dell'operazione ping.
aio_broker_publishes_processed_count Descrive i conteggi elaborati del messaggio pubblicato.
aio_broker_publishes_received_per_second Conta il numero di messaggi pubblicati ricevuti al secondo.
aio_broker_publishes_sent_per_second Conta il numero di messaggi inviati ricevuti al secondo.

Metriche di integrità dell'operatore Broker

Questo set di metriche tiene traccia dello stato di cardinalità del broker. Ogni metrica desiderata è associata a una metrica segnalata per mostrare lo stato corrente. Queste metriche indicano il numero di pod integri dal punto di vista del broker, che potrebbero differire dai report di Kubernetes.

Ad esempio, se un nodo back-end viene riavviato ma non si riconnette alla catena, può verificarsi una discrepanza nei report sull'integrità. Kubernetes potrebbe segnalare il pod come integro, mentre il broker lo segnala come inattivo perché non funziona correttamente.

Metrica desiderata Metrica segnalata
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

Nota

backend_vertical_chain_current segnala il numero di nodi integri nella catena meno integra. Ad esempio, se la lunghezza della catena prevista è 4 e tre catene hanno 4 nodi integri, mentre una catena ha solo 2 nodi integri, backend_vertical_chain_current segnala 2.

Metriche di connessione e sottoscrizione

Queste metriche forniscono l'osservabilità per le connessioni e le sottoscrizioni nel broker.

Metrico Descrizione Tag
aio_broker_total_sessions Nel gestore front-end e a nodo singolo questa metrica rappresenta il numero di sessioni client presenti. Questo conteggio non include sessioni permanenti disconnesse, perché un client potrebbe riconnettersi a un nodo front-end diverso. Per il back-end, questa metrica rappresenta le connessioni agli altri nodi della catena. Nell'operatore questa metrica rappresenta il numero di nodi front-end e back-end connessi. Per il server di autenticazione, questa metrica rappresenta il numero di ruoli di lavoro front-end connessi (1 per front-end per thread). mqtt_version: [v3/v5]
Tag solo nodo back-end:
is_tail: [true/false]
chain_id: [n]
aio_broker_store_total_sessions Questa metrica rappresenta il numero di sessioni nella catena back-end. I nodi back-end nella stessa catena devono segnalare lo stesso numero di sessioni e la somma di ogni catena deve corrispondere alla somma del total_sessions del front-end. is_persistent: [true/false]
is_tail: [true/false]
chain_id: [n]
aio_broker_connected_sessions Uguale a aio_broker_total_sessions, ad eccezione di solo le sessioni con una connessione attiva.
aio_broker_store_connected_sessions Uguale a aio_broker_store_total_sessions, ad eccezione di solo le sessioni con una connessione attiva. Se is_persistent è false, questo conteggio deve essere uguale al totale delle sessioni.
aio_broker_total_subscriptions Nel front-end questa metrica rappresenta il numero di sottoscrizioni delle sessioni attualmente connesse. Questo conteggio non include sessioni permanenti disconnesse, perché un client potrebbe riconnettersi a un nodo front-end diverso. Nell'operatore questa metrica rappresenta i nodi front-end e back-end. Per il server di autenticazione, questa metrica rappresenta il numero di ruoli di lavoro front-end connessi (1 per front-end per thread).
aio_broker_store_total_subscriptions Questa metrica rappresenta il numero di sottoscrizioni nella catena back-end. I nodi back-end nella stessa catena devono segnalare lo stesso numero di sottoscrizioni. Questo conteggio non corrisponde necessariamente al front-end, total_subscriptionsperché questa metrica tiene traccia anche delle sessioni persistenti disconnesse.

Metriche dell'archivio stati

Questo set di metriche tiene traccia dello stato complessivo dell'archivio stati.

Metrico Descrizione Tag
aio_broker_state_store_deletions Questa metrica conta il numero di richieste di chiave di eliminazione ricevute, incluse le eliminazioni riuscite e gli errori.
aio_broker_state_store_insertions Questa metrica conta il numero di nuove richieste di inserimento chiave ricevute, inclusi gli inserimenti riusciti e gli errori.
aio_broker_state_store_keynotify_requests Questa metrica conta il numero di richieste per monitorare le modifiche chiave (KEYNOTIFY) ricevute, incluse le modifiche riuscite e gli errori.
aio_broker_state_store_modifications Questa metrica conta il numero di richieste di modifica delle chiavi ricevute, incluse le modifiche riuscite e gli errori.
aio_broker_state_store_notifications_sent Questa metrica conta il numero di messaggi di notifica inviati dall'archivio stati quando viene modificato un valore della chiave e un client viene registrato tramite KEYNOTIFY.
aio_broker_state_store_retrievals Questa metrica conta il numero di richieste di recupero dei valori chiave ricevute, inclusi i recupero riusciti e gli errori.

Metriche del buffer dei messaggi supportate dal disco

Queste metriche forniscono l'osservabilità per il buffer dei messaggi supportato dal disco.

Metrico Descrizione Tag
aio_broker_buffer_pool_used_percent Segnala la percentuale di buffer usato per un singolo pool di buffer front-end o back-end. name
aio_broker_disk_transfers_completed Segnala il numero di trasferimenti di dischi completati in un determinato pod back-end. Tiene traccia del numero totale di pubblicazione trasferite da un pool di buffer a disco.
aio_broker_disk_transfers_failed Segnala il numero di trasferimenti di dischi non riusciti in un determinato pod back-end.

Nota

Solo alcuni pool di buffer back-end, in particolare quelli dinamici denominati "reader", usano la funzionalità buffer dei messaggi supportata dal disco. Questi pool archiviano le code di messaggi del sottoscrittore e trasferiscono elementi su disco quando l'utilizzo supera il 75%.

Metriche di ripristino degli errori

Metrico Descrizione
aio_broker_store_transfer_batch_receiver_message_count Questa metrica indica il numero di messaggi ricevuti dal ricevitore di trasferimento dell'archivio. Questo conteggio deve essere uguale al numero di messaggi inviati dal mittente del trasferimento dell'archivio.
aio_broker_store_transfer_batch_sender_transfer_bytes Questa metrica indica il numero di byte inviati dal mittente del trasferimento dell'archivio.
aio_broker_store_transfer_batch_sender_message_count Questa metrica indica il numero di messaggi inviati dal mittente del trasferimento dell'archivio.
aio_broker_store_transfer_ack_event_receiver_message_count Questa metrica segnala il numero di messaggi di evento ack ricevuti dal ricevitore di trasferimento dell'archivio. Questo conteggio deve essere uguale al numero di messaggi di evento ack inviati dal mittente del trasferimento dell'archivio.
aio_broker_store_transfer_ack_event_sender_message_count Questa metrica segnala il numero di messaggi di evento ack inviati dal mittente del trasferimento dell'archivio.
aio_broker_store_transfer_ack_event_sender_transfer_bytes Questa metrica indica il numero di byte inviati dal mittente del trasferimento dell'archivio per gli eventi ack.
aio_broker_store_transfer_patch_tracker_receiver_message_count Questa metrica segnala il numero di messaggi di patch tracker ricevuti dal ricevitore di trasferimento dell'archivio. Questo conteggio deve essere uguale al numero di messaggi di patch tracker inviati dal mittente del trasferimento dell'archivio.
aio_broker_store_transfer_patch_tracker_sender_message_count Questa metrica segnala il numero di messaggi di patch tracker inviati dal mittente del trasferimento dell'archivio.

Metriche per sviluppatori

Queste metriche sono utili per il debug degli sviluppatori.

Metrico Descrizione
aio_broker_patch_tracker_held_patches Questa metrica indica il numero di patch attualmente mantenute all'interno di un nodo in una catena.
aio_broker_ack_handler_pending_transactions Questa metrica indica il numero di transazioni attualmente in sospeso nel gestore ack.
aio_broker_client_connected Questa metrica segnala il numero di client connessi.
aio_broker_client_disconnected Questa metrica indica il numero di client disconnessi.
aio_broker_client_removed Questa metrica indica il numero di client rimossi.