Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece diretrizes de monitoramento e solução de problemas para problemas comuns e resolução para roteamento de mensagens do Hub IoT.
Monitoramento do roteamento de mensagens
Recomendamos monitorar as métricas do Hub IoT relacionadas ao roteamento de mensagens e aos pontos de extremidade para ter 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 Microsoft Azure para processamento personalizado. Para saber mais sobre como usar métricas, logs de recursos e configurações de diagnóstico, consulte Monitorar o Hub IoT. Para obter um tutorial, consulte Configurar e usar métricas e logs de recursos com um hub IoT.
Também recomendamos habilitar a rota de fallback se quiser manter mensagens que não correspondem à consulta em nenhuma das rotas. Essas mensagens podem ser retidas no endpoint integrado pelo número de dias de retenção configurado.
Principais problemas
Veja a seguir os problemas mais comuns observados com o roteamento de mensagens. Para iniciar a solução de problemas, selecione o problema para etapas detalhadas.
- As mensagens de meus dispositivos não estão sendo roteadas conforme o esperado
- Repentinamente, parei de receber mensagens no ponto de extremidade do Hubs de Eventos integrado
As mensagens dos meus dispositivos não estão sendo roteadas como esperado
Para solucionar esse problema, analise as informações a seguir.
As métricas de roteamento desse ponto de extremidade
Todas as métricas do Hub IoT relacionadas ao roteamento usam o prefixo Roteamento. Você pode combinar informações de várias métricas para identificar a causa raiz de 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 removidas quando não corresponderam a consultas em nenhuma das rotas e a rota de fallback foi desabilitada. Confira a métrica de Latência de roteamento para observar se a latência de entrega de mensagem está estável ou aumentando. Uma latência que está aumentando 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 qualquer problema operacional
Observe os logs de recursos de rotas para obter mais informações sobre as operações de roteamento e ponto de extremidade ou identificar erros e código de erro pertinente para compreender melhor o problema. Por exemplo, o nome da operação RouteEvaluationError no registro indica que a rota não pôde ser avaliada devido a um problema com o formato da mensagem. Use as dicas recebidas para os nomes de operação específicos para atenuar o problema. Quando um evento é registrado como um erro, o registro também fornece mais informações sobre o motivo da falha na avaliação. Por exemplo, se o nome da operação for EndpointUnhealthy, um código de erro de 403004 indicará que o ponto de extremidade ficou sem espaço.
A integridade do ponto de extremidade
Use a REST API Get Endpoint Health para obter o status de integridade dos endpoints. Essa API também fornece informações sobre a última vez em que uma mensagem foi enviada com êxito para o ponto de extremidade, o último erro conhecido, a hora do último erro conhecido e a última vez que uma tentativa de envio foi feita para esse ponto de extremidade. Use a possível mitigação fornecida para o último erro conhecido específico.
Repentinamente, parei de receber mensagens no ponto de extremidade integrado
Para solucionar esse problema, analise as informações a seguir.
Uma nova rota foi criada?
Depois que uma rota é criada, os dados param de fluir para o endpoint incorporado, a menos que uma rota seja criada para esse endpoint. Para garantir que as mensagens continuem fluindo para o ponto de extremidade integrado se uma nova rota for adicionada, configure uma rota para o ponto de extremidade de eventos.
A rota de fallback foi desabilitada?
A rota de fallback envia todas as mensagens que não atendem a nenhuma das condições de consulta em nenhuma das rotas existentes para os Hubs de Eventos internos (mensagens/eventos), que são compatíveis com os Hubs de Eventos. Se o roteamento de mensagens estiver ativado, você poderá habilitar a capacidade de rota alternativa. 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 nas 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 precisará 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 Azure Resource Manager para FallbackRouteProperties para usar um ponto de extremidade personalizado para a rota de fallback.
Erros mais recentes conhecidos para endpoints de roteamento do IoT Hub
Obter a Integridade do Ponto de Extremidade 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. Esta tabela lista os erros mais comuns.
| Último erro conhecido | Descrição/quando ocorre | Mitigação Possível |
|---|---|---|
| Transitório | Ocorreu um erro transitório e o Hub IoT tentará novamente a operação. | Observe os logs de recursos de rotas. |
| Erro Interno | Ocorreu um erro ao entregar uma mensagem para um ponto de extremidade. | Esse erro é uma exceção interna, mas observe, também, os logs de recursos de rotas. |
| Desautorizado | O Hub IoT não está autorizado a enviar mensagens para o ponto de extremidade especificado. | Valide se a string de conexão está atualizada para o endpoint. Se houver alterações, considere atualizar seu Hub IoT. Se o ponto de extremidade usar identidade gerenciada, verifique se a entidade de segurança do Hub IoT tem as permissões necessárias no destino. |
| Acelerado | O Hub IoT está sendo limitado durante à gravação de mensagens no ponto de extremidade. | Examine os limites de limitação para o ponto de extremidade afetado. Modifique as configurações do endpoint para expandir, se necessário. |
| Intervalo | Tempo limite da operação. | Repita a operação. |
| Não encontrado | O recurso de destino não existe. | Verifique se o recurso de destino existe. |
| Contêiner não encontrado | O contêiner de armazenamento não existe. | Verifique se o contêiner de armazenamento existe. |
| Contêiner desativado | O contêiner de armazenamento está desabilitado. | Verifique se o contêiner de armazenamento está habilitado. |
| MaxMessageSizeExceeded | O roteamento de mensagens tem um limite de tamanho de mensagem de 256 Kb. O tamanho da mensagem roteada excedeu esse limite. | Verifique se o tamanho da mensagem pode ser reduzido usando menos propriedades de aplicativo ou menos enriquecimentos de mensagens. |
| PartitioningAndDuplicateDetectionNotSupported | O barramento de serviço pode não estar com a detecção de duplicidades habilitada. | Desabilite a detecção de duplicidades do Barramento de Serviço ou considere usar uma entidade sem detecção de duplicidades. |
| SessionfulEntityNotSupported | O barramento de serviço pode não ter sessões habilitadas. | Desabilite a sessão do Barramento de Serviço ou considere usar uma entidade sem sessões. |
| NoMatchingSubscriptionsForMessage | Não há nenhuma assinatura para gravar mensagem no tópico do barramento de serviço. | Crie uma assinatura para mensagens do Hub IoT a serem roteadas. |
| EndpointExternallyDisabled | O ponto de extremidade não está em um estado ativo para que o Hub IoT possa enviar mensagens para ele. | Habilite o ponto de extremidade para trazê-lo de volta ao estado ativo. |
| DeviceMaximumQueueDepthExceeded | O limite de tamanho do barramento de serviço foi atingido. | Considere remover mensagens dos Hubs de Eventos de destino para permitir que novas mensagens sejam ingeridas nos Hubs de Eventos. |
Logs de recurso de rotas
Veja a seguir os nomes de operação e códigos de erro registrados nos logs de recursos de rotas.
Nomes de operação
| Nome da Operação | Nível | Descrição |
|---|---|---|
| UndefinedRouteEvaluation | Informação | A mensagem não pode ser avaliada com uma condição de concessão. Por exemplo, se uma propriedade na condição de consulta de rota estiver ausente na mensagem. Saiba mais sobre a sintaxe de consulta de roteamento. |
| Erro de Avaliação de Rota | Erro | Erro ao avaliar a mensagem devido a um problema com o formato da mensagem. Por exemplo, esse erro será registrado se a codificação de conteúdo não for especificada ou o tipo de conteúdo não for válido na mensagem. Elas devem ser definidas nas propriedades do sistema. |
| Mensagem descartada | Erro | A mensagem foi removida e não foi roteada. Isso pode ser devido a motivos como a mensagem não correspondeu a nenhuma consulta de roteamento ou o ponto de extremidade estava inativo e a mensagem não pôde ser entregue após várias tentativas. Recomendamos obter mais detalhes sobre o ponto de extremidade usando a API REST para obter a integridade do ponto de extremidade. |
| EndpointUnhealthy | Erro | O ponto de extremidade não está aceitando mensagens do Hub IoT e o Hub IoT está tentando reenviar as mensagens. Recomendamos verificar o último erro conhecido por meio da API REST get endpoint health. |
| Ponto de ExtremidadeMorto | Erro | O ponto de extremidade não está aceitando mensagens do Hub IoT por mais de uma hora. Recomendamos verificar o último erro conhecido por meio da API REST get endpoint health. |
| EndpointSaudável | Informação | O ponto de extremidade está íntegro e recebendo mensagens do Hub IoT. Essa mensagem não é registrada continuamente, mas registrada somente quando o ponto de extremidade se torna íntegro novamente. Essa mensagem significa que o Hub IoT não pôde enviar mensagens para o endpoint, mas o endpoint agora está saudável. |
| Mensagem Órfã | Informação | A mensagem não corresponde a nenhuma rota. |
| MensagemInválida | Erro | A mensagem é inválida devido à incompatibilidade com o ponto de extremidade. É recomendável verificar as configurações do ponto de extremidade. |
As operações UndefinedRouteEvaluation, RouteEvaluationError e OrphanedMessage são limitadas e não registradas mais de uma vez por minuto por Hub IoT.
Códigos de erro comuns
| Código de erro | Descrição |
|---|---|
| 401002 | Acesso não autorizado ao Hub IoT |
| 413001 | Mensagem muito grande |
| 403004 | Profundidade máxima da fila do dispositivo excedida |
| 503008 | Receber link limitado |
| 500000 | Erro de servidor genérico |
| 401 | Desautorizado |
| 503 | Serviço indisponível |
| 500001 | Erro do servidor |
| 400103 | Codificação de conteúdo ou tipo de conteúdo inválido |
| 404001 | Dispositivo não encontrado |
Próximas etapas
Se precisar de mais ajuda, você pode contatar os especialistas do Azure nos fóruns do Microsoft Q&A e do Stack Overflow. Como alternativa, você pode registrar um incidente de Suporte do Azure. Acesse o site de suporte do Azure e selecione Obter suporte.