Compartilhar via


Métricas para o broker MQTT

O agente 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 Definir configurações de diagnóstico do agente MQTT.

Propriedade do usuário MQTT Connect metriccategory

Quando um cliente se conecta ao agente, ele pode incluir uma propriedade de usuário chamada metriccategory no pacote de conexão. Em seguida, o agente marca todas as métricas orientadas por sessão (como publicações e assinaturas) com isso metriccategory como category.

Por exemplo, se a sonda de autoverificação se conectar com metriccategory=broker_selftest, o agente 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étrica Descrição Marcações
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 front-end. 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 conta cada mensagem enviada, mesmo que eles tenham o mesmo conteúdo. Essa contagem não conta pacotes de confirmação. Para o back-end, essa métrica representa quantas mensagens internas são enviadas para os nós de front-end. 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 ou os próprios pacotes de publicação. category
aio_broker_payload_bytes_sent A soma das cargas de todas as publicações enviadas. Essa soma não inclui o tamanho das propriedades ou os próprios pacotes de publicação. 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 com êxito. Essa métrica deve ser sempre menor ou igual a aio_broker_authentication_successes. category
aio_broker_authorization_deny Essa métrica conta as solicitações de autorização negadas. Essa 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 à contrapressão. Um pacote será 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 agente.
aio_broker_store_retained_bytes Essa métrica conta quantos bytes são armazenados por meio de mensagens retidas no agente.
aio_broker_store_will_messages Essa métrica conta quantas mensagens de vontade são armazenadas no agente.
aio_broker_store_will_bytes Essa métrica conta quantos bytes são armazenados por meio de mensagens will no agente.
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 em 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 será gerada somente se um CONNECT for bem-sucedido.
aio_broker_connect_latency_last_value_ms Um p99 estimado 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 em 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 será gerada somente se um SUBSCRIBE for bem-sucedido.
aio_broker_subscribe_latency_last_value_ms Um p99 estimado 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 assinatura de um cliente de autoteste é replicada corretamente em 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 será gerada somente se um UNSUBSCRIBE for bem-sucedido.
aio_broker_unsubscribe_latency_last_value_ms Um p99 estimado 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 assinatura de um cliente de autoteste é replicada corretamente em 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 será gerada somente se um PUBLISH for bem-sucedido.
aio_broker_publish_latency_last_value_ms Um p99 estimado 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 Uma estimativa de p99 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 de latência do conteúdo.
aio_broker_payload_check_total_messages_lost A contagem de carga total de mensagens 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 da mensagem publicada.
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 agente

Esse conjunto de métricas rastreia o estado de cardinalidade do agente. Cada métrica desejada é emparelhada com uma métrica relatada para mostrar o estado atual. Essas métricas indicam o número de pods íntegros da perspectiva do agente, que pode ser diferente dos relatórios do Kubernetes.

Por exemplo, se um nó de back-end for reiniciado, mas não se reconectar à sua cadeia, poderá haver uma discrepância nos relatórios de integridade. O Kubernetes pode relatar o pod como íntegro, enquanto o agente o relata como inativo porque ele não está funcionando corretamente.

Métrica desejada Métrica relatada
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

Observação

backend_vertical_chain_current Relata o número de nós íntegros na cadeia menos íntegra. Por exemplo, se o comprimento esperado da cadeia for 4 e três cadeias tiverem 4 nós íntegros, enquanto uma cadeia tiver apenas 2 nós íntegros, backend_vertical_chain_current relatará 2.

Métricas de conexão e assinatura

Essas métricas fornecem observabilidade para as conexões e assinaturas no agente.

Métrica Descrição Marcações
aio_broker_total_sessions No front-end 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, pois 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 de front-end e back-end estão conectados. Para o servidor de autenticação, essa métrica representa quantos trabalhadores de front-end estão conectados (1 por front-end por thread). mqtt_version: [v3/v5]
Tags somente de nó de back-end:
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 front-end. 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 deverá ser igual ao total de sessões.
aio_broker_total_subscriptions No front-end, essa métrica representa quantas assinaturas as sessões conectadas no momento têm. Essa contagem não inclui sessões persistentes desconectadas, pois um cliente pode se reconectar a um nó de front-end diferente. No operador, essa métrica representa os nós de front-end e back-end. Para o servidor de autenticação, essa métrica representa quantos trabalhadores de front-end estão conectados (1 por front-end por thread).
aio_broker_store_total_subscriptions Essa métrica representa quantas assinaturas estão na cadeia de back-end. Os nós do back-end na mesma cadeia devem relatar o mesmo número de assinaturas. Essa contagem não corresponde necessariamente ao do front-end, pois essa métrica também rastreia sessões persistentes total_subscriptionsdesconectadas.

Métricas de armazenamento de estado

Esse conjunto de métricas rastreia o estado geral do repositório de estado.

Métrica Descrição Marcações
aio_broker_state_store_deletions Essa métrica conta o número de solicitações de chave de exclusão recebidas, incluindo exclusões e erros bem-sucedidos.
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 repositório de estado envia quando um valor de chave é alterado e um cliente é registrado por meio de 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 suporte de disco

Essas métricas fornecem observabilidade para o buffer de mensagens com suporte de disco.

Métrica Descrição Marcações
aio_broker_buffer_pool_used_percent Relata a porcentagem de buffer usado para um único pool de buffers de front-end 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.

Observação

Apenas determinados buffer pools de back-end, especificamente os dinâmicos chamados "leitor", usam o recurso de buffer de mensagens com suporte de 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étrica Descrição
aio_broker_store_transfer_batch_receiver_message_count Essa métrica relata o número de mensagens recebidas pelo destinatário de transferência de armazenamento. Essa contagem deve ser igual ao número de mensagens enviadas pelo remetente da transferência de armazenamento.
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 relata o número de mensagens enviadas pelo remetente da transferência de armazenamento.
aio_broker_store_transfer_ack_event_receiver_message_count Essa métrica relata o número de mensagens de evento de confirmação recebidas pelo destinatário de transferência de armazenamento. Essa contagem deve ser igual ao número de mensagens de evento de confirmação enviadas pelo remetente da transferência de armazenamento.
aio_broker_store_transfer_ack_event_sender_message_count Essa métrica relata o número de mensagens de evento de confirmação enviadas pelo remetente da transferência de armazenamento.
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 de confirmação.
aio_broker_store_transfer_patch_tracker_receiver_message_count Essa métrica relata o número de mensagens do rastreador de patch recebidas pelo destinatário de transferência da loja. Essa contagem deve ser igual ao número de mensagens do rastreador de patch 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étrica Descrição
aio_broker_patch_tracker_held_patches Essa métrica relata quantos patches estão atualmente mantidos em um nó em uma cadeia.
aio_broker_ack_handler_pending_transactions Essa métrica relata quantas transações estão pendentes no momento no manipulador de confirmação.
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 são removidos.