Поделиться через


Метрики для брокера MQTT

Брокер MQTT предоставляет набор метрик наблюдаемости, которые можно использовать для мониторинга и анализа работоспособности решения. В этой статье описываются доступные метрики для брокера MQTT.

Сведения о настройке параметров для этих метрик см. в разделе "Настройка параметров диагностики брокера MQTT".

Свойство пользователя MQTT Connect metriccategory

Когда клиент подключается к брокеру, он может включать свойство пользователя, вызываемое metriccategory в пакет подключения. Затем брокер тегирует все метрики на основе сеансов (например, публикации и подписки) с этим metriccategory значением category.

Например, если проверка самопроверки подключается к metriccategory=broker_selftest, брокер тегирует все метрики из этих сеансов category=broker_selftest.

Эта функция помогает панелям мониторинга отображать источники трафика без проблем с высокой кратностью метрик с разделами.

Сеансы без metriccategory тегов помечены как category=uncategorized.

Метрики обмена сообщениями

Все метрики включают hostname тег для идентификации модуля pod, создающего метрики. Теги, перечисленные в отдельных описаниях метрик, добавляются в этот тег.

Метрическая Description Теги
aio_broker_publishes_received На интерфейсе эта метрика представляет количество входящих пакетов публикации от клиентов. Для серверной части эта метрика представляет количество внутренних сообщений, отправляемых с внешних узлов. category
aio_broker_publishes_sent На интерфейсе эта метрика представляет, сколько исходящих пакетов публикации отправляются клиентам. Если на один и тот же раздел подписано несколько клиентов, эта метрика подсчитывает каждое сообщение, даже если они имеют одинаковые полезные данные. Это число не подсчитывает пакетыack. Для серверной части эта метрика представляет количество внутренних сообщений, отправляемых на внешние узлы. category
aio_broker_payload_bytes_received Сумма полезных данных всех полученных публикаций. Эта сумма не включает размер свойств или сами пакеты публикации. category
aio_broker_payload_bytes_sent Сумма полезных данных всех опубликованных публикаций. Эта сумма не включает размер свойств или сами пакеты публикации. category
aio_broker_authentication_successes Эта метрика подсчитывает количество успешных запросов проверки подлинности. category
aio_broker_authentication_failures Эта метрика подсчитывает количество неудачных запросов проверки подлинности. Для сервера без ошибок проверки подлинности aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent category
aio_broker_authentication_deny Эта метрика подсчитывает количество отклоненных запросов проверки подлинности. category
aio_broker_authorization_allow Эта метрика подсчитывает успешно запросы авторизации. Эта метрика всегда должна быть меньше или равной aio_broker_authentication_successes. category
aio_broker_authorization_deny Это число метрик отказано в запросах на авторизацию. Эта метрика всегда должна быть меньше или равной aio_broker_authentication_successes. category
aio_broker_qos0_messages_dropped Эта метрика подсчитывает количество удаленных сообщений QoS0 по какой-либо причине. direction Категория либо incoming outgoing. category, direction
aio_broker_backpressure_packets_rejected Эта метрика подсчитывает количество отклоненных пакетов из-за обратного выражения. Пакет отклоняется, если система составляет 97 % емкости.
aio_broker_store_retained_messages Эта метрика рассчитывает, сколько сохраненных сообщений хранится в брокере.
aio_broker_store_retained_bytes Эта метрика подсчитывает количество байтов, хранящихся через сохраненные сообщения в брокере.
aio_broker_store_will_messages Эта метрика подсчитывает количество сообщений, хранящихся в брокере.
aio_broker_store_will_bytes Эта метрика подсчитывает количество байтов, хранящихся через сообщения брокера.
aio_broker_number_of_routes Подсчитывает количество маршрутов.
aio_broker_connect_route_replication_correctness Описывает, реплицируется ли запрос подключения от клиента самостоятельного тестирования по определенному маршруту.
aio_broker_connect_latency_route_ms Описывает интервал времени между клиентом самообслуживания, отправляющим пакет CONNECT, и получением пакета CONNACK. Эта метрика создается для каждого маршрута. Метрика создается только в том случае, если подключение выполнено успешно.
aio_broker_connect_latency_last_value_ms Предполагаемое значение p99 connect_latency_route_ms.
aio_broker_connect_latency_mu_ms Среднее значение connect_latency_route_ms.
aio_broker_connect_latency_sigma_ms Стандартное отклонение connect_latency_route_ms.
aio_broker_subscribe_route_replication_correctness Описывает, реплицируется ли запрос подписки от клиента самостоятельного тестирования по определенному маршруту.
aio_broker_subscribe_latency_route_ms Описывает интервал времени между клиентом самообслуживания, отправляющим пакет SUBSCRIBE, и получением пакета SUBACK. Эта метрика создается для каждого маршрута. Метрика создается только в том случае, если подписка выполнена успешно.
aio_broker_subscribe_latency_last_value_ms Предполагаемое значение p99 subscribe_latency_route_ms.
aio_broker_subscribe_latency_mu_ms Среднее значение subscribe_latency_route_ms.
aio_broker_subscribe_latency_sigma_ms Стандартное отклонение subscribe_latency_route_ms.
aio_broker_unsubscribe_route_replication_correctness Описывает, реплицируется ли запрос отмены подписки от клиента самостоятельного тестирования по определенному маршруту.
aio_broker_unsubscribe_latency_route_ms Описывает интервал времени между клиентом самообслуживания, отправляющим пакет UNSUBSCRIBE и получающим пакет UNSUBACK. Эта метрика создается для каждого маршрута. Метрика создается только в том случае, если отмена подписки выполнена успешно.
aio_broker_unsubscribe_latency_last_value_ms Предполагаемое значение p99 unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_mu_ms Среднее значение unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_sigma_ms Стандартное отклонение subscribe_latency_route_ms.
aio_broker_publish_route_replication_correctness Описывает, реплицируется ли запрос отмены подписки от клиента самостоятельного тестирования по определенному маршруту.
aio_broker_publish_latency_route_ms Описывает интервал времени между клиентом самообслуживания, отправляющим пакет PUBLISH, и получением пакета PUBACK. Эта метрика создается для каждого маршрута. Метрика создается только в том случае, если публикация выполнена успешно.
aio_broker_publish_latency_last_value_ms Предполагаемое значение p99 publish_latency_route_ms.
aio_broker_publish_latency_mu_ms Среднее значение publish_latency_route_ms.
aio_broker_publish_latency_sigma_ms Стандартное отклонение publish_latency_route_ms.
aio_broker_payload_check_latency_last_value_ms Оценочная проверка задержки последнего значения p99.
aio_broker_payload_check_latency_mu_ms Среднее значение проверки задержки.
aio_broker_payload_check_latency_sigma_ms Стандартное отклонение задержки полезных данных.
aio_broker_payload_check_total_messages_lost Количество потерянных полезных данных.
aio_broker_payload_check_total_messages_received Количество полученных сообщений.
aio_broker_payload_check_total_messages_sent Количество отправленных сообщений.
aio_broker_ping_correctness Описывает правильность работы ping от клиента самостоятельного тестирования.
aio_broker_ping_latency_last_value_ms Предполагаемое значение p99 операции проверки ping последнего значения.
aio_broker_ping_latency_mu_ms Среднее значение проверки ping.
aio_broker_ping_latency_route_ms Задержка ping в миллисекундах для определенного маршрута.
aio_broker_ping_latency_sigma_ms Стандартное отклонение задержки операции ping.
aio_broker_publishes_processed_count Описывает обработанное количество опубликованных сообщений.
aio_broker_publishes_received_per_second Подсчитывает количество опубликованных сообщений, полученных в секунду.
aio_broker_publishes_sent_per_second Подсчитывает количество отправленных сообщений в секунду.

Метрики работоспособности оператора Брокера

Этот набор метрик отслеживает состояние кратности брокера. Каждая требуемая метрика связана с сообщаемой метрикой для отображения текущего состояния. Эти метрики указывают количество работоспособных модулей pod с точки зрения брокера, которые могут отличаться от отчетов Kubernetes.

Например, если внутренний узел перезапускается, но не подключается к его цепочке, может возникнуть несоответствие в отчетах о работоспособности. Kubernetes может сообщать pod как работоспособный, в то время как брокер сообщает об этом как вниз, так как он не работает должным образом.

Желаемая метрика Сообщаемая метрика
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

Примечание.

backend_vertical_chain_current сообщает о количестве здоровых узлов в наименее работоспособной цепочке. Например, если ожидаемая длина цепочки равна 4, а три цепи имеют 4 здоровых узла, а одна цепочка имеет только 2 здоровых узла, backend_vertical_chain_current сообщит 2.

Метрики подключения и подписки

Эти метрики обеспечивают наблюдаемость подключений и подписок брокера.

Метрическая Description Теги
aio_broker_total_sessions На интерфейсном и одноузловом брокере эта метрика представляет количество клиентских сеансов. Это число не включает отключенные постоянные сеансы, так как клиент может повторно подключиться к другому интерфейсному узлу. Для серверной части эта метрика представляет свои подключения к другим узлам в цепочке. В операторе эта метрика представляет количество подключенных внешних и внутренних узлов. Для сервера проверки подлинности эта метрика представляет количество подключенных рабочих ролей внешнего интерфейса (1 на интерфейс на поток). mqtt_version: [v3/v5]
Только теги внутреннего узла:
is_tail: [true/false]
chain_id: [n]
aio_broker_store_total_sessions Эта метрика представляет количество сеансов в внутренней цепочке. Серверные узлы в той же цепочке должны сообщать о том же количестве сеансов, а сумма каждой цепочки должна совпадать с суммой total_sessions внешнего интерфейса. is_persistent: [true/false]
is_tail: [true/false]
chain_id: [n]
aio_broker_connected_sessions То же самое, что aio_broker_total_sessionsи только сеансы с активным подключением.
aio_broker_store_connected_sessions То же самое, что aio_broker_store_total_sessionsи только сеансы с активным подключением. Если is_persistent значение равно false, это число должно быть равно общему сеансу.
aio_broker_total_subscriptions На интерфейсе эта метрика представляет количество подписок, которые в настоящее время подключены к сеансам. Это число не включает отключенные постоянные сеансы, так как клиент может повторно подключиться к другому интерфейсному узлу. В операторе эта метрика представляет внешние и внутренние узлы. Для сервера проверки подлинности эта метрика представляет количество подключенных рабочих ролей внешнего интерфейса (1 на интерфейс на поток).
aio_broker_store_total_subscriptions Эта метрика представляет количество подписок в внутренней цепочке. Серверные узлы в той же цепочке должны сообщать о том же количестве подписок. Это число не обязательно соответствует интерфейсу total_subscriptions, так как эта метрика отслеживает отключенные постоянные сеансы, а также.

Метрики хранилища состояний

Этот набор метрик отслеживает общее состояние хранилища состояний.

Метрическая Description Теги
aio_broker_state_store_deletions Эта метрика подсчитывает количество полученных запросов на удаление ключей, включая успешные удаления и ошибки.
aio_broker_state_store_insertions Эта метрика подсчитывает количество полученных запросов на вставку ключей, включая успешные вставки и ошибки.
aio_broker_state_store_keynotify_requests Эта метрика подсчитывает количество запросов на мониторинг ключевых изменений (KEYNOTIFY), включая успешные изменения и ошибки.
aio_broker_state_store_modifications Эта метрика подсчитывает количество полученных запросов на изменение ключей, включая как успешные изменения, так и ошибки.
aio_broker_state_store_notifications_sent Эта метрика подсчитывает количество сообщений уведомлений, отправляемых хранилищем состояний при изменении значения ключа, и клиент регистрируется с помощью KEYNOTIFY.
aio_broker_state_store_retrievals Эта метрика подсчитывает количество полученных запросов на получение ключевых значений, включая как успешные извлечение, так и ошибки.

Метрики буфера сообщений с поддержкой диска

Эти метрики обеспечивают наблюдаемость буфера сообщений с поддержкой диска.

Метрическая Description Теги
aio_broker_buffer_pool_used_percent Сообщает процент используемого буфера для одного внешнего или внутреннего буферного пула. name
aio_broker_disk_transfers_completed Сообщает о количестве передачи дисков, завершенных на заданном серверном модуле pod. Отслеживает общее количество публикаций, передаваемых из буферного пула на диск.
aio_broker_disk_transfers_failed Сообщает о количестве передачи дисков, завершившемся сбоем в заданном серверном модуле pod.

Примечание.

Используйте только некоторые внутренние пулы буферов, в частности динамические с именем "читатель", используйте функцию буфера сообщений с поддержкой диска. Эти пулы хранят очереди сообщений подписчика и передают элементы на диск при превышении 75 %.

Метрики восстановления сбоев

Метрическая Description
aio_broker_store_transfer_batch_receiver_message_count Эта метрика сообщает количество сообщений, полученных получателем передачи хранилища. Это число должно быть равно количеству сообщений, отправляемых отправителем передачи хранилища.
aio_broker_store_transfer_batch_sender_transfer_bytes Эта метрика сообщает количество байтов, отправленных отправителем передачи хранилища.
aio_broker_store_transfer_batch_sender_message_count Эта метрика сообщает количество сообщений, отправленных отправителем передачи хранилища.
aio_broker_store_transfer_ack_event_receiver_message_count Эта метрика сообщает количество сообщений о событиях, полученных получателем передачи магазина. Это число должно быть равно количеству сообщений о событияхack, отправленных отправителем передачи магазина.
aio_broker_store_transfer_ack_event_sender_message_count Эта метрика сообщает количество сообщений о событияхack, отправленных отправителем передачи магазина.
aio_broker_store_transfer_ack_event_sender_transfer_bytes Эта метрика сообщает количество байтов, отправленных отправителем передачи хранилища для событий взлома.
aio_broker_store_transfer_patch_tracker_receiver_message_count Эта метрика сообщает количество сообщений отслеживания исправлений, полученных получателем передачи хранилища. Это число должно быть равно количеству сообщений отслеживания исправлений, отправленных отправителем передачи хранилища.
aio_broker_store_transfer_patch_tracker_sender_message_count Эта метрика сообщает количество сообщений средства отслеживания исправлений, отправленных отправителем передачи хранилища.

Метрики разработчика

Эти метрики полезны для отладки разработчиков.

Метрическая Description
aio_broker_patch_tracker_held_patches Эта метрика сообщает, сколько исправлений в настоящее время хранится в узле в цепочке.
aio_broker_ack_handler_pending_transactions Эта метрика сообщает, сколько транзакций в настоящее время ожидается в обработчике взлома.
aio_broker_client_connected Эта метрика сообщает, сколько клиентов подключено.
aio_broker_client_disconnected Эта метрика сообщает, сколько клиентов отключено.
aio_broker_client_removed Эта метрика сообщает, сколько клиентов удаляются.