Udostępnij za pośrednictwem


Metryki dla brokera MQTT

Broker MQTT udostępnia zestaw metryk obserwacji, których można użyć do monitorowania i analizowania kondycji rozwiązania. W tym artykule opisano dostępne metryki dla brokera MQTT.

Aby skonfigurować opcje dla tych metryk, zobacz Konfigurowanie ustawień diagnostycznych brokera MQTT.

Właściwość użytkownika programu MQTT Connect metriccategory

Gdy klient nawiązuje połączenie z brokerem, może zawierać właściwość użytkownika wywoływaną metriccategory w pakiecie połączenia. Następnie broker taguje wszystkie metryki oparte na sesji (na przykład publikuje i subskrybuje) przy użyciu tej metriccategory funkcji jako category.

Jeśli na przykład sonda samodzielnego sprawdzania łączy się z usługą metriccategory=broker_selftest, broker taguje wszystkie metryki z tych sesji za pomocą polecenia category=broker_selftest.

Ta funkcja ułatwia pulpitom nawigacyjnym wyświetlanie źródeł ruchu bez problemów z kardynalnością tagowania metryk z tematami.

Sesje bez tagu metriccategory są oznaczane jako category=uncategorized.

Metryki obsługi komunikatów

Wszystkie metryki zawierają hostname tag, aby zidentyfikować zasobnik, który wygenerował metryki. Tagi wymienione w poszczególnych opisach metryk są dodawane do tego tagu.

Metryczne opis Tagi
aio_broker_publishes_received Na frontonie ta metryka reprezentuje liczbę przychodzących pakietów publikowania odbieranych od klientów. W przypadku zaplecza ta metryka reprezentuje liczbę komunikatów wewnętrznych wysyłanych z węzłów frontonu. category
aio_broker_publishes_sent Na frontonie ta metryka reprezentuje liczbę wychodzących pakietów publikowania wysyłanych do klientów. Jeśli wielu klientów jest subskrybowanych w tym samym temacie, ta metryka zlicza każdy wysłany komunikat, nawet jeśli ma ten sam ładunek. Ta liczba nie zlicza pakietów ack. W przypadku zaplecza ta metryka reprezentuje liczbę komunikatów wewnętrznych wysyłanych do węzłów frontonu. category
aio_broker_payload_bytes_received Suma ładunków wszystkich odebranych publikacji. Ta suma nie obejmuje rozmiaru właściwości ani samych pakietów publikowania. category
aio_broker_payload_bytes_sent Suma ładunków wszystkich wysłanych publikacji. Ta suma nie obejmuje rozmiaru właściwości ani samych pakietów publikowania. category
aio_broker_authentication_successes Ta metryka zlicza liczbę pomyślnych żądań uwierzytelniania. category
aio_broker_authentication_failures Ta metryka zlicza liczbę żądań uwierzytelnienia zakończonych niepowodzeniem. W przypadku serwera uwierzytelniania bez błędów, aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent category
aio_broker_authentication_deny Ta metryka zlicza liczbę odrzuconych żądań uwierzytelniania. category
aio_broker_authorization_allow Ta metryka zlicza pomyślnie żądania autoryzacji. Ta metryka zawsze powinna być mniejsza lub równa aio_broker_authentication_successes. category
aio_broker_authorization_deny Ta metryka odmówiono żądań autoryzacji. Ta metryka zawsze powinna być mniejsza lub równa aio_broker_authentication_successes. category
aio_broker_qos0_messages_dropped Ta metryka zlicza z dowolnego powodu liczbę porzuconych komunikatów QoS0. Kategoria direction to incoming lub outgoing. category, direction
aio_broker_backpressure_packets_rejected Ta metryka zlicza odrzucone pakiety z powodu backpressure. Pakiet jest odrzucany, jeśli system ma 97% pojemności.
aio_broker_store_retained_messages Ta metryka zlicza liczbę przechowywanych komunikatów w brokerze.
aio_broker_store_retained_bytes Ta metryka zlicza liczbę bajtów przechowywanych za pośrednictwem zachowanych komunikatów w brokerze.
aio_broker_store_will_messages Ta metryka zlicza liczbę komunikatów przechowywanych w brokerze.
aio_broker_store_will_bytes Ta metryka zlicza liczbę bajtów przechowywanych za pośrednictwem komunikatów na brokerze.
aio_broker_number_of_routes Zlicza trasy.
aio_broker_connect_route_replication_correctness Opisuje, czy żądanie połączenia od klienta testowego jest replikowane poprawnie wzdłuż określonej trasy.
aio_broker_connect_latency_route_ms Opisuje przedział czasu między klientem testowym, który wysyła pakiet CONNECT i odbiera pakiet CONNACK. Ta metryka jest generowana na trasę. Metryka jest generowana tylko wtedy, gdy połączenie zakończy się pomyślnie.
aio_broker_connect_latency_last_value_ms Szacowany p99 z connect_latency_route_ms.
aio_broker_connect_latency_mu_ms Średnia wartość .connect_latency_route_ms
aio_broker_connect_latency_sigma_ms Odchylenie standardowe .connect_latency_route_ms
aio_broker_subscribe_route_replication_correctness Opisuje, czy żądanie subskrybowania od klienta testowego jest replikowane poprawnie wzdłuż określonej trasy.
aio_broker_subscribe_latency_route_ms Opisuje przedział czasu między klientem testowym własnym wysyłającym pakiet SUBSKRYBUJ i odbierając pakiet SUBACK. Ta metryka jest generowana na trasę. Metryka jest generowana tylko wtedy, gdy subskrypcja zakończy się pomyślnie.
aio_broker_subscribe_latency_last_value_ms Szacowany p99 z subscribe_latency_route_ms.
aio_broker_subscribe_latency_mu_ms Średnia wartość .subscribe_latency_route_ms
aio_broker_subscribe_latency_sigma_ms Odchylenie standardowe .subscribe_latency_route_ms
aio_broker_unsubscribe_route_replication_correctness Opisuje, czy żądanie anulowania subskrypcji od klienta testowego jest replikowane poprawnie wzdłuż określonej trasy.
aio_broker_unsubscribe_latency_route_ms Opisuje przedział czasu między klientem testowym wysyłającym pakiet ANULUJ SUBSKRYPCJĘ i odbierając pakiet UNSUBACK. Ta metryka jest generowana na trasę. Metryka jest generowana tylko wtedy, gdy anulowanie subskrypcji zakończy się pomyślnie.
aio_broker_unsubscribe_latency_last_value_ms Szacowany p99 z unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_mu_ms Średnia wartość .unsubscribe_latency_route_ms
aio_broker_unsubscribe_latency_sigma_ms Odchylenie standardowe .subscribe_latency_route_ms
aio_broker_publish_route_replication_correctness Opisuje, czy żądanie anulowania subskrypcji od klienta testowego jest replikowane poprawnie wzdłuż określonej trasy.
aio_broker_publish_latency_route_ms Opisuje przedział czasu między klientem testowym wysyłającym pakiet PUBLISH i odbierając pakiet PUBACK. Ta metryka jest generowana na trasę. Metryka jest generowana tylko wtedy, gdy publikowanie zakończy się pomyślnie.
aio_broker_publish_latency_last_value_ms Szacowany p99 z publish_latency_route_ms.
aio_broker_publish_latency_mu_ms Średnia wartość .publish_latency_route_ms
aio_broker_publish_latency_sigma_ms Odchylenie standardowe .publish_latency_route_ms
aio_broker_payload_check_latency_last_value_ms Szacowana wartość p99 sprawdzania opóźnienia dla ostatniej wartości.
aio_broker_payload_check_latency_mu_ms Średnia wartość sprawdzania opóźnienia.
aio_broker_payload_check_latency_sigma_ms Odchylenie standardowe opóźnienia ładunku.
aio_broker_payload_check_total_messages_lost Liczba utraconych komunikatów całkowitego ładunku.
aio_broker_payload_check_total_messages_received Liczba odebranych komunikatów.
aio_broker_payload_check_total_messages_sent Liczba wysłanych komunikatów.
aio_broker_ping_correctness Opisuje, czy polecenie ping od klienta self-test działa poprawnie.
aio_broker_ping_latency_last_value_ms Szacowana wartość p99 operacji ping dla ostatniej wartości.
aio_broker_ping_latency_mu_ms Średnia wartość sprawdzania ping.
aio_broker_ping_latency_route_ms Opóźnienie ping w milisekundach dla określonej trasy.
aio_broker_ping_latency_sigma_ms Odchylenie standardowe opóźnienia operacji ping.
aio_broker_publishes_processed_count Opisuje liczbę przetworzonych komunikatów opublikowanych.
aio_broker_publishes_received_per_second Zlicza liczbę opublikowanych komunikatów odebranych na sekundę.
aio_broker_publishes_sent_per_second Zlicza liczbę wysłanych komunikatów na sekundę.

Metryki kondycji operatora brokera

Ten zestaw metryk śledzi stan kardynalności brokera. Każda żądana metryka jest sparowana z zgłoszoną metryką w celu wyświetlenia bieżącego stanu. Te metryki wskazują liczbę zasobników w dobrej kondycji z perspektywy brokera, co może różnić się od raportów platformy Kubernetes.

Jeśli na przykład węzeł zaplecza zostanie uruchomiony ponownie, ale nie połączy się ponownie z łańcuchem, może wystąpić rozbieżność raportów dotyczących kondycji. Platforma Kubernetes może zgłaszać zasobnik jako w dobrej kondycji, a broker zgłasza go jako wyłączony, ponieważ nie działa prawidłowo.

Żądana metryka Zgłoszona metryka
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

Uwaga

backend_vertical_chain_current raportuje liczbę węzłów w dobrej kondycji w najmniej zdrowym łańcuchu. Jeśli na przykład oczekiwana długość łańcucha wynosi 4, a trzy łańcuchy mają 4 węzły w dobrej kondycji, podczas gdy jeden łańcuch ma tylko 2 węzły w dobrej kondycji, backend_vertical_chain_current zgłaszałby 2.

Metryki połączeń i subskrypcji

Te metryki zapewniają wgląd w połączenia i subskrypcje brokera.

Metryczne opis Tagi
aio_broker_total_sessions W przypadku brokera frontonu i pojedynczego węzła ta metryka reprezentuje liczbę sesji klienta. Ta liczba nie obejmuje rozłączonych sesji trwałych, ponieważ klient może ponownie nawiązać połączenie z innym węzłem frontonu. W przypadku zaplecza ta metryka reprezentuje jego połączenia z innymi węzłami w łańcuchu. Na operatorze ta metryka reprezentuje liczbę połączonych węzłów frontonu i zaplecza. W przypadku serwera uwierzytelniania ta metryka reprezentuje liczbę połączonych procesów roboczych frontonu (1 na fronton na wątek). mqtt_version: [v3/v5]
Tagi tylko węzła zaplecza:
is_tail: [true/false]
chain_id: [n]
aio_broker_store_total_sessions Ta metryka reprezentuje liczbę sesji w łańcuchu zaplecza. Węzły zaplecza w tym samym łańcuchu powinny zgłaszać tę samą liczbę sesji, a suma każdego łańcucha powinna być równa sumie total_sessions frontonu. is_persistent: [true/false]
is_tail: [true/false]
chain_id: [n]
aio_broker_connected_sessions Tak samo jak aio_broker_total_sessions, z wyjątkiem tylko sesji, które mają aktywne połączenie.
aio_broker_store_connected_sessions Tak samo jak aio_broker_store_total_sessions, z wyjątkiem tylko sesji, które mają aktywne połączenie. Jeśli is_persistent ma wartość false, ta liczba powinna być równa łącznej sesji.
aio_broker_total_subscriptions Na frontonie ta metryka reprezentuje liczbę subskrypcji aktualnie połączonych sesji. Ta liczba nie obejmuje rozłączonych sesji trwałych, ponieważ klient może ponownie nawiązać połączenie z innym węzłem frontonu. Na operatorze ta metryka reprezentuje węzły frontonu i zaplecza. W przypadku serwera uwierzytelniania ta metryka reprezentuje liczbę połączonych procesów roboczych frontonu (1 na fronton na wątek).
aio_broker_store_total_subscriptions Ta metryka reprezentuje liczbę subskrypcji w łańcuchu zaplecza. Węzły zaplecza w tym samym łańcuchu powinny zgłaszać tę samą liczbę subskrypcji. Ta liczba nie musi być zgodna z frontonem total_subscriptions, ponieważ ta metryka śledzi również rozłączone trwałe sesje.

Metryki magazynu stanów

Ten zestaw metryk śledzi ogólny stan magazynu stanów.

Metryczne opis Tagi
aio_broker_state_store_deletions Ta metryka zlicza odebrane żądania klucza usuwania, w tym zarówno pomyślne usunięcia, jak i błędy.
aio_broker_state_store_insertions Ta metryka zlicza odebrane żądania wstawiania nowego klucza, w tym zarówno pomyślne wstawienie, jak i błędy.
aio_broker_state_store_keynotify_requests Ta metryka zlicza liczbę żądań monitorowania odebranych kluczowych zmian (KEYNOTIFY), w tym zarówno pomyślnych modyfikacji, jak i błędów.
aio_broker_state_store_modifications Ta metryka zlicza odebrane żądania modyfikacji kluczy, w tym zarówno pomyślne modyfikacje, jak i błędy.
aio_broker_state_store_notifications_sent Ta metryka zlicza komunikaty powiadomień, które magazyn stanów wysyła, gdy zmienia się wartość klucza, a klient jest rejestrowany za pośrednictwem funkcji KEYNOTIFY.
aio_broker_state_store_retrievals Ta metryka zlicza odebrane żądania pobierania wartości klucza, w tym zarówno pomyślne pobieranie, jak i błędy.

Metryki buforu komunikatów oparte na dysku

Te metryki zapewniają wgląd w bufor komunikatów oparty na dysku.

Metryczne opis Tagi
aio_broker_buffer_pool_used_percent Raportuje procent używanego buforu dla pojedynczej puli frontonu lub zaplecza. name
aio_broker_disk_transfers_completed Raportuje liczbę transferów dysków zakończonych na danym zasobniku zaplecza. Śledzi łączną liczbę publikacji przesłanych z puli na dysk.
aio_broker_disk_transfers_failed Zgłasza liczbę transferów dysków, które nie powiodły się na danym zasobniku zaplecza.

Uwaga

Tylko niektóre pule zaplecza, w szczególności dynamiczne o nazwie "reader", używają funkcji buforu komunikatów opartego na dysku. Te pule przechowują kolejki komunikatów subskrybentów i przesyłają elementy na dysk, gdy użycie przekracza 75%.

Metryki odzyskiwania błędów

Metryczne opis
aio_broker_store_transfer_batch_receiver_message_count Ta metryka zgłasza liczbę komunikatów odebranych przez odbiornik transferu magazynu. Ta liczba powinna być równa liczbie komunikatów wysyłanych przez nadawcę transferu sklepu.
aio_broker_store_transfer_batch_sender_transfer_bytes Ta metryka zgłasza liczbę bajtów wysłanych przez nadawcę transferu magazynu.
aio_broker_store_transfer_batch_sender_message_count Ta metryka zgłasza liczbę komunikatów wysyłanych przez nadawcę transferu magazynu.
aio_broker_store_transfer_ack_event_receiver_message_count Ta metryka zgłasza liczbę komunikatów zdarzeń ack odebranych przez odbiornik transferu magazynu. Ta liczba powinna być równa liczbie komunikatów zdarzeń ack wysyłanych przez nadawcę transferu magazynu.
aio_broker_store_transfer_ack_event_sender_message_count Ta metryka zgłasza liczbę komunikatów zdarzeń ack wysyłanych przez nadawcę transferu magazynu.
aio_broker_store_transfer_ack_event_sender_transfer_bytes Ta metryka raportuje liczbę bajtów wysłanych przez nadawcę transferu magazynu dla zdarzeń ack.
aio_broker_store_transfer_patch_tracker_receiver_message_count Ta metryka zgłasza liczbę komunikatów śledzenia poprawek odebranych przez odbiornik transferu magazynu. Ta liczba powinna być równa liczbie komunikatów śledzenia poprawek wysyłanych przez nadawcę transferu sklepu.
aio_broker_store_transfer_patch_tracker_sender_message_count Ta metryka zgłasza liczbę komunikatów śledzenia poprawek wysyłanych przez nadawcę transferu sklepu.

Metryki dla deweloperów

Te metryki są przydatne do debugowania deweloperów.

Metryczne opis
aio_broker_patch_tracker_held_patches Ta metryka zgłasza, ile poprawek jest obecnie przechowywanych w węźle w łańcuchu.
aio_broker_ack_handler_pending_transactions Ta metryka raportuje, ile transakcji jest obecnie oczekujących w procedurze obsługi ack.
aio_broker_client_connected Ta metryka raportuje, ile klientów jest połączonych.
aio_broker_client_disconnected Ta metryka zgłasza, ile klientów jest rozłączonych.
aio_broker_client_removed Ta metryka zgłasza liczbę klientów, którzy są usuwani.