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_subscriptions perché 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. |
Contenuto correlato
- Configurare le impostazioni di diagnostica del broker MQTT.
- Configurare l'osservabilità