Solucionar problemas com logs de recursos
Este guia de instruções fornece uma visão geral dos logs de recursos do Azure Web PubSub e dicas para usar os logs para solucionar problemas. Você pode usar logs para identificação de problemas, rastreamento de conexões, rastreamento de mensagens rastreamento de solicitação HTTP e análise.
O que são logs de recursos?
Há três tipos de logs de recurso:
- Os logs de conectividade fornecem informações detalhadas para conexões de hub do Azure Web PubSub. Eles podem incluir informações básicas, como ID de usuário e ID de conexão ou informações de evento, como conexão e desconexão.
- Logs de mensagens fornecem informações de rastreamento para mensagens de hub que são enviadas ou recebidas por meio do serviço Azure Web PubSub, como a ID de rastreamento ou o tipo de mensagem.
- Os logs de solicitação HTTP fornecem informações de rastreamento para solicitações HTTP para o serviço Azure Web PubSub, como o método HTTP ou o código de status. Normalmente, uma solicitação HTTP é registrada quando chega ou sai do serviço.
Capturar logs de recursos usando a ferramenta de rastreamento dinâmico
A ferramenta de rastreamento dinâmico no serviço Azure Web PubSub pode coletar logs de recursos em tempo real, o que é útil para solucionar problemas com o ambiente de desenvolvimento do cliente. A ferramenta de rastreamento dinâmico pode capturar logs de conectividade, logs de mensagens e logs de solicitação HTTP.
Você deve considerar os seguintes fatores ao usar a ferramenta de rastreamento dinâmico:
- Os logs de recursos em tempo real que a ferramenta de rastreamento dinâmico captura são cobrados como mensagens (tráfego de saída).
- A instância de Camada gratuita do serviço Azure Web PubSub tem o limite diário de 20.000 mensagens (tráfego de saída). Você pode atingir o limite diário inesperadamente usando o rastreamento dinâmico.
- No momento, a ferramenta de rastreamento dinâmico não dá suporte à autorização do Microsoft Entra. Você deve habilitar as chaves de acesso para usar o rastreamento dinâmico. Em Configurações, selecione Chaves e habilite a Chave de Acesso.
Inicialização da ferramenta de rastreamento em tempo real
Ao habilitar uma chave de acesso, você usa um token de acesso para autenticar a ferramenta de rastreamento dinâmico. Caso contrário, você usará o Microsoft Entra ID para autenticar a ferramenta de rastreamento dinâmico. Você pode descobrir se a chave de acesso está habilitada acessando o painel Chaves na instância do Serviço do Azure SignalR no portal do Azure.
Abra o rastreamento dinâmico quando a chave de acesso estiver habilitada
Acesse o portal do Azure e o painel do Serviço do SignalR.
No menu de serviço, em Monitoramento, selecione Configurações de rastreamento dinâmico.
Selecione Habilitar Rastreamento em Tempo Real.
Selecione o botão Salvar. Demora um pouco para que as alterações entrem em vigor.
Quando a atualização for concluída, selecione Abrir Ferramenta de Rastreamento em Tempo Real.
Abra a ferramenta de rastreamento dinâmico quando a chave de acesso estiver desabilitada
Atribuir permissão de API de ferramenta de rastreamento dinâmico a si mesmo
Acesse o portal do Azure e o painel do Serviço do SignalR.
Selecione IAM (Controle de acesso).
Selecione + Adicionar e, em seguida, Atribuição de função.
Na guia Funções da função de trabalho, selecione a função Proprietário do Serviço do SignalR e selecione Avançar.
No painel Membros, clique em + Selecionar membros.
Pesquise e selecione membros e, depois, clique em Selecionar.
Selecione Revisar + atribuir e aguarde a notificação de conclusão.
Habilitar a ferramenta de rastreamento dinâmico
Acesse o portal do Azure e o painel do Serviço do SignalR.
No menu de serviço, em Monitoramento, selecione Configurações de rastreamento dinâmico.
Selecione Habilitar Rastreamento em Tempo Real.
Selecione o botão Salvar. Demora um pouco para que as alterações entrem em vigor.
Quando a atualização for concluída, selecione Abrir Ferramenta de Rastreamento em Tempo Real.
Entre com sua conta da Microsoft
A ferramenta de rastreamento dinâmico abrirá uma janela de entrada da Microsoft. Se nenhuma janela abrir, permita janelas pop-up nas configurações do navegador.
Aguarde até que Pronto apareça na barra de status.
Capturar os logs de recursos
A ferramenta de rastreamento dinâmico pode ajudar você a capturar os logs de recursos para solução de problemas.
- Capturar começa a capturar os logs de recursos em tempo real do Azure Web PubSub.
- Desmarcar desmarca os logs de recursos capturados em tempo real.
- Filtro de log filtra os logs de recursos capturados em tempo real com uma palavra-chave específica. Os separadores comuns, como espaço, vírgula e ponto-e-vírgula, são tratados como parte da palavra-chave.
- Status mostra se a ferramenta de rastreamento dinâmico está conectada ou desconectada com a instância específica.
Os logs de recursos em tempo real capturados pela ferramenta de rastreamento dinâmico contêm informações detalhadas para solução de problemas.
Nome | Descrição |
---|---|
Hora | Hora do evento de log |
Nível de Log | Nível do evento de log (Trace , Debug , Informational , Warning ou Error ) |
Nome do evento | Nome da operação do evento |
Message | Mensagem detalhada para o evento |
Exceção | A exceção de runtime do serviço Azure Web PubSub |
Hub | Nome do Hub definido pelo usuário |
ID de conexão | Identidade da conexão |
ID de usuário | Identidade do usuário |
IP | Endereço IP do cliente |
Modelo de rota | Modelo de rota da API |
Método HTTP | Método HTTP (POST , GET , PUT ou DELETE ) |
URL | URL |
ID de rastreamento | Identificador exclusivo para a invocação |
Código de status | Código de resposta HTTP |
Duration | A duração entre o recebimento e o processamento da solicitação |
Cabeçalhos | As informações adicionais passadas pelo cliente e o servidor com uma solicitação ou resposta HTTP |
Capturar logs de recursos com Azure Monitor
Habilitar logs de recursos
Atualmente, o Azure Web PubSub dá suporte à integração com o Armazenamento do Microsoft Azure.
Acesse o portal do Azure.
No painel Configurações de diagnóstico da instância de serviço do Azure Web PubSub, selecione + Adicionar configuração de diagnóstico.
Em Nome da configuração de diagnóstico, insira o nome da configuração.
Em Detalhes da categoria, selecione qualquer categoria de log necessária.
Em Detalhes de destino, selecione Arquivar em uma conta de armazenamento.
Selecione Salvar para criar a configuração de diagnóstico.
Observação
A conta de armazenamento deve estar na mesma região do serviço Azure Web PubSub.
Arquivar em uma conta de Armazenamento do Azure
Os logs são armazenados na conta de armazenamento configurada no painel Configuração de diagnóstico. Um contêiner chamado insights-logs-<CATEGORY_NAME>
é criado automaticamente para armazenar os logs de recursos. Dentro do contêiner, os logs são armazenados no arquivo resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json
. Basicamente, o caminho é combinado por resource ID
e Date Time
. Os arquivos de log são divididos por hour
. O valor de minuto é sempre m=00
.
Todos os logs são armazenados no formato JSON (JavaScript Object Notation). Cada entrada tem campos de cadeia de caracteres que usam o formato descrito nas seções a seguir.
As cadeias de caracteres JSON nos logs de arquivos incluem os elementos listados nas tabelas a seguir.
Formatar
Nome | Descrição |
---|---|
time |
Hora do evento de log |
level |
Nível do evento de log |
resourceId |
ID do recurso da instância do Serviço do Azure SignalR |
location |
A localização da instância do Serviço do Azure SignalR |
category |
Categoria do evento de log |
operationName |
Nome da operação do evento |
callerIpAddress |
Endereço IP do servidor ou cliente |
properties |
Propriedades detalhadas relacionadas a esse evento de log (consulte a tabela a seguir) |
Tabela de Propriedades
Nome | Descrição |
---|---|
collection |
Coleção do evento de log (Connection , Authorization ou Throttling ) |
connectionId |
Identidade da conexão |
userId |
Identidade do usuário |
message |
Mensagem detalhada do evento de log |
hub |
Nome do Hub definido pelo usuário |
routeTemplate |
Modelo de rota da API |
httpMethod |
Método HTTP (POST , GET , PUT ou DELETE ) |
url |
URL |
traceId |
Identificador exclusivo para a invocação |
statusCode |
Código de resposta HTTP |
duration |
A duração de tempo entre o recebimento e o processamento da solicitação |
headers |
As informações adicionais passadas pelo cliente e o servidor com uma solicitação ou resposta HTTP |
O código a seguir é um exemplo de uma cadeia de caracteres JSON em um log de arquivos:
{
"properties": {
"message": "Connection started",
"collection": "Connection",
"connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
"userId": null
},
"operationName": "ConnectionStarted",
"category": "ConnectivityLogs",
"level": "Informational",
"callerIpAddress": "167.220.255.79",
"resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
"time": "2021-09-17T05:25:05Z",
"location": "westus"
}
Arquivar no Azure Log Analytics
Para enviar logs para o workspace do Log Analytics:
No painel Configuração de diagnóstico, em Detalhes de destino, selecione Enviar para o workspace do Log Analytics.
Para Assinatura, selecione a assinatura que você quer usar.
Para o destino de logs, selecione Workspace do Log Analytics.
Para exibir os logs de recursos, siga estas etapas:
Selecione Logs no workspace do Log Analytics de destino.
Para consultar o log, insira
WebPubSubConnectivity
,WebPubSubMessaging
ouWebPubSubHttpRequest
e selecione o intervalo de tempo. Para obter mais informações, veja Introdução ao Log Analytics no Azure Monitor.
Para usar a consulta de exemplo no Serviço do SignalR, siga essas etapas:
Selecione Logs no workspace do Log Analytics de destino.
Selecione Consultas para abrir o gerenciador de consultas.
Selecione o Tipo de recurso para agrupar consultas de exemplo por tipo de recurso.
Selecione Executar para executar o script.
As colunas do log de arquivo incluem os elementos listados na seguinte tabela.
Nome | Descrição |
---|---|
TimeGenerated |
Hora do evento de log |
Collection |
Coleção do evento de log (Connection , Authorization e Throttling ) |
OperationName |
Nome da operação do evento |
Location |
A localização da instância do Serviço do Azure SignalR |
Level |
Nível do evento de log |
CallerIpAddress |
Endereço IP do servidor/cliente |
Message |
Mensagem detalhada do evento de log |
UserId |
Identidade do usuário |
ConnectionId |
Identidade da conexão |
ConnectionType |
Tipo da conexão (Server , uma conexão do lado do servidor; e Client , uma conexão do lado do cliente) |
TransportType |
Tipo de transporte da conexão (Websockets , ServerSentEvents e LongPolling ) |
Usar logs de recurso para solucionar problemas
Se houver aumento ou diminuição inesperados no número de conexões, você pode solucionar o problema usando logs de recursos. Os problemas em potencial incluem alterações inesperadas na quantidade de conexões, conexões atingindo os limites de conexão e falhas de autorização.
Eventos de desconexão inesperados
Se uma conexão for desconectada, os logs de recursos registrarão esse evento de desconexão com ConnectionAborted
ou ConnectionEnded
em operationName
.
A diferença entre ConnectionAborted
e ConnectionEnded
é que ConnectionEnded
é uma desconexão esperada e é disparada pelo lado do cliente ou do servidor. Por outro lado, ConnectionAborted
geralmente se refere a um evento no qual uma conexão cai inesperadamente e o motivo da desconexão é fornecido em message
.
A tabela a seguir lista os motivos de uma desconexão inesperada.
Motivo | Descrição |
---|---|
A contagem de conexões atinge o limite | A contagem de conexões atinge o limite da camada de preço atual. Considere escalar verticalmente a unidade de serviço. |
Recarregamento de serviço, reconexão | O serviço Azure Web PubSub está recarregando. Você precisa implementar seu próprio mecanismo de reconexão ou reconectar-se manualmente ao serviço Azure Web PubSub. |
Erro transitório do servidor interno | Um erro transitório ocorre no serviço Azure Web PubSub. A recuperação deve ser automática. |
Aumento inesperado de conexões
Quando o número de conexões de cliente aumentar inesperadamente, você deverá seguir essas etapas. Primeiro, filtre as conexões supérfluas e adicione uma ID de usuário de teste exclusiva à conexão do cliente de teste. Depois, verifique os logs de recurso. Se você perceber que mais de uma conexão de cliente possui a mesma ID de usuário de teste ou IP, é provável que o cliente esteja criando mais conexões do que o esperado. Verifique o código do cliente para localizar a origem das conexões extras.
Falha de autorização
Se você receber o erro 401 Não Autorizado para as solicitações do cliente, verifique os logs de recursos. Se você encontrar Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>
, isso significa que todos os públicos no token de acesso são inválidos. Tente usar os públicos válidos sugeridos no log.
Limitação
Se você perceber que não é possível estabelecer conexões de cliente com o serviço Azure Web PubSub, verifique os logs de recursos. Se você encontrar Connection count reaches limit
no log de recursos, então você estabeleceu muitas conexões com o serviço Azure Web PubSub e alcançou o limite de contagem de conexão. Considere escalar verticalmente a instância de serviço do Azure Web PubSub.
Se você vir Message count reaches limit
no log de recursos e estiver usando a camada Gratuita, isso significa que você usou toda a cota de mensagens. Se você quiser enviar mais mensagens, considere alterar a instância de serviço do Azure Web PubSub para a camada Standard. Para saber mais, confira Preço do Azure Web PubSub.