Metriken für MQTT-Broker
DER MQTT-Broker bietet eine Reihe von Observability-Metriken, mit denen Sie die Integrität Ihrer Lösung überwachen und analysieren können. In diesem Artikel werden die verfügbaren Metriken für den MQTT-Broker beschrieben.
Informationen zum Konfigurieren von Optionen für diese Metriken finden Sie unter Configure MQTT broker diagnostic settings.
MQTT Connect-Benutzereigenschaft metriccategory
Wenn ein Client eine Verbindung mit dem Broker herstellt, kann er eine Benutzereigenschaft enthalten, die im Verbindungspaket aufgerufen wird metriccategory
. Der Broker markiert dann alle sitzungsgesteuerten Metriken (z. B. veröffentlicht und abonniert) mit dieser metriccategory
als category
.
Wenn der Self-Check-Prüfpunkt beispielsweise eine Verbindung herstellt metriccategory=broker_selftest
, markiert der Broker alle Metriken dieser Sitzungen mit category=broker_selftest
.
Dieses Feature hilft Dashboards, Datenverkehrsquellen ohne die hohen Kardinalitätsprobleme der Kategorisierungsmetriken mit Themen anzuzeigen.
Sitzungen ohne einen metriccategory
werden als markiert als category=uncategorized
.
Messagingmetriken
Alle Metriken enthalten das hostname
Tag, um den Pod zu identifizieren, der die Metriken generiert hat. Die in den einzelnen Metrikbeschreibungen aufgeführten Tags werden diesem Tag hinzugefügt.
Metrik | BESCHREIBUNG | Tags |
---|---|---|
aio_broker_publishes_received | Im Frontend stellt diese Metrik dar, wie viele eingehende Veröffentlichungspakete von Clients empfangen werden. Für das Back-End stellt diese Metrik dar, wie viele interne Nachrichten von den Frontend-Knoten gesendet werden. | category |
aio_broker_publishes_sent | Im Frontend stellt diese Metrik dar, wie viele ausgehende Veröffentlichungspakete an Clients gesendet werden. Wenn mehrere Clients dasselbe Thema abonniert haben, zählt diese Metrik jede gesendete Nachricht, auch wenn sie dieselbe Nutzlast haben. Diese Anzahl zählt keine Ackpakete. Für das Back-End stellt diese Metrik dar, wie viele interne Nachrichten an die Frontend-Knoten gesendet werden. | category |
aio_broker_payload_bytes_received | Die Summe der Nutzlasten aller empfangenen Veröffentlichungen. Diese Summe enthält nicht die Größe der Eigenschaften oder die Veröffentlichung von Paketen selbst. | category |
aio_broker_payload_bytes_sent | Die Summe der Nutzlasten aller gesendeten Veröffentlichungen. Diese Summe enthält nicht die Größe der Eigenschaften oder die Veröffentlichung von Paketen selbst. | category |
aio_broker_authentication_successes | Diese Metrik zählt die Anzahl der erfolgreichen Authentifizierungsanforderungen. | category |
aio_broker_authentication_failures | Diese Metrik zählt die Anzahl der fehlgeschlagenen Authentifizierungsanforderungen. Für einen fehlerlosen Authentifizierungsserver aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent |
category |
aio_broker_authentication_deny | Diese Metrik zählt die Anzahl der abgelehnten Authentifizierungsanforderungen. | category |
aio_broker_authorization_allow | Diese Metrik zählt erfolgreich Autorisierungsanforderungen. Diese Metrik sollte immer kleiner oder gleich aio_broker_authentication_successes sein. |
category |
aio_broker_authorization_deny | Diese Metrik zählt die Anzahl der verweigerten Autorisierungsanforderungen. Diese Metrik sollte immer kleiner oder gleich aio_broker_authentication_successes sein. |
category |
aio_broker_qos0_messages_dropped | Diese Metrik zählt die Anzahl der gelöschten QoS0-Nachrichten aus irgendeinem Grund. Die Kategorie direction ist entweder incoming oder outgoing . |
category , direction |
aio_broker_backpressure_packets_rejected | Diese Metrik zählt die Anzahl der abgelehnten Pakete aufgrund von Rückdruck. Ein Paket wird abgelehnt, wenn das System eine Kapazität von 97 % hat. | |
aio_broker_store_retained_messages | Diese Metrik zählt, wie viele aufbewahrte Nachrichten auf dem Broker gespeichert werden. | |
aio_broker_store_retained_bytes | Diese Metrik zählt, wie viele Bytes über aufbewahrte Nachrichten im Broker gespeichert werden. | |
aio_broker_store_will_messages | Diese Metrik zählt, wie viele Nachrichten auf dem Broker gespeichert werden. | |
aio_broker_store_will_bytes | Diese Metrik zählt, wie viele Bytes über den Broker gespeichert werden. | |
aio_broker_number_of_routes | Zählt die Anzahl der Routen. | |
aio_broker_connect_route_replication_correctness | Beschreibt, ob eine Verbindungsanforderung von einem Selbsttest-Client ordnungsgemäß entlang einer bestimmten Route repliziert wird. | |
aio_broker_connect_latency_route_ms | Beschreibt das Zeitintervall zwischen einem Selbsttest-Client, der ein CONNECT-Paket sendet und ein CONNACK-Paket empfängt. Diese Metrik wird pro Route generiert. Die Metrik wird nur generiert, wenn eine VERBINDUNG erfolgreich ist. | |
aio_broker_connect_latency_last_value_ms | Geschätzte p99 von connect_latency_route_ms . |
|
aio_broker_connect_latency_mu_ms | Der Mittelwert von connect_latency_route_ms . |
|
aio_broker_connect_latency_sigma_ms | Die Standardabweichung von connect_latency_route_ms . |
|
aio_broker_subscribe_route_replication_correctness | Beschreibt, ob eine Abo-Anforderung von einem Selbsttest-Client ordnungsgemäß entlang einer bestimmten Route repliziert wird. | |
aio_broker_subscribe_latency_route_ms | Beschreibt das Zeitintervall zwischen einem Selbsttest-Client, der ein SUBSCRIBE-Paket sendet und ein SUBACK-Paket empfängt. Diese Metrik wird pro Route generiert. Die Metrik wird nur generiert, wenn ein SUBSCRIBE erfolgreich ist. | |
aio_broker_subscribe_latency_last_value_ms | Geschätzte p99 von subscribe_latency_route_ms . |
|
aio_broker_subscribe_latency_mu_ms | Der Mittelwert von subscribe_latency_route_ms . |
|
aio_broker_subscribe_latency_sigma_ms | Die Standardabweichung von subscribe_latency_route_ms . |
|
aio_broker_unsubscribe_route_replication_correctness | Beschreibt, ob eine Abonnement-Kündigungsanforderung von einem Selbsttest-Client ordnungsgemäß auf einer bestimmten Route repliziert wird. | |
aio_broker_unsubscribe_latency_route_ms | Beschreibt das Zeitintervall zwischen einem Selbsttest-Client, der ein UNSUBSCRIBE-Paket sendet und ein UNSUBACK-Paket empfängt. Diese Metrik wird pro Route generiert. Die Metrik wird nur generiert, wenn ein UNSUBSCRIBE erfolgreich ist. | |
aio_broker_unsubscribe_latency_last_value_ms | Geschätzte p99 von unsubscribe_latency_route_ms . |
|
aio_broker_unsubscribe_latency_mu_ms | Der Mittelwert von unsubscribe_latency_route_ms . |
|
aio_broker_unsubscribe_latency_sigma_ms | Die Standardabweichung von subscribe_latency_route_ms . |
|
aio_broker_publish_route_replication_correctness | Beschreibt, ob eine Abonnement-Kündigungsanforderung von einem Selbsttest-Client ordnungsgemäß auf einer bestimmten Route repliziert wird. | |
aio_broker_publish_latency_route_ms | Beschreibt das Zeitintervall zwischen einem Selbsttest-Client, der ein PUBLISH-Paket sendet und ein PUBACK-Paket empfängt. Diese Metrik wird pro Route generiert. Die Metrik wird nur generiert, wenn eine PUBLISH erfolgreich ist. | |
aio_broker_publish_latency_last_value_ms | Geschätzte p99 von publish_latency_route_ms . |
|
aio_broker_publish_latency_mu_ms | Der Mittelwert von publish_latency_route_ms . |
|
aio_broker_publish_latency_sigma_ms | Die Standardabweichung von publish_latency_route_ms . |
|
aio_broker_payload_check_latency_last_value_ms | Geschätzte p99-Latenzüberprüfung des letzten Werts. | |
aio_broker_payload_check_latency_mu_ms | Der Mittelwert der Latenzüberprüfung. | |
aio_broker_payload_check_latency_sigma_ms | Die Standardabweichung der Latenz der Nutzlast. | |
aio_broker_payload_check_total_messages_lost | Die Anzahl der verloren gegangenen Nutzlastnachrichten. | |
aio_broker_payload_check_total_messages_received | Die Anzahl der empfangenen Nachrichten. | |
aio_broker_payload_check_total_messages_sent | Die Anzahl der Gesamtzahl der gesendeten Nachrichten. | |
aio_broker_ping_correctness | Beschreibt, ob der Ping vom Selbsttest-Client ordnungsgemäß funktioniert. | |
aio_broker_ping_latency_last_value_ms | Ein geschätzter p99-Pingvorgang des letzten Werts. | |
aio_broker_ping_latency_mu_ms | Der Mittelwert der Pingüberprüfung. | |
aio_broker_ping_latency_route_ms | Die Pinglatenz in Millisekunden für eine bestimmte Route. | |
aio_broker_ping_latency_sigma_ms | Die Standardabweichung der Latenz des Pingvorgangs. | |
aio_broker_publishes_processed_count | Beschreibt die verarbeitete Anzahl der veröffentlichten Nachrichten. | |
aio_broker_publishes_received_per_second | Zählt die Anzahl der veröffentlichten Nachrichten, die pro Sekunde empfangen wurden. | |
aio_broker_publishes_sent_per_second | Zählt die Anzahl der gesendeten Nachrichten, die pro Sekunde empfangen wurden. |
Integritätsmetriken des Brokeroperators
Dieser Satz von Metriken verfolgt den Kardinalitätszustand des Brokers. Jede gewünschte Metrik wird mit einer gemeldeten Metrik gekoppelt, um den aktuellen Zustand anzuzeigen. Diese Metriken geben die Anzahl der fehlerfreien Pods aus der Perspektive des Brokers an, die sich von kubernetes Berichten unterscheiden können.
Wenn z. B. ein Back-End-Knoten neu gestartet wird, die Verbindung mit der Kette jedoch nicht erneut besteht, kann es zu Abweichungen in Integritätsberichten kommen. Kubernetes meldet den Pod möglicherweise als fehlerfrei, während der Broker ihn als unten meldet, da er nicht ordnungsgemäß funktioniert.
Gewünschte Metrik | Gemeldete Metrik |
---|---|
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 |
Hinweis
backend_vertical_chain_current
meldet die Anzahl der fehlerfreien Knoten in der am wenigsten fehlerfreien Kette. Wenn beispielsweise die erwartete Kettenlänge 4 ist und drei Ketten vier fehlerfreie Knoten aufweisen, während eine Kette nur 2 fehlerfreie Knoten aufweist, backend_vertical_chain_current
würde "2" melden.
Verbindungs- und Abonnementmetriken
Diese Metriken bieten Observability für die Verbindungen und Abonnements auf dem Broker.
Metrik | BESCHREIBUNG | Tags |
---|---|---|
aio_broker_total_sessions | Im Frontend- und einzelknotenbroker stellt diese Metrik dar, wie viele Clientsitzungen vorhanden sind. Diese Anzahl enthält keine getrennten beständigen Sitzungen, da ein Client möglicherweise eine erneute Verbindung mit einem anderen Front-End-Knoten herstellen kann. Für das Back-End stellt diese Metrik ihre Verbindungen mit den anderen Knoten in der Kette dar. Auf dem Operator stellt diese Metrik dar, wie viele Front- und Back-End-Knoten verbunden sind. Für den Authentifizierungsserver stellt diese Metrik dar, wie viele Front-End-Worker verbunden sind (1 pro Frontend pro Thread). | mqtt_version : [v3/v5] Nur Back-End-Knotentags: is_tail : [true/false] chain_id : [n] |
aio_broker_store_total_sessions | Diese Metrik stellt die Anzahl der Sitzungen in der Back-End-Kette dar. Back-End-Knoten in derselben Kette sollten dieselbe Anzahl von Sitzungen melden, und die Summe jeder Kette sollte der Summe der total_sessions des Frontends entsprechen. | is_persistent : [true/false] is_tail : [true/false] chain_id : [n] |
aio_broker_connected_sessions | Identisch mit aio_broker_total_sessions , mit Ausnahme von Sitzungen, die eine aktive Verbindung haben. |
|
aio_broker_store_connected_sessions | Identisch mit aio_broker_store_total_sessions , mit Ausnahme von Sitzungen, die eine aktive Verbindung haben. Ist is_persistent "false" angegeben, sollte diese Anzahl gleich der Gesamtzahl der Sitzungen sein. |
|
aio_broker_total_subscriptions | Im Frontend stellt diese Metrik dar, wie viele Abonnements die aktuell verbundenen Sitzungen aufweisen. Diese Anzahl enthält keine getrennten beständigen Sitzungen, da ein Client möglicherweise eine erneute Verbindung mit einem anderen Front-End-Knoten herstellen kann. Auf dem Operator stellt diese Metrik die Frontend- und Back-End-Knoten dar. Für den Authentifizierungsserver stellt diese Metrik dar, wie viele Front-End-Worker verbunden sind (1 pro Frontend pro Thread). | |
aio_broker_store_total_subscriptions | Diese Metrik stellt die Anzahl der Abonnements in der Back-End-Kette dar. Back-End-Knoten in derselben Kette sollten dieselbe Anzahl von Abonnements melden. Diese Anzahl stimmt nicht unbedingt mit den Frontends total_subscriptions überein, da diese Metrik auch getrennte persistente Sitzungen nachverfolgt. |
Statusspeichermetriken
Dieser Satz von Metriken verfolgt den Gesamtzustand des Zustandsspeichers.
Metrik | BESCHREIBUNG | Tags |
---|---|---|
aio_broker_state_store_deletions | Diese Metrik zählt die Anzahl der empfangenen Löschschlüsselanforderungen, einschließlich erfolgreicher Lösch- und Fehleranforderungen. | |
aio_broker_state_store_insertions | Diese Metrik zählt die Anzahl der empfangenen Neuen Schlüsseleinfügungsanforderungen, einschließlich erfolgreicher Einfügungen und Fehlern. | |
aio_broker_state_store_keynotify_requests | Diese Metrik zählt die Anzahl der Anforderungen zur Überwachung der empfangenen Schlüsseländerungen (KEYNOTIFY), einschließlich erfolgreicher Änderungen und Fehler. | |
aio_broker_state_store_modifications | Diese Metrik zählt die Anzahl der empfangenen Änderungsschlüsselanforderungen, einschließlich erfolgreicher Änderungen und Fehler. | |
aio_broker_state_store_notifications_sent | Diese Metrik zählt die Anzahl der Benachrichtigungen, die der Statusspeicher sendet, wenn sich ein Schlüsselwert ändert und ein Client über KEYNOTIFY registriert wird. | |
aio_broker_state_store_retrievals | Diese Metrik zählt die Anzahl der empfangenen Abrufanforderungen für Schlüsselwerte, einschließlich erfolgreicher Abrufe und Fehler. |
Metriken für datenträgergestützte Nachrichtenpuffer
Diese Metriken stellen die Observability für den Datenträger-gesicherten Nachrichtenpuffer bereit.
Metrik | BESCHREIBUNG | Tags |
---|---|---|
aio_broker_buffer_pool_used_percent | Meldet den Prozentsatz des verwendeten Puffers für einen einzelnen Frontend- oder Back-End-Pufferpool. | name |
aio_broker_disk_transfers_completed | Meldet die Anzahl der abgeschlossenen Datenträgerübertragungen auf einem bestimmten Back-End-Pod. Verfolgt die Gesamtzahl der veröffentlichten Veröffentlichungen, die von einem Pufferpool auf den Datenträger übertragen werden. | |
aio_broker_disk_transfers_failed | Meldet die Anzahl der Datenträgerübertragungen, die auf einem bestimmten Back-End-Pod fehlgeschlagen sind. |
Hinweis
Nur bestimmte Back-End-Pufferpools, insbesondere die dynamischen Pufferpools mit dem Namen "Reader", verwenden das Feature für datenträgergestützte Nachrichtenpuffer. Diese Pools speichern Abonnentennachrichtenwarteschlangen und übertragen Elemente auf den Datenträger, wenn die Nutzung 75 % überschreitet.
Fehlerwiederherstellungsmetriken
Metrik | Beschreibung |
---|---|
aio_broker_store_transfer_batch_receiver_message_count | Diese Metrik meldet die Anzahl der Nachrichten, die vom Speicherübertragungsempfänger empfangen wurden. Diese Anzahl sollte der Anzahl von Nachrichten entsprechen, die vom Absender der Speicherübertragung gesendet wurden. |
aio_broker_store_transfer_batch_sender_transfer_bytes | Diese Metrik meldet die Anzahl der Bytes, die vom Absender der Speicherübertragung gesendet wurden. |
aio_broker_store_transfer_batch_sender_message_count | Diese Metrik meldet die Anzahl der Nachrichten, die vom Absender der Speicherübertragung gesendet wurden. |
aio_broker_store_transfer_ack_event_receiver_message_count | Diese Metrik meldet die Anzahl der vom Speicherübertragungsempfänger empfangenen Ack-Ereignisnachrichten. Diese Anzahl sollte der Anzahl von Ack-Ereignisnachrichten entsprechen, die vom Absender der Speicherübertragung gesendet werden. |
aio_broker_store_transfer_ack_event_sender_message_count | Diese Metrik meldet die Anzahl von Ack-Ereignisnachrichten, die vom Absender der Speicherübertragung gesendet wurden. |
aio_broker_store_transfer_ack_event_sender_transfer_bytes | Diese Metrik meldet die Anzahl der Bytes, die vom Speicherübertragungs-Absender für Ack-Ereignisse gesendet wurden. |
aio_broker_store_transfer_patch_tracker_receiver_message_count | Diese Metrik meldet die Anzahl der Patch-Tracker-Nachrichten, die vom Speicherübertragungsempfänger empfangen wurden. Diese Anzahl sollte der Anzahl von Patch-Tracker-Nachrichten entsprechen, die vom Absender der Speicherübertragung gesendet wurden. |
aio_broker_store_transfer_patch_tracker_sender_message_count | Diese Metrik meldet die Anzahl der Patch-Tracker-Nachrichten, die vom Absender der Speicherübertragung gesendet wurden. |
Entwicklermetriken
Diese Metriken sind nützlich für das Entwicklerdebugging.
Metrik | Beschreibung |
---|---|
aio_broker_patch_tracker_held_patches | Diese Metrik meldet, wie viele Patches derzeit innerhalb eines Knotens in einer Kette gehalten werden. |
aio_broker_ack_handler_pending_transactions | Diese Metrik meldet, wie viele Transaktionen derzeit im Ack-Handler ausstehen. |
aio_broker_client_connected | Diese Metrik meldet, wie viele Clients verbunden sind. |
aio_broker_client_disconnected | Diese Metrik meldet, wie viele Clients getrennt sind. |
aio_broker_client_removed | Diese Metrik meldet, wie viele Clients entfernt werden. |
Zugehöriger Inhalt
- Konfigurieren Sie DIE DIAGNOSEeinstellungen des MQTT-Brokers.
- Konfigurieren des Einblicks