Partilhar via


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ão, rastreamento de mensagens, rastreamento de solicitações HTTP e análise.

O que são logs de recursos?

Existem três tipos de logs de recursos:

  • 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 eventos, como conectar e desconectar.
  • Os logs de mensagens fornecem informações de rastreamento para mensagens de hub enviadas ou recebidas por meio do serviço PubSub da Web do Azure, 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 método HTTP ou 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 em tempo real

A ferramenta de rastreamento ao vivo no serviço Azure Web PubSub pode coletar logs de recursos em tempo real, o que é útil para solucionar problemas em seu ambiente de desenvolvimento. A ferramenta de rastreamento ao vivo 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 em tempo real:

  • Os logs de recursos em tempo real que a ferramenta de rastreamento ao vivo captura são cobrados como mensagens (tráfego de saída).
  • A instância de camada gratuita do serviço Azure Web PubSub tem um limite diário de 20.000 mensagens (tráfego de saída). Você pode atingir inesperadamente o limite diário usando o rastreamento ao vivo.
  • Atualmente, a ferramenta de rastreamento dinâmico não oferece suporte à autorização do Microsoft Entra. Você deve habilitar as chaves de acesso para usar o rastreamento dinâmico. Em Definições, selecione Teclas e, em seguida, ative a Chave de Acesso.

Inicie a ferramenta de rastreamento ao vivo

Ao habilitar uma chave de acesso, você usa o token de acesso para autenticar a ferramenta de rastreamento em tempo real. Caso contrário, você usa o Microsoft Entra ID para autenticar a ferramenta de rastreamento ao vivo. Você pode descobrir se a chave de acesso está habilitada acessando o painel Chaves em sua instância do Serviço SignalR do Azure no portal do Azure.

Abra o rastreamento dinâmico quando a chave de acesso estiver ativada

  1. Vá para o portal do Azure e seu painel Serviço SignalR.

  2. No menu de serviço, em Monitoramento, selecione Configurações de rastreamento em tempo real.

  3. Selecione Ativar rastreamento em tempo real.

  4. Selecione o botão Save. As alterações demoram algum tempo a entrar em vigor.

  5. Quando a atualização estiver concluída, selecione Abrir ferramenta de rastreamento ao vivo.

    Captura de tela da abertura da ferramenta de rastreamento ao vivo.

Abra a ferramenta de rastreamento dinâmico quando a chave de acesso estiver desativada

Atribua a permissão da API da ferramenta de rastreamento ao vivo a si mesmo

  1. Vá para o portal do Azure e seu painel Serviço SignalR.

  2. Selecione Controlo de acesso (IAM) .

  3. Selecione +Adicionar e, em seguida, selecione Atribuição de função.

  4. Na guia Funções da função de trabalho, selecione a função Proprietário do Serviço SignalR e selecione Avançar.

  5. No painel Membros, clique em +Selecionar membros.

  6. Pesquise e selecione membros e clique em Selecionar.

  7. Selecione Rever + atribuir e aguarde a notificação de conclusão.

Ativar a ferramenta de rastreamento dinâmico

  1. Vá para o portal do Azure e seu painel Serviço SignalR.

  2. No menu de serviço, em Monitoramento, selecione Configurações de rastreamento em tempo real.

  3. Selecione Ativar rastreamento em tempo real.

  4. Selecione o botão Save. As alterações demoram algum tempo a entrar em vigor.

  5. Quando a atualização estiver concluída, selecione Abrir ferramenta de rastreamento ao vivo.

    Captura de tela da abertura da ferramenta de rastreamento ao vivo.

Iniciar sessão com a sua conta Microsoft

  1. A ferramenta de rastreamento dinâmico faz com que uma janela de entrada da Microsoft seja aberta. Se nenhuma janela abrir, permita janelas pop-up nas configurações do navegador.

  2. Aguarde até que Pronto apareça na barra de status.

Capturar os logs de recursos

A ferramenta de rastreamento em tempo real pode ajudá-lo a capturar os logs de recursos para solução de problemas.

  • A captura começa a capturar os logs de recursos em tempo real do Azure Web PubSub.
  • Limpar limpa os logs de recursos capturados em tempo real.
  • O 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.

Captura de tela da captura de logs de recursos com a ferramenta de rastreamento ao vivo.

Os logs de recursos em tempo real capturados pela ferramenta de rastreamento em tempo real contêm informações detalhadas para solução de problemas.

Nome Descrição
Tempo Registrar o tempo do evento
Nível de log Nível de evento de log (Trace, Debug, Warning Informational, ou Error)
Nome do evento Nome da operação do evento
Mensagem Mensagem detalhada para o evento
Exceção Exceção de tempo de execução do serviço Azure Web PubSub
Hub Nome do hub definido pelo usuário
ID de conexão Identidade da ligação
ID de utilizador Identidade do utilizador
IP Endereço IP do cliente
Modelo de rota Modelo de rota da API
Método HTTP Método HTTP (POST, GETPUT , ou DELETE)
URL Localizador uniforme de recursos
ID de rastreamento Identificador exclusivo da invocação
Código de Estado Código de resposta HTTP
Duração Período entre a receção do pedido e o seu tratamento
Cabeçalhos Informações adicionais passadas pelo cliente e pelo servidor com uma solicitação ou resposta HTTP

Capturar logs de recursos com o Azure Monitor

Ativar registos de recursos

Atualmente, o Azure Web PubSub dá suporte à integração com o Armazenamento do Azure.

  1. Aceda ao portal do Azure.

  2. No painel Configurações de diagnóstico da sua instância de serviço Azure Web PubSub, selecione + Adicionar configuração de diagnóstico.

    Captura de ecrã a mostrar a visualização de definições de diagnóstico e a criação de uma nova.

  3. Em Nome da configuração de diagnóstico, insira o nome da configuração.

  4. Em Detalhes da categoria, selecione qualquer categoria de log necessária.

  5. Em Detalhes do destino, selecione Arquivar em uma conta de armazenamento.

    Captura de ecrã a mostrar a definição de diagnóstico.

  6. Selecione Salvar para salvar a configuração de diagnóstico.

    Nota

    A conta de armazenamento deve estar na mesma região que o 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 de configurações Diagnóstico. Um contêiner chamado insights-logs-<CATEGORY_NAME> é criado automaticamente para armazenar 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. O caminho é combinado por resource ID e Date Time. Os arquivos de log são divididos por hour. O valor do 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 em logs de arquivo incluem elementos listados nas tabelas a seguir.

Formato

Nome Descrição
time Registrar o tempo do evento
level Registrar nível de evento
resourceId ID de recurso da sua instância do Serviço Azure SignalR
location Localização da sua instância do Serviço Azure SignalR
category Categoria do evento de log
operationName Nome da operação do evento
callerIpAddress Endereço IP do seu servidor ou cliente
properties Propriedades detalhadas relacionadas a esse evento de log (consulte a tabela a seguir)

Tabela de propriedades

Nome Descrição
collection Coleta do evento de log (Connection, Authorization ou Throttling)
connectionId Identidade da ligação
userId Identidade do utilizador
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, GETPUT , ou DELETE)
url Localizador uniforme de recursos
traceId Identificador exclusivo da invocação
statusCode Código de resposta HTTP
duration Período de tempo entre o momento em que o pedido é recebido e processado
headers Informações adicionais passadas pelo cliente e pelo 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 arquivamento:

{
  "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 um espaço de trabalho do Log Analytics:

  1. No painel Configuração de diagnóstico, em Detalhes do destino, selecione Enviar para o espaço de trabalho do Log Analytics.

  2. Para Subscrição, selecione a subscrição pretende utilizar.

  3. Para o destino dos logs, selecione Espaço de trabalho do Log Analytics.

Para exibir os logs de recursos, execute estas etapas:

  1. Selecione Logs no espaço de trabalho do Log Analytics de destino.

    Captura de ecrã de um item de menu do Log Analytics.

  2. Para consultar o registo, introduza WebPubSubConnectivity, WebPubSubMessagingou WebPubSubHttpRequeste, em seguida, selecione o intervalo de tempo. Para consultas avançadas, consulte Introdução ao Log Analytics no Azure Monitor.

    Captura de ecrã de uma consulta no Log Analytics.

Para usar uma consulta de exemplo para o serviço SignalR, execute estas etapas:

  1. Selecione Logs no espaço de trabalho do Log Analytics de destino.

  2. Selecione Consultas para abrir o explorador de consultas .

  3. Selecione Tipo de recurso para agrupar consultas de exemplo por tipo de recurso.

  4. Selecione Executar para executar o script.

    Captura de ecrã de uma consulta de exemplo no Log Analytics.

As colunas de log de arquivamento incluem elementos listados na tabela a seguir.

Nome Descrição
TimeGenerated Registrar o tempo do evento
Collection Coleta do evento de log (Connection, Authorization, e Throttling)
OperationName Nome da operação do evento
Location Localização da sua instância do Serviço Azure SignalR
Level Registrar nível de evento
CallerIpAddress Endereço IP do seu servidor/cliente
Message Mensagem detalhada do evento de log
UserId Identidade do utilizador
ConnectionId Identidade da ligação
ConnectionType Tipo de conexão (Server, uma conexão do lado do servidor; e Client, uma conexão do lado do cliente)
TransportType Tipo de transporte da ligação (Websockets, ServerSentEvents, e LongPolling)

Usar logs de recursos para solucionar problemas

Se você encontrar aumentos ou diminuições inesperados no número de conexões, poderá solucionar o problema usando logs de recursos. Os problemas potenciais incluem alterações inesperadas na quantidade de conexão, conexões que atingem limites de conexão e falha de autorização.

Eventos de desconexão inesperados

Se uma conexão se desconectar, os logs de recursos registrarão o evento de desconexão com ConnectionAborted ou ConnectionEnded no operationName.

A diferença entre ConnectionAborted e ConnectionEnded é que ConnectionEnded é uma desconexão esperada que é acionada pelo lado do cliente ou servidor. Por outro lado, ConnectionAborted geralmente refere-se a um evento no qual uma conexão cai inesperadamente, e o motivo para a desconexão é fornecido em message.

A tabela a seguir lista os motivos para uma desconexão inesperada.

Motivo Description
Contagem de conexões atinge limite A contagem de conexões atinge o limite do seu nível de preço atual. Considere ampliar a unidade de serviço.
Serviço de recarga, reconexão O serviço Azure Web PubSub está sendo recarregado. 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 Ocorre um erro transitório 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 aumenta inesperadamente, você deve seguir estas etapas. Primeiro, filtre as conexões supérfluas e adicione um ID de usuário de teste exclusivo à sua conexão de cliente de teste. Em seguida, verifique os logs de recursos. Se você notar que mais de uma conexão de cliente tem o mesmo 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 seu cliente para encontrar a origem das conexões extras.

Falha na autorização

Se você receber 401 não autorizado devolvido para solicitações de cliente, verifique seus 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 em seu token de acesso são inválidos. Tente usar os públicos válidos sugeridos no log.

Limitação

Se você achar que não pode estabelecer conexões de cliente com o serviço Azure Web PubSub, verifique seus logs de recursos. Se você vir Connection count reaches limit no log de recursos, estabeleceu muitas conexões com o serviço Azure Web PubSub e atingiu o limite de contagem de conexões. Considere expandir sua instância de serviço Azure Web PubSub.

Se você vir Message count reaches limit no log de recursos e estiver usando o nível Gratuito, isso significa que você usou a cota de mensagens. Se quiser enviar mais mensagens, considere alterar sua instância de serviço do Azure Web PubSub para a camada Padrão. Para obter mais informações, consulte Preços do Azure Web PubSub.