Compartilhar via


Como 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 algumas dicas para usar os logs para solucionar determinados problemas. Eles podem ser usados 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 recursos: conectividade, mensagens e solicitações HTTP.

  • Os logs de conectividade fornecem informações detalhadas para conexões de hub do Azure Web PubSub. Por exemplo, informações básicas (identificação de usuário, identificação da conexão e assim por diante) e informações de evento (evento de conexão, de desconexão e assim por diante).
  • Os logs de mensagens fornecem informações de rastreamento para as mensagens de hub do Azure Web PubSub recebidas e enviadas por meio do serviço Azure Web PubSub. Por exemplo, ID de rastreamento e tipo de mensagem da mensagem.
  • Os logs de solicitação HTTP fornecem informações de rastreamento para solicitações HTTP para o serviço Azure Web PubSub. Por exemplo, o método HTTP e o código de status. Normalmente, a 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 do serviço Azure Web PubSub tem a capacidade de 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.

Observação

As seguintes considerações se aplicam ao uso da ferramenta de rastreamento dinâmico:

  • Os logs de recursos em tempo real capturados pela ferramenta de rastreamento dinâmico serão cobrados como mensagens (tráfego de saída).
  • 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.
  • A instância de serviço do Azure Web PubSub criada como camada gratuita tem o limite diário de mensagens de 20.000 mensagens (tráfego de saída). O rastreamento dinâmico pode fazer com que você atinja inesperadamente o limite diário.

Inicialização da ferramenta de rastreamento em tempo real

Observação

Ao habilitar a chave de acesso, você usará o 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 verificar se habilita ou não a chave de acesso na página Chaves do Serviço SignalR no portal do Azure.

Etapas para a chave de acesso habilitada

  1. Acesse o portal do Azure e a página Serviço do SignalR.

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

  3. Selecione Habilitar Rastreamento em Tempo Real.

  4. Selecione o botão Salvar. Demora um pouco para que as alterações entrem em vigor.

  5. Quando a atualização for concluída, selecione Abrir Ferramenta de Rastreamento em Tempo Real.

    Captura de tela de como iniciar a ferramenta de rastreamento em tempo real.

Etapas para a chave de acesso desabilitada

Atribuir permissão de API de ferramenta de rastreamento dinâmico a si mesmo

  1. Acesse o portal do Azure e a página Serviço do SignalR.
  2. Selecione IAM (Controle de acesso) .
  3. Na nova página, clique em + Adicionar e, em seguida, clique em Atribuição de função.
  4. Na nova página, concentre-se na guia Funções de trabalho, selecione a função Proprietário do Serviço SignalR e clique em Avançar.
  5. Na página Membros, clique em + Selecionar membros.
  6. No novo painel, pesquise e selecione membros e clique em Selecionar.
  7. Clique em Revisar + atribuir e aguarde a notificação de conclusão.

Visite a ferramenta de rastreamento dinâmico

  1. Acesse o portal do Azure e a página Serviço do SignalR.

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

  3. Selecione Habilitar Rastreamento em Tempo Real.

  4. Selecione o botão Salvar. Demora um pouco para que as alterações entrem em vigor.

  5. Quando a atualização for concluída, selecione Abrir Ferramenta de Rastreamento em Tempo Real.

    Captura de tela de como iniciar a ferramenta de rastreamento em tempo real.

Entre com sua conta da Microsoft

  1. A ferramenta de rastreamento dinâmico abrirá uma janela de entrada da Microsoft. Se nenhuma janela for de pop up, verifique e permita janelas pop up no navegador.
  2. Aguarde Pronto aparecer na barra de status.

Capturar os logs de recursos

A ferramenta de rastreamento dinâmico fornece algumas funcionalidades para ajudá-lo a capturar os logs de recursos para solução de problemas.

  • Capturar: comece a capturar os logs de recursos em tempo real do Azure Web PubSub.
  • Desmarcar: desmarque os logs de recursos capturados em tempo real.
  • Filtrar log: a ferramenta de rastreamento ao vivo permite que você filtre os logs de recursos capturados em tempo real com uma palavra-chave específica. Os separadores comuns (por exemplo, espaço, vírgula, ponto e vírgula e assim por diante) serão tratados como parte da palavra-chave.
  • Status: o 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 em tempo real.

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 de evento de log, pode ser [Rastreamento|Depuração|Informativo|Aviso|Erro]
Nome do evento Nome da operação do evento
Mensagem Mensagem detalhada para o evento
Exceção A exceção de tempo de execução do serviço Azure Web PubSub
Hub Nome do Hub definido pelo usuário
ID da conexão Identidade da conexão
ID do Usuário Identidade do usuário
IP Endereço IP do cliente
Modelo de rota O modelo de rota da API
Método HTTP O método HTTP (POST/GET/PUT/DELETE)
URL O Uniform Resource Locator
ID de rastreamento O identificador exclusivo para a invocação
Código do Status O 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

Como habilitar logs de recursos

Atualmente, o Azure Web PubSub suporta a integração com oArmazenamento do Microsoft Azure.

  1. Vá para o portal do Azure.

  2. Na página Configurações de diagnóstico da instância de serviço do Azure Web PubSub, clique no link + Adicionar configuração de diagnóstico. Captura de tela da exibição de configurações de diagnóstico e 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 de destino, marque Arquivar em uma conta de armazenamento.

    Captura de tela da configuração dos detalhes da configuração de diagnóstico

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

    Observação

    A conta de armazenamento deve ser a mesma região do serviço Azure Web PubSub.

Arquivar em uma conta do Armazenamento do Microsoft 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 dos logs de arquivo incluem os elementos listados na seguinte tabela:

Formatar

Nome Descrição
time Hora do evento de log
Nível  Nível do evento de log
resourceId ID do recurso do Serviço do Azure SignalR
local Localização 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. Para obter mais detalhes, veja a tabela de propriedades abaixo

Tabela de Propriedades

Nome Descrição
collection Coleção do evento de log. Os valores permitidos são Connection, Authorization e Throttling
connectionId Identidade da conexão
userId Identidade do usuário
mensagem Mensagem detalhada do evento de log
hub Nome do Hub definido pelo usuário
routeTemplate O modelo de rota da API
httpMethod O método HTTP (POST/GET/PUT/DELETE)
url O Uniform Resource Locator
TraceId O identificador exclusivo para a invocação
statusCode O código de resposta HTTP
duration A duração entre a solicitação é recebida e processada
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 do log de arquivo morto:

{
  "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:

  1. Na página Configuração de diagnóstico, em Detalhes de destino, selecione **Enviar para o workspace do Log Analytics.
  2. Selecione a Assinatura que deseja usar.
  3. Selecione o workspace do Log Analytics a ser usado como o destino dos logs.

Para exibir os logs de recursos, siga estas etapas:

  1. Selecione Logs no Log Analytics de destino.

    Item de menu do Log Analytics

  2. Insira WebPubSubConnectivity,WebPubSubMessaging ou WebPubSubHttpRequest e selecione o intervalo de tempo para consultar o log. Para obter mais informações, veja Introdução ao Log Analytics no Azure Monitor.

    Log de consulta no Log Analytics

Para usar a consulta de exemplo no serviço do SignalR, siga as etapas.

  1. Selecione Logs no Log Analytics de destino.
  2. Selecione Queries para abrir o gerenciador de consultas.
  3. Selecione Resource type para agrupar consultas de amostra no tipo de recurso.
  4. Selecione Run para executar o script. Consulta de exemplo no Log Analytics

As colunas do log de arquivo incluem os elementos listados na seguinte tabela.

Nome Descrição
TimeGenerated Hora do evento de log
Cobrança Coleção do evento de log. Os valores permitidos são Connection, Authorization e Throttling
OperationName Nome da operação do evento
Localidade Localização do Serviço do Azure SignalR
Nível Nível do evento de log
CallerIpAddress Endereço IP do servidor/cliente
Mensagem Mensagem detalhada do evento de log
UserId Identidade do usuário
ConnectionId Identidade da conexão
ConnectionType Tipo da conexão. Os valores permitidos são: Server | Client. Server: conexão do lado do servidor; Client: conexão do lado do cliente
TransportType Tipo de transporte da conexão. Os valores permitidos são Websockets | ServerSentEvents | LongPolling

Solucionar problemas com os logs de recursos

Se você encontrar alterações inesperadas no número de conexões, aumentando ou diminuindo, poderá aproveitar os logs de recursos para solucionar o problema. Os problemas típicos geralmente são as alterações de quantidade inesperada das conexões, as conexões atingem os limites de conexão e a falha de autorização.

Alterações inesperadas no número de conexões

Interrupção de conexão inesperada

Se uma conexão for desconectada, os logs de recursos gravarã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. Embora ConnectionAborted seja geralmente um evento de interrupção de conexão inesperado e o motivo da desconexão será fornecido em message.

As opções estão listadas na tabela a seguir:

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 O erro transitório que ocorre no serviço Azure Web PubSub deve ser recuperado automaticamente

Aumento inesperado de conexões

Quando o número de conexões de cliente aumenta inesperadamente, a primeira coisa que você precisa fazer é filtrar as conexões supérfluas. Adicione uma identificação de usuário de teste exclusiva à conexão de cliente de teste. Depois, verifique os logs de recurso; se você vir mais de uma conexão de cliente com a mesma ID ou IP de usuário de teste, é provável que o lado do cliente crie 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ços do serviço Azure Web PubSub.