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_subscriptions desconectadas. |
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. |
Conteúdo relacionado
- Defina as configurações de diagnóstico do agente MQTT.
- Configurar a observabilidade