Examinar a solução de problemas de roteamento de mensagens

Concluído

Esta página fornece orientação de monitoramento e solução de problemas para problemas comuns e resolução de roteamento de mensagens do Hub IoT.

Monitorar o roteamento de mensagens

Recomendamos que você monitore as métricas do Hub IoT relacionadas ao roteamento de mensagens e aos pontos de extremidade para fornecer uma visão geral das mensagens enviadas. Você também pode criar uma configuração de diagnóstico para enviar operações para rotas em logs de recursos do Hub IoT para logs do Azure Monitor, Hubs de Eventos ou Armazenamento do Azure para processamento personalizado.

Também recomendamos habilitar a rota de fallback se quiser manter mensagens que não correspondam à consulta em nenhuma das rotas. Essas mensagens podem ser retidas no ponto de extremidade interno pelo número de dias de retenção configurados.

Principais problemas

A seguir estão os problemas mais comuns observados com o roteamento de mensagens.

  • As mensagens dos meus dispositivos não estão a ser encaminhadas como esperado
  • De repente, parei de receber mensagens no ponto de extremidade interno dos Hubs de Eventos

As mensagens dos meus dispositivos não estão a ser encaminhadas como esperado

Para solucionar esse problema, analise as seguintes áreas:

  • As métricas de roteamento para este ponto de extremidade

    Todas as métricas do Hub IoT relacionadas ao roteamento são prefixadas com Roteamento. Você pode combinar informações de várias métricas para identificar a causa raiz dos problemas. Por exemplo, use a métrica Entregas de Roteamento para identificar o número de mensagens que foram entregues a um ponto de extremidade ou descartadas quando não correspondiam a consultas em nenhuma das rotas e a rota de fallback foi desabilitada. Verifique a métrica Latência de roteamento para observar se a latência para entrega de mensagens está estável ou aumentando. Uma latência crescente pode indicar um problema com um ponto de extremidade específico e recomendamos verificar a integridade do ponto de extremidade. Essas métricas de roteamento também têm dimensões que fornecem detalhes sobre a métrica, como o tipo de ponto de extremidade, o nome do ponto de extremidade específico e um motivo pelo qual a mensagem não foi entregue.

  • Os logs de recursos para quaisquer problemas operacionais

    Observe os logs de recursos de rotas para obter mais informações sobre as operações de roteamento e ponto final ou identifique erros e código de erro relevante para entender melhor o problema. Por exemplo, o nome da operação RouteEvaluationError no log indica que a rota não pôde ser avaliada devido a um problema com o formato da mensagem. Use as dicas fornecidas para os nomes de operação específicos para mitigar o problema. Quando um evento é registrado como um erro, o log também fornece mais informações sobre por que a avaliação falhou. Por exemplo, se o nome da operação for EndpointUnhealthy, um código de erro de 403004 indica que o ponto de extremidade ficou sem espaço.

  • A integridade do ponto de extremidade

    Use a API REST Get Endpoint Health para obter o status de integridade dos pontos de extremidade. A API Get Endpoint Health também fornece:

    • informações sobre a última vez que uma mensagem foi enviada com êxito para o ponto de extremidade
    • O último erro conhecido
    • a última hora de erro conhecida e a última vez que uma tentativa de envio foi feita para esse ponto de extremidade. Use a possível atenuação fornecida para o último erro conhecido específico.

De repente, parei de receber mensagens no ponto de extremidade integrado

Para solucionar esse problema, analise as seguintes áreas:

  • Foi criada uma nova rota?

    Depois que uma rota é criada, os dados param de fluir para o ponto de extremidade interno, a menos que uma rota seja criada para esse ponto de extremidade. Para garantir que as mensagens continuem a fluir para o ponto de extremidade interno se uma nova rota for adicionada, configure uma rota para o ponto de extremidade de eventos.

  • A rota de fallback foi desativada?

    A rota de fallback envia todas as mensagens que não satisfazem nenhuma das condições de consulta em qualquer uma das rotas existentes para os Hubs de Eventos internos (mensagens e eventos), que é compatível com Hubs de Eventos. Se o roteamento de mensagens estiver ativado, você poderá habilitar o recurso de rota de fallback. Se não houver rotas para o ponto de extremidade interno e uma rota de fallback estiver habilitada, somente as mensagens que não corresponderem a nenhuma condição de consulta em rotas serão enviadas para o ponto de extremidade interno. Além disso, se todas as rotas existentes forem excluídas, a rota de fallback deverá ser habilitada para receber todos os dados no ponto de extremidade interno.

    Você pode habilitar ou desabilitar a rota de fallback no portal do Azure usando a folha Roteamento de Mensagens para o hub IoT. Você também pode usar o Gerenciador de Recursos do Azure para FallbackRouteProperties para usar um ponto de extremidade personalizado para uma rota de fallback.

Últimos erros conhecidos para pontos de extremidade de roteamento do Hub IoT

Get Endpoint Health na API REST fornece o status de integridade dos pontos de extremidade e o último erro conhecido para identificar o motivo pelo qual um ponto de extremidade não está íntegro. A última tabela de erros conhecidos lista os erros mais comuns.

Logs de recursos de rotas

A tabela Nomes de operação e códigos de erro lista mensagens informativas e de erro registradas nos logs de recursos de rotas.