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. |
Powiązana zawartość
- Skonfiguruj ustawienia diagnostyczne brokera MQTT.
- Konfigurowanie możliwości obserwowania