Métricas para o broker MQTT
O corretor MQTT fornece um conjunto de métricas de observabilidade que você pode usar para monitorar e analisar a integridade de sua solução. Este artigo descreve as métricas disponíveis para o broker MQTT.
Para configurar opções para essas métricas, consulte Configurar configurações de diagnóstico do agente MQTT.
Propriedade do usuário MQTT Connect metriccategory
Quando um cliente se conecta ao broker, ele pode incluir uma propriedade de usuário chamada metriccategory
no pacote de conexão. Em seguida, o corretor marca todas as métricas orientadas por sessão (como publicações e assinaturas) com isso metriccategory
como category
.
Por exemplo, se o teste de autoverificação se conectar com metriccategory=broker_selftest
o , o broker marcará todas as métricas dessas sessões com category=broker_selftest
.
Esse recurso ajuda os painéis a mostrar fontes de tráfego sem os problemas de alta cardinalidade de marcar métricas com tópicos.
As sessões sem um metriccategory
são marcadas como category=uncategorized
.
Métricas de mensagens
Todas as métricas incluem a hostname
tag para identificar o pod que gerou as métricas. As tags listadas nas descrições de métricas individuais são adicionadas a essa tag.
Métrico | Description | Etiquetas |
---|---|---|
aio_broker_publishes_received | No front-end, essa métrica representa quantos pacotes de publicação de entrada são recebidos dos clientes. Para o back-end, essa métrica representa quantas mensagens internas são enviadas dos nós de frontend. | category |
aio_broker_publishes_sent | No front-end, essa métrica representa quantos pacotes de publicação de saída são enviados aos clientes. Se vários clientes estiverem inscritos no mesmo tópico, essa métrica contará cada mensagem enviada, mesmo que eles tenham a mesma carga útil. Esta contagem não conta ack packets. Para o back-end, essa métrica representa quantas mensagens internas são enviadas para os nós de frontend. | category |
aio_broker_payload_bytes_received | A soma das cargas úteis de todas as publicações recebidas. Essa soma não inclui o tamanho das propriedades nem publica os próprios pacotes. | category |
aio_broker_payload_bytes_sent | A soma das cargas úteis de todas as publicações enviadas. Essa soma não inclui o tamanho das propriedades nem publica os próprios pacotes. | category |
aio_broker_authentication_successes | Essa métrica conta o número de solicitações de autenticação bem-sucedidas. | category |
aio_broker_authentication_failures | Essa métrica conta o número de solicitações de autenticação com falha. Para um servidor de autenticação sem erros, aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent |
category |
aio_broker_authentication_deny | Essa métrica conta o número de solicitações de autenticação negadas. | category |
aio_broker_authorization_allow | Essa métrica conta as solicitações de autorização bem-sucedidas. Esta métrica deve ser sempre menor ou igual a aio_broker_authentication_successes . |
category |
aio_broker_authorization_deny | Essa métrica contabiliza as solicitações de autorização negadas. Esta métrica deve ser sempre menor ou igual a aio_broker_authentication_successes . |
category |
aio_broker_qos0_messages_dropped | Essa métrica conta o número de mensagens QoS0 descartadas por qualquer motivo. A categoria direction é ou incoming outgoing . |
category , direction |
aio_broker_backpressure_packets_rejected | Essa métrica conta o número de pacotes rejeitados devido à pressão de retorno. Um pacote é rejeitado se o sistema estiver com 97% da capacidade. | |
aio_broker_store_retained_messages | Essa métrica conta quantas mensagens retidas são armazenadas no broker. | |
aio_broker_store_retained_bytes | Essa métrica conta quantos bytes são armazenados por meio de mensagens retidas no broker. | |
aio_broker_store_will_messages | Essa métrica conta quantas mensagens serão armazenadas no broker. | |
aio_broker_store_will_bytes | Essa métrica conta quantos bytes são armazenados por meio de mensagens de vontade no broker. | |
aio_broker_number_of_routes | Conta o número de rotas. | |
aio_broker_connect_route_replication_correctness | Descreve se uma solicitação de conexão de um cliente de autoteste é replicada corretamente ao longo de uma rota específica. | |
aio_broker_connect_latency_route_ms | Descreve o intervalo de tempo entre um cliente de autoteste enviando um pacote CONNECT e recebendo um pacote CONNACK. Essa métrica é gerada por rota. A métrica é gerada somente se um CONNECT for bem-sucedido. | |
aio_broker_connect_latency_last_value_ms | Uma estimativa p99 de connect_latency_route_ms . |
|
aio_broker_connect_latency_mu_ms | O valor médio de connect_latency_route_ms . |
|
aio_broker_connect_latency_sigma_ms | O desvio padrão de connect_latency_route_ms . |
|
aio_broker_subscribe_route_replication_correctness | Descreve se uma solicitação de assinatura de um cliente de autoteste é replicada corretamente ao longo de uma rota específica. | |
aio_broker_subscribe_latency_route_ms | Descreve o intervalo de tempo entre um cliente de autoteste enviando um pacote SUBSCRIBE e recebendo um pacote SUBACK. Essa métrica é gerada por rota. A métrica é gerada somente se um SUBSCRIBE for bem-sucedido. | |
aio_broker_subscribe_latency_last_value_ms | Uma estimativa p99 de subscribe_latency_route_ms . |
|
aio_broker_subscribe_latency_mu_ms | O valor médio de subscribe_latency_route_ms . |
|
aio_broker_subscribe_latency_sigma_ms | O desvio padrão de subscribe_latency_route_ms . |
|
aio_broker_unsubscribe_route_replication_correctness | Descreve se uma solicitação de cancelamento de inscrição de um cliente de autoteste é replicada corretamente ao longo de uma rota específica. | |
aio_broker_unsubscribe_latency_route_ms | Descreve o intervalo de tempo entre um cliente de autoteste enviando um pacote UNSUBSCRIBE e recebendo um pacote UNSUBACK. Essa métrica é gerada por rota. A métrica é gerada somente se um UNSUBSCRIBE for bem-sucedido. | |
aio_broker_unsubscribe_latency_last_value_ms | Uma estimativa p99 de unsubscribe_latency_route_ms . |
|
aio_broker_unsubscribe_latency_mu_ms | O valor médio de unsubscribe_latency_route_ms . |
|
aio_broker_unsubscribe_latency_sigma_ms | O desvio padrão de subscribe_latency_route_ms . |
|
aio_broker_publish_route_replication_correctness | Descreve se uma solicitação de cancelamento de inscrição de um cliente de autoteste é replicada corretamente ao longo de uma rota específica. | |
aio_broker_publish_latency_route_ms | Descreve o intervalo de tempo entre um cliente de autoteste enviando um pacote PUBLISH e recebendo um pacote PUBACK. Essa métrica é gerada por rota. A métrica é gerada somente se um PUBLISH for bem-sucedido. | |
aio_broker_publish_latency_last_value_ms | Uma estimativa p99 de publish_latency_route_ms . |
|
aio_broker_publish_latency_mu_ms | O valor médio de publish_latency_route_ms . |
|
aio_broker_publish_latency_sigma_ms | O desvio padrão de publish_latency_route_ms . |
|
aio_broker_payload_check_latency_last_value_ms | Um p99 estimado de verificação de latência do último valor. | |
aio_broker_payload_check_latency_mu_ms | O valor médio da verificação de latência. | |
aio_broker_payload_check_latency_sigma_ms | O desvio padrão da latência da carga útil. | |
aio_broker_payload_check_total_messages_lost | A contagem do total de mensagens de carga útil perdidas. | |
aio_broker_payload_check_total_messages_received | A contagem do número total de mensagens recebidas. | |
aio_broker_payload_check_total_messages_sent | A contagem do número total de mensagens enviadas. | |
aio_broker_ping_correctness | Descreve se o ping do cliente de autoteste funciona corretamente. | |
aio_broker_ping_latency_last_value_ms | Um p99 estimado da operação de ping do último valor. | |
aio_broker_ping_latency_mu_ms | O valor médio da verificação de ping. | |
aio_broker_ping_latency_route_ms | A latência de ping em milissegundos para uma rota específica. | |
aio_broker_ping_latency_sigma_ms | O desvio padrão de latência da operação de ping. | |
aio_broker_publishes_processed_count | Descreve as contagens processadas de mensagens publicadas. | |
aio_broker_publishes_received_per_second | Conta o número de mensagens publicadas recebidas por segundo. | |
aio_broker_publishes_sent_per_second | Conta o número de mensagens enviadas recebidas por segundo. |
Métricas de integridade do operador do corretor
Esse conjunto de métricas rastreia o estado de cardinalidade do corretor. Cada métrica desejada é emparelhada com uma métrica relatada para mostrar o estado atual. Essas métricas indicam o número de pods saudáveis da perspetiva do corretor, que pode diferir dos relatórios do Kubernetes.
Por exemplo, se um nó de back-end for reiniciado, mas não se reconectar à sua cadeia, pode haver uma discrepância nos relatórios de integridade. O Kubernetes pode relatar o pod como saudável, enquanto o corretor o relata como inativo porque ele não está funcionando corretamente.
Métrica desejada | Métrica reportada |
---|---|
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
Relata o número de nós saudáveis na cadeia menos saudável. Por exemplo, se o comprimento de cadeia esperado for 4, e três cadeias tiverem 4 nós saudáveis enquanto uma cadeia tiver apenas 2 nós saudáveis, backend_vertical_chain_current
relataria 2.
Métricas de conexão e assinatura
Essas métricas fornecem observabilidade para as conexões e assinaturas no broker.
Métrico | Description | Etiquetas |
---|---|---|
aio_broker_total_sessions | No frontend e no agente de nó único, essa métrica representa quantas sessões de cliente existem. Essa contagem não inclui sessões persistentes desconectadas, porque um cliente pode se reconectar a um nó de front-end diferente. Para o back-end, essa métrica representa suas conexões com os outros nós em sua cadeia. No operador, essa métrica representa quantos nós front-end e back-end estão conectados. Para o servidor de autenticação, essa métrica representa quantos trabalhadores de frontend estão conectados (1 por frontend por thread). | mqtt_version : [v3/v5] Somente nó de back-end Tags: is_tail : [verdadeiro/falso] chain_id : [n] |
aio_broker_store_total_sessions | Essa métrica representa quantas sessões estão na cadeia de back-end. Os nós de back-end na mesma cadeia devem relatar o mesmo número de sessões, e a soma de cada cadeia deve ser igual à soma dos total_sessions do frontend. | is_persistent : [verdadeiro/falso] is_tail : [verdadeiro/falso] chain_id : [n] |
aio_broker_connected_sessions | O mesmo que aio_broker_total_sessions , exceto apenas sessões que têm uma conexão ativa. |
|
aio_broker_store_connected_sessions | O mesmo que aio_broker_store_total_sessions , exceto apenas sessões que têm uma conexão ativa. Se is_persistent for false, essa contagem deve ser igual ao total de sessões. |
|
aio_broker_total_subscriptions | No frontend, essa métrica representa quantas assinaturas as sessões conectadas no momento têm. Essa contagem não inclui sessões persistentes desconectadas, porque um cliente pode se reconectar a um nó de front-end diferente. No operador, essa métrica representa os nós frontend e backend. Para o servidor de autenticação, essa métrica representa quantos trabalhadores de frontend estão conectados (1 por frontend por thread). | |
aio_broker_store_total_subscriptions | Essa métrica representa quantas assinaturas estão na cadeia de back-end. Os nós de back-end na mesma cadeia devem relatar o mesmo número de assinaturas. Essa contagem não corresponde necessariamente à do frontend, já que essa métrica também rastreia sessões persistentes total_subscriptions desconectadas. |
Métricas de armazenamento de estado
Esse conjunto de métricas rastreia o estado geral do armazenamento de estado.
Métrico | Description | Etiquetas |
---|---|---|
aio_broker_state_store_deletions | Essa métrica conta o número de solicitações de chave de exclusão recebidas, incluindo exclusões bem-sucedidas e erros. | |
aio_broker_state_store_insertions | Essa métrica conta o número de novas solicitações de inserção de chave recebidas, incluindo inserções bem-sucedidas e erros. | |
aio_broker_state_store_keynotify_requests | Essa métrica conta o número de solicitações para monitorar alterações de chave (KEYNOTIFY) recebidas, incluindo modificações bem-sucedidas e erros. | |
aio_broker_state_store_modifications | Essa métrica conta o número de solicitações de chave de modificação recebidas, incluindo modificações bem-sucedidas e erros. | |
aio_broker_state_store_notifications_sent | Essa métrica conta o número de mensagens de notificação que o armazenamento de estado envia quando um valor de chave é alterado e um cliente é registrado via KEYNOTIFY. | |
aio_broker_state_store_retrievals | Essa métrica conta o número de solicitações de recuperação de valor de chave recebidas, incluindo recuperações bem-sucedidas e erros. |
Métricas de buffer de mensagens com backup de disco
Essas métricas fornecem observabilidade para o buffer de mensagens com backup de disco.
Métrico | Description | Etiquetas |
---|---|---|
aio_broker_buffer_pool_used_percent | Relata a porcentagem de buffer usado para um único pool de buffer de frontend ou back-end. | name |
aio_broker_disk_transfers_completed | Relata o número de transferências de disco concluídas em um determinado pod de back-end. Rastreia o número total de publicações transferidas de um pool de buffers para o disco. | |
aio_broker_disk_transfers_failed | Relata o número de transferências de disco que falharam em um determinado pod de back-end. |
Nota
Apenas determinados pools de buffer de back-end, especificamente os dinâmicos chamados "reader", usam o recurso de buffer de mensagens apoiado em disco. Esses pools armazenam filas de mensagens do assinante e transferem elementos para o disco quando o uso excede 75%.
Métricas de recuperação de falhas
Métrico | Description |
---|---|
aio_broker_store_transfer_batch_receiver_message_count | Essa métrica informa o número de mensagens recebidas pelo destinatário de transferência da loja. Essa contagem deve ser igual ao número de mensagens enviadas pelo remetente da transferência da loja. |
aio_broker_store_transfer_batch_sender_transfer_bytes | Essa métrica relata o número de bytes enviados pelo remetente da transferência de armazenamento. |
aio_broker_store_transfer_batch_sender_message_count | Essa métrica informa o número de mensagens enviadas pelo remetente da transferência da loja. |
aio_broker_store_transfer_ack_event_receiver_message_count | Essa métrica relata o número de mensagens de evento ack recebidas pelo recetor de transferência da loja. Essa contagem deve ser igual ao número de mensagens de evento ack enviadas pelo remetente de transferência da loja. |
aio_broker_store_transfer_ack_event_sender_message_count | Essa métrica relata o número de mensagens de evento ack enviadas pelo remetente de transferência da loja. |
aio_broker_store_transfer_ack_event_sender_transfer_bytes | Essa métrica relata o número de bytes enviados pelo remetente de transferência de armazenamento para eventos ack. |
aio_broker_store_transfer_patch_tracker_receiver_message_count | Essa métrica relata o número de mensagens do rastreador de patches recebidas pelo recetor de transferência da loja. Essa contagem deve ser igual ao número de mensagens do rastreador de patches enviadas pelo remetente da transferência da loja. |
aio_broker_store_transfer_patch_tracker_sender_message_count | Essa métrica relata o número de mensagens do rastreador de patches enviadas pelo remetente da transferência da loja. |
Métricas do desenvolvedor
Essas métricas são úteis para a depuração do desenvolvedor.
Métrico | Description |
---|---|
aio_broker_patch_tracker_held_patches | Essa métrica relata quantos patches são mantidos atualmente dentro de um nó em uma cadeia. |
aio_broker_ack_handler_pending_transactions | Essa métrica informa quantas transações estão atualmente pendentes no manipulador ack. |
aio_broker_client_connected | Essa métrica informa quantos clientes estão conectados. |
aio_broker_client_disconnected | Essa métrica informa quantos clientes estão desconectados. |
aio_broker_client_removed | Essa métrica informa quantos clientes foram removidos. |
Conteúdos relacionados
- Configure as configurações de diagnóstico do agente MQTT.
- Configurar a observabilidade