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. Os logs podem ser usados 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?

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 (ID do usuário, ID da conexão e assim por diante) e informações do evento (conectar, desconectar e assim por diante).
  • Os logs de mensagens fornecem informações de rastreamento para as mensagens do hub 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ções HTTP fornecem informações de rastreamento para solicitações HTTP para o serviço Azure Web PubSub. Por exemplo, método HTTP e 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 em tempo real

A ferramenta de rastreamento ao vivo do serviço Azure Web PubSub tem capacidade de 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.

Nota

As seguintes considerações se aplicam ao uso da ferramenta de rastreamento em tempo real:

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

Inicie a ferramenta de rastreamento ao vivo

Nota

Ao habilitar a chave de acesso, você usará o token de acesso para autenticar a ferramenta de rastreamento ao vivo. Caso contrário, você usará o Microsoft Entra ID para autenticar a ferramenta de rastreamento ao vivo. Você pode verificar se habilita ou não a chave de acesso na página Chaves do Serviço SignalR no portal do Azure.

Passos para a chave de acesso ativada

  1. Vá para o portal do Azure e sua página do Serviço SignalR.

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

  3. Selecione Ativar rastreamento em tempo real.

  4. Selecione o botão Salvar . Levará um momento para que as mudanças entrem em vigor.

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

    Captura de tela do lançamento da ferramenta de rastreamento ao vivo.

Passos para a chave de acesso desativada

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

  1. Vá para o portal do Azure e sua página do Serviço SignalR.
  2. Selecione Controlo de acesso (IAM) .
  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 da função 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 Rever + atribuir e aguarde a notificação de conclusão.

Visite a ferramenta de rastreamento ao vivo

  1. Vá para o portal do Azure e sua página do Serviço SignalR.

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

  3. Selecione Ativar rastreamento em tempo real.

  4. Selecione o botão Salvar . Levará um momento para que as mudanças entrem em vigor.

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

    Captura de tela do lançamento da ferramenta de rastreamento ao vivo.

Iniciar sessão com a sua conta Microsoft

  1. A ferramenta de rastreamento ao vivo exibirá uma janela de entrada da Microsoft. Se nenhuma janela for pop-up, verifique e permita janelas pop-up no seu navegador.
  2. Aguarde a exibição de Pronto na barra de status.

Capturar os logs de recursos

A ferramenta de rastreamento em tempo real fornece funcionalidade 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.
  • Limpar: limpe os logs de recursos capturados em tempo real.
  • Filtro de log: a ferramenta de rastreamento em tempo real permite filtrar 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 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
Time Registrar o tempo do evento
Nível do registo Nível de evento de log, pode ser [Trace | Depurar | Informativo | Advertência | Erro]
Nome do Evento Nome da operação do evento
Mensagem Mensagem detalhada para o evento
Exceção A exceção em 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 O modelo de rota da API
Método Http O método Http (POST/GET/PUT/DELETE)
URL O localizador uniforme de recursos
ID de rastreamento O identificador exclusivo para a invocação
Código de Estado O código de resposta Http
Duração O período entre a receção do pedido e o seu processamento
Cabeçalhos As informações adicionais passadas pelo cliente e pelo servidor com uma solicitação ou resposta HTTP

Capturar logs de recursos com o Azure Monitor

Como habilitar logs de recursos

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

  1. Aceda ao portal do Azure.

  2. Na página Configurações de diagnóstico da sua instância de serviço do 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 criar 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, marque Arquivar em uma conta de armazenamento.

    Captura de tela mostrando os detalhes da configuração da configuraçã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 do log de arquivamento incluem elementos listados nas tabelas a seguir:

Formato

Nome Descrição
hora Registrar o tempo do evento
nível Registrar nível de evento
resourceId ID de recurso do seu Serviço Azure SignalR
localização Localização do seu 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
propriedades Propriedades detalhadas relacionadas a esse evento de log. Para obter mais detalhes, consulte a tabela de propriedades abaixo

Tabela de Propriedades

Nome Descrição
Coleção Coleta do evento de log. Os valores permitidos são: Connection, Authorization e Throttling
connectionId Identidade da ligação
ID de Utilizador Identidade do utilizador
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 localizador uniforme de recursos
traceId O identificador exclusivo para a invocação
statusCode O código de resposta Http
duration O período entre o pedido é recebido e processado
cabeçalhos As 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 de 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. Na página Configuração de diagnóstico , em Detalhes de destino, selecione **Enviar para o espaço de trabalho do Log Analytics.
  2. Selecione a Subscrição que pretende utilizar.
  3. Selecione o espaço de trabalho do Log Analytics a ser usado como destino para os logs.

Para exibir os logs de recursos, execute estas etapas:

  1. Selecione Logs o Log Analytics de destino.

    Item de menu do Log Analytics

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

    Log de consulta no Log Analytics

Para usar uma consulta de exemplo para o serviço SignalR, siga as etapas abaixo.

  1. Selecione Logs o Log Analytics de destino.
  2. Selecione Queries para abrir o explorador de consultas.
  3. Selecione Resource type para agrupar consultas de exemplo em tipo de recurso.
  4. Selecione Run para executar o script. Exemplo de consulta 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
Coleção Coleta do evento de log. Os valores permitidos são: Connection, Authorization e Throttling
OperationName Nome da operação do evento
Location Localização do seu Serviço Azure SignalR
Level Registrar nível de evento
CallerIpAddress Endereço IP do seu servidor/cliente
Mensagem Mensagem detalhada do evento de log
UserId Identidade do utilizador
ConnectionId Identidade da ligação
Tipo de conexão Tipo de conexão. Os valores permitidos são: Server | Client. Server: conexão do lado do servidor; Client: conexão do lado do cliente
Tipo de Transporte Tipo de transporte da ligaçã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 sobre alterações inesperadas de quantidade de conexões, conexões que atingem limites de conexão e falha de autorização.

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

Queda inesperada de conexão

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

A diferença entre ConnectionAborted e ConnectionEnded é que ConnectionEnded é uma desconexão esperada que é acionada pelo lado do cliente ou servidor. Enquanto o ConnectionAborted é geralmente um evento de queda de conexão inesperada, e o motivo para a desconexão será fornecido em message.

Os motivos de anulação estão listados na tabela a seguir:

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 aumentar a escala da 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 Erro transitório 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 um ID de usuário de teste exclusivo à sua conexão de cliente de teste. Em seguida, verifique os logs de recursos; se você vir 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 serviço Azure Web PubSub.