Compartir a través de


Métricas para el agente MQTT

El agente MQTT proporciona un conjunto de métricas de observabilidad que puede usar para supervisar y analizar el estado de la solución. En este artículo se describen las métricas disponibles para el agente MQTT.

Para configurar las opciones de estas métricas, consulte Configuración de los valores de diagnóstico del agente MQTT.

Propiedad de usuario MQTT Connect metriccategory

Cuando un cliente se conecta al agente, puede incluir una propiedad de usuario llamada metriccategory en el paquete de conexión. A continuación, el agente etiqueta todas las métricas controladas por sesión (como publicar y suscribirse) con esto metriccategory como category.

Por ejemplo, si el sondeo de comprobación automática se conecta con metriccategory=broker_selftest, el agente etiqueta todas las métricas de estas sesiones con category=broker_selftest.

Esta característica ayuda a los paneles a mostrar orígenes de tráfico sin los problemas de cardinalidad alta de las métricas de etiquetado con temas.

Las sesiones sin un metriccategory se etiquetan como category=uncategorized.

Métricas de mensajería

Todas las métricas incluyen la hostname etiqueta para identificar el pod que generó las métricas. Las etiquetas enumeradas en las descripciones de métricas individuales se agregan a esta etiqueta.

Métrica Descripción Etiquetas
aio_broker_publishes_received En el front-end, esta métrica representa el número de paquetes de publicación entrantes que se reciben de los clientes. Para el back-end, esta métrica representa el número de mensajes internos que se envían desde los nodos de front-end. category
aio_broker_publishes_sent En el front-end, esta métrica representa el número de paquetes de publicación salientes que se envían a los clientes. Si se suscriben varios clientes al mismo tema, esta métrica cuenta cada mensaje enviado, incluso si tienen la misma carga. Este recuento no cuenta los paquetes de confirmación. Para el back-end, esta métrica representa el número de mensajes internos que se envían a los nodos de front-end. category
aio_broker_payload_bytes_received Suma de las cargas de todas las publicación recibidas. Esta suma no incluye el tamaño de las propiedades ni publicar paquetes por sí mismos. category
aio_broker_payload_bytes_sent Suma de las cargas de todas las publicación enviadas. Esta suma no incluye el tamaño de las propiedades ni publicar paquetes por sí mismos. category
aio_broker_authentication_successes Esta métrica cuenta el número de solicitudes de autenticación correctas. category
aio_broker_authentication_failures Esta métrica cuenta el número de solicitudes de autenticación con error. Para un servidor de autenticación sin errores, aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent category
aio_broker_authentication_deny Esta métrica cuenta el número de solicitudes de autenticación denegadas. category
aio_broker_authorization_allow Esta métrica cuenta correctamente las solicitudes de autorización. Esta métrica siempre debe ser menor o igual que aio_broker_authentication_successes. category
aio_broker_authorization_deny Esta métrica cuenta las solicitudes de autorización denegadas. Esta métrica siempre debe ser menor o igual que aio_broker_authentication_successes. category
aio_broker_qos0_messages_dropped Esta métrica cuenta el número de mensajes QoS0 descartados por cualquier motivo. La categoría direction es incoming o outgoing. category, direction
aio_broker_backpressure_packets_rejected Esta métrica cuenta el número de paquetes rechazados debido a la presión inversa. Se rechaza un paquete si el sistema tiene una capacidad del 97 %.
aio_broker_store_retained_messages Esta métrica cuenta cuántos mensajes retenidos se almacenan en el agente.
aio_broker_store_retained_bytes Esta métrica cuenta cuántos bytes se almacenan a través de mensajes retenidos en el agente.
aio_broker_store_will_messages Esta métrica cuenta cuántos mensajes se almacenarán en el agente.
aio_broker_store_will_bytes Esta métrica cuenta cuántos bytes se almacenan a través de mensajes en el agente.
aio_broker_number_of_routes Cuenta el número de rutas.
aio_broker_connect_route_replication_correctness Describe si una solicitud de conexión de un cliente de prueba automática se replica correctamente a lo largo de una ruta específica.
aio_broker_connect_latency_route_ms Describe el intervalo de tiempo entre que un cliente de prueba automática envía un paquete CONNECT y recibe un paquete CONNACK. Esta métrica se genera por ruta. La métrica solo se genera si CONNECT se realiza correctamente.
aio_broker_connect_latency_last_value_ms Valor estimado p99 de connect_latency_route_ms.
aio_broker_connect_latency_mu_ms Valor medio de connect_latency_route_ms.
aio_broker_connect_latency_sigma_ms Desviación estándar de connect_latency_route_ms.
aio_broker_subscribe_route_replication_correctness Describe si una solicitud de suscripción de un cliente de prueba automática se replica correctamente a lo largo de una ruta específica.
aio_broker_subscribe_latency_route_ms Describe el intervalo de tiempo entre que un cliente de prueba automática envía un paquete SUBSCRIBE y recibe un paquete SUBACK. Esta métrica se genera por ruta. La métrica solo se genera si SUBSCRIBE se realiza correctamente.
aio_broker_subscribe_latency_last_value_ms Valor estimado p99 de subscribe_latency_route_ms.
aio_broker_subscribe_latency_mu_ms Valor medio de subscribe_latency_route_ms.
aio_broker_subscribe_latency_sigma_ms Desviación estándar de subscribe_latency_route_ms.
aio_broker_unsubscribe_route_replication_correctness Describe si una solicitud de cancelación de suscripción de un cliente de prueba se replica correctamente a lo largo de una ruta específica.
aio_broker_unsubscribe_latency_route_ms Describe el intervalo de tiempo entre que un cliente de prueba automática envía un paquete UNSUBSCRIBE y recibe un paquete UNSUBACK. Esta métrica se genera por ruta. La métrica solo se genera si UNSUBSCRIBE se realiza correctamente.
aio_broker_unsubscribe_latency_last_value_ms Valor estimado p99 de unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_mu_ms Valor medio de unsubscribe_latency_route_ms.
aio_broker_unsubscribe_latency_sigma_ms Desviación estándar de subscribe_latency_route_ms.
aio_broker_publish_route_replication_correctness Describe si una solicitud de cancelación de suscripción de un cliente de prueba se replica correctamente a lo largo de una ruta específica.
aio_broker_publish_latency_route_ms Describe el intervalo de tiempo entre que un cliente de prueba automática envía un paquete PUBLISH y recibe un paquete PUBACK. Esta métrica se genera por ruta. La métrica solo se genera si PUBLISH se realiza correctamente.
aio_broker_publish_latency_last_value_ms Valor estimado p99 de publish_latency_route_ms.
aio_broker_publish_latency_mu_ms Valor medio de publish_latency_route_ms.
aio_broker_publish_latency_sigma_ms Desviación estándar de publish_latency_route_ms.
aio_broker_payload_check_latency_last_value_ms p99 estimado de comprobación de latencia del último valor.
aio_broker_payload_check_latency_mu_ms Valor medio de la comprobación de latencia.
aio_broker_payload_check_latency_sigma_ms Desviación estándar de la latencia de la carga.
aio_broker_payload_check_total_messages_lost Recuento de la carga total de mensajes perdidos.
aio_broker_payload_check_total_messages_received Recuento del número total de mensajes recibidos.
aio_broker_payload_check_total_messages_sent Recuento del número total de mensajes enviados.
aio_broker_ping_correctness Describe si el ping del cliente de prueba automática funciona correctamente.
aio_broker_ping_latency_last_value_ms Valor estimado p99 de operación de ping del último valor.
aio_broker_ping_latency_mu_ms Valor medio de la comprobación de ping.
aio_broker_ping_latency_route_ms Latencia de ping en milisegundos para una ruta específica.
aio_broker_ping_latency_sigma_ms Desviación estándar de la latencia de la operación de ping.
aio_broker_publishes_processed_count Describe los recuentos procesados de mensajes publicados.
aio_broker_publishes_received_per_second Cuenta el número de mensajes publicados recibidos por segundo.
aio_broker_publishes_sent_per_second Cuenta el número de mensajes enviados recibidos por segundo.

Métricas de mantenimiento del operador de Broker

Este conjunto de métricas realiza un seguimiento del estado de cardinalidad del agente. Cada métrica deseada se empareja con una métrica notificada para mostrar el estado actual. Estas métricas indican el número de pods correctos desde la perspectiva del agente, que puede diferir de los informes de Kubernetes.

Por ejemplo, si un nodo back-end se reinicia pero no se vuelve a conectar a su cadena, puede haber una discrepancia en los informes de estado. Kubernetes puede notificar el pod como correcto, mientras que el agente lo notifica como inactivo porque no funciona correctamente.

Métrica deseada Métrica notificada
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

Nota:

backend_vertical_chain_current informa del número de nodos correctos en la cadena menos correcta. Por ejemplo, si la longitud esperada de la cadena es 4 y tres cadenas tienen 4 nodos correctos mientras que una cadena tiene solo 2 nodos correctos, backend_vertical_chain_current notificaría 2.

Métricas de conexión y suscripción

Estas métricas proporcionan observabilidad para las conexiones y suscripciones en el agente.

Métrica Descripción Etiquetas
aio_broker_total_sessions En el agente de front-end y el nodo único, esta métrica representa el número de sesiones de cliente que hay. Este recuento no incluye sesiones persistentes desconectadas, ya que un cliente podría volver a conectarse a otro nodo de front-end. Para el back-end, esta métrica representa sus conexiones a los otros nodos de su cadena. En el operador , esta métrica representa el número de nodos front-end y back-end conectados. Para el servidor de autenticación, esta métrica representa el número de trabajos de front-end conectados (1 por front-end por subproceso). mqtt_version: [v3/v5]
Etiquetas solo de nodo back-end:
is_tail: [true/false]
chain_id: [n]
aio_broker_store_total_sessions Esta métrica representa cuántas sesiones están en la cadena de back-end. Los nodos back-end de la misma cadena deben notificar el mismo número de sesiones y la suma de cada cadena debe ser igual a la suma de la total_sessions del front-end. is_persistent: [true/false]
is_tail: [true/false]
chain_id: [n]
aio_broker_connected_sessions Igual que aio_broker_total_sessions, excepto solo las sesiones que tienen una conexión activa.
aio_broker_store_connected_sessions Igual que aio_broker_store_total_sessions, excepto solo las sesiones que tienen una conexión activa. Si is_persistent es false, este recuento debe ser igual al total de sesiones.
aio_broker_total_subscriptions En el front-end, esta métrica representa cuántas suscripciones tienen las sesiones conectadas actualmente. Este recuento no incluye sesiones persistentes desconectadas, ya que un cliente podría volver a conectarse a otro nodo de front-end. En el operador , esta métrica representa los nodos front-end y back-end. Para el servidor de autenticación, esta métrica representa el número de trabajos de front-end conectados (1 por front-end por subproceso).
aio_broker_store_total_subscriptions Esta métrica representa cuántas suscripciones están en la cadena de back-end. Los nodos de back-end de la misma cadena deben notificar el mismo número de suscripciones. Este recuento no coincide necesariamente con el de total_subscriptionsfront-end, ya que esta métrica realiza un seguimiento de las sesiones persistentes desconectadas también.

Métricas del almacén de estado

Este conjunto de métricas realiza un seguimiento del estado general del almacén de estado.

Métrica Descripción Etiquetas
aio_broker_state_store_deletions Esta métrica cuenta el número de solicitudes de clave de eliminación recibidas, incluidas las eliminaciones correctas y los errores.
aio_broker_state_store_insertions Esta métrica cuenta el número de solicitudes de inserción de claves nuevas recibidas, incluidas las inserciones y errores correctos.
aio_broker_state_store_keynotify_requests Esta métrica cuenta el número de solicitudes para supervisar los cambios clave (KEYNOTIFY) recibidos, incluidas las modificaciones y los errores correctos.
aio_broker_state_store_modifications Esta métrica cuenta el número de solicitudes de modificación de clave recibidas, incluidas las modificaciones correctas y los errores.
aio_broker_state_store_notifications_sent Esta métrica cuenta el número de mensajes de notificación que envía el almacén de estado cuando cambia un valor de clave y un cliente se registran a través de KEYNOTIFY.
aio_broker_state_store_retrievals Esta métrica cuenta el número de solicitudes de recuperación de valores clave recibidas, incluidas las recuperaciones y los errores correctos.

Métricas de búfer de mensajes con respaldo en disco

Estas métricas proporcionan observabilidad para el búfer de mensajes respaldados por disco.

Métrica Descripción Etiquetas
aio_broker_buffer_pool_used_percent Informa del porcentaje de búfer usado para un único grupo de búferes de front-end o back-end. name
aio_broker_disk_transfers_completed Informa del número de transferencias de disco completadas en un pod back-end determinado. Realiza un seguimiento del número total de publicación transferidas de un grupo de búferes al disco.
aio_broker_disk_transfers_failed Informa del número de transferencias de disco que no se pudieron realizar en un pod back-end determinado.

Nota:

Solo determinados grupos de búferes de back-end, específicamente los dinámicos denominados "lector", usan la característica de búfer de mensajes con respaldo en disco. Estos grupos almacenan colas de mensajes de suscriptor y transfieren elementos al disco cuando el uso supera el 75 %.

Métricas de recuperación de errores

Métrica Descripción
aio_broker_store_transfer_batch_receiver_message_count Esta métrica informa del número de mensajes recibidos por el receptor de transferencia de almacén. Este recuento debe ser igual al número de mensajes enviados por el remitente de transferencia del almacén.
aio_broker_store_transfer_batch_sender_transfer_bytes Esta métrica informa del número de bytes enviados por el remitente de transferencia de almacén.
aio_broker_store_transfer_batch_sender_message_count Esta métrica informa del número de mensajes enviados por el remitente de transferencia de almacén.
aio_broker_store_transfer_ack_event_receiver_message_count Esta métrica informa del número de mensajes de evento de confirmación recibidos por el receptor de transferencia del almacén. Este recuento debe ser igual al número de mensajes de evento de confirmación enviados por el remitente de la transferencia del almacén.
aio_broker_store_transfer_ack_event_sender_message_count Esta métrica informa del número de mensajes de evento de confirmación enviados por el remitente de la transferencia del almacén.
aio_broker_store_transfer_ack_event_sender_transfer_bytes Esta métrica informa del número de bytes enviados por el remitente de transferencia de almacén para eventos de confirmación.
aio_broker_store_transfer_patch_tracker_receiver_message_count Esta métrica informa del número de mensajes de seguimiento de revisiones recibidos por el receptor de transferencia de almacén. Este recuento debe ser igual al número de mensajes de seguimiento de revisiones enviados por el remitente de la transferencia del almacén.
aio_broker_store_transfer_patch_tracker_sender_message_count Esta métrica informa del número de mensajes de seguimiento de revisiones enviados por el remitente de transferencia de la tienda.

Métricas del desarrollador

Estas métricas son útiles para la depuración del desarrollador.

Métrica Descripción
aio_broker_patch_tracker_held_patches Esta métrica informa del número de revisiones que se mantienen actualmente dentro de un nodo de una cadena.
aio_broker_ack_handler_pending_transactions Esta métrica informa de cuántas transacciones están pendientes actualmente en el controlador de confirmación.
aio_broker_client_connected Esta métrica informa del número de clientes conectados.
aio_broker_client_disconnected Esta métrica informa del número de clientes que se desconectan.
aio_broker_client_removed Esta métrica informa del número de clientes que se quitan.