Freigeben über


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_successessein. category
aio_broker_authorization_deny Diese Metrik zählt die Anzahl der verweigerten Autorisierungsanforderungen. Diese Metrik sollte immer kleiner oder gleich aio_broker_authentication_successessein. 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.