Monitorar o Serviço do SignalR

Este artigo descreve:

  • Os tipos de dados de monitoramento que você pode coletar para esse serviço.
  • Maneiras de analisar esses dados.

Observação

Se já estiver familiarizado com esse serviço e/ou com o Azure Monitor e apenas quiser saber como analisar os dados de monitoramento, confira a seção Analisar ao final deste artigo.

Quando seus aplicativos e processos de negócios críticos dependem de recursos do Azure, você precisa monitorar e receber alertas para o seu sistema. O serviço do Azure Monitor coleta e agrega métricas e logs de cada componente do seu sistema. O Azure Monitor lhe fornece uma exibição da disponibilidade, desempenho e resiliência e notifica você em caso de problemas. Você pode usar o portal do Azure, o PowerShell, a CLI do Azure, a API REST ou as bibliotecas de cliente para configurar e exibir dados de monitoramento.

Tipos de recurso

O Azure usa o conceito de tipos de recursos e IDs para identificar tudo em uma assinatura. O Azure Monitor organiza os principais dados de monitoramento de maneira similar em métricas e logs com base em tipos de recursos, também chamados de namespaces. Métricas e logs diferentes estão disponíveis para diferentes tipos de recursos. Seu serviço pode estar associado a mais de um tipo de recurso.

Os tipos de recurso também fazem parte das IDs de recursos para cada recurso em execução no Azure. Por exemplo, um tipo de recurso para uma máquina virtual é Microsoft.Compute/virtualMachines. Para obter uma lista de serviços e os tipos de recursos associados a eles, confira Provedores de recursos.

Para obter mais informações sobre os tipos de recursos do Serviço do Azure SignalR, consulte a referência de dados de monitoramento do Serviço do Azure SignalR.

Armazenamento de dados

Para o Azure Monitor:

  • Os dados de métricas são armazenados no banco de dados de métricas do Azure Monitor.
  • Os dados de log são armazenados no repositório de logs do Azure Monitor. O Log Analytics é uma ferramenta no portal do Azure que pode consultar esse repositório.
  • O log de atividades do Azure é um repositório separado com uma interface própria no portal do Azure.

Opcionalmente, você pode rotear dados de log de atividades e métricas para o repositório de logs do Azure Monitor. Em seguida, você pode usar o Log Analytics para consultar os dados e correlacioná-los com outros dados de log.

Muitos serviços podem usar configurações de diagnóstico para enviar dados de métricas e logs para outros locais de armazenamento fora do Azure Monitor. Os exemplos incluem o Armazenamento do Azure, sistemas de parceiros hospedados e sistemas de parceiros não Azure usando os Hubs de Eventos.

Para obter informações detalhadas sobre como o Azure Monitor armazena dados, confira Plataforma de dados do Azure Monitor.

Os logs do Serviço do Azure SignalR são armazenados na conta de armazenamento configurada nas configurações de diagnóstico. Um contêiner chamado insights-logs-alllogs é 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 é uma combinação de resource ID e Date Time. Os arquivos de log são divididos por hour. Portanto, os minutos sempre são m=00.

Todos os logs são armazenados no formato JSON (JavaScript Object Notation). O código a seguir é um exemplo de uma cadeia de caracteres JSON do log de arquivo morto:

{
    "properties": {
        "message": "Entered Serverless mode.",
        "type": "ConnectivityLogs",
        "collection": "Connection",
        "connectionId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "userId": "User",
        "transportType": "WebSockets",
        "connectionType": "Client"
    },
    "operationName": "ServerlessModeEntered",
    "category": "AllLogs",
    "level": "Informational",
    "callerIpAddress": "xxx.xxx.xxx.xxx",
    "time": "2019-01-01T00:00:00Z",
    "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX",
    "location": "xxxx"
}

Os nomes de campo para os destinos de armazenamento diferem ligeiramente dos nomes de campo do Log Analytics. Para obter detalhes sobre o mapeamento de nomes de campo entre as tabelas de armazenamento e do Log Analytics, consulte Mapeamento de tabela do Log de Recursos.

Métricas de plataforma do Azure Monitor

O Azure Monitor fornece métricas de plataforma para a maioria dos serviços. Essas métricas são:

  • Definidas individualmente para cada namespace.
  • Armazenadas no banco de dados de métricas da série temporal do Azure Monitor.
  • Leves e capazes de dar suporte a alertas quase em tempo real.
  • Usadas para acompanhar o desempenho de um recurso ao longo do tempo.

Coleta: O Azure Monitor coleta as métricas da plataforma automaticamente. Nenhuma configuração é necessária.

Roteamento: você também pode rotear métricas de plataforma para Logs do Azure Monitor / Log Analytics para que você possa consultá-los com outros dados de log. Para obter mais informações, confira a Configuração de diagnóstico de métricas. Para saber como definir as configurações de diagnóstico para um serviço, confira Criar configurações de diagnóstico no Azure Monitor.

Para obter uma lista de todas as métricas que é possível coletar para todos os recursos no Azure Monitor, confira Métricas com suporte no Azure Monitor.

Métricas do Serviço do Azure SignalR

Para obter a lista de todas as métricas disponíveis para o Serviço do Azure SignalR, consulte a referência de dados de monitoramento do Serviço do Azure SignalR.

Granularidade da Contagem de Mensagens

A granularidade mínima da Contagem de Mensagens é de 2 KB de tráfego de dados de saída. Se um cliente enviar mensagens pequenas ou pouco frequentes que totalizam menos de 2 KB em um período de tempo de amostragem, a contagem de mensagens será zero (0), mesmo que as mensagens tenham sido enviadas. A maneira de verificar um pequeno número ou tamanho de mensagens é usando a métrica Tráfego de Saída, que é uma contagem de bytes enviados.

Erros do sistema e erros do usuário

As métricas Erros do Usuário e Erros do Sistema são a porcentagem de tentativas de operações, como conexão ou envio de mensagem que falharam. Um erro do sistema é uma falha na lógica interna do sistema. Um erro de usuário geralmente é um erro de aplicativo, geralmente relacionado à rede. Normalmente, a porcentagem de erros do sistema deve ser baixa, perto de zero.

Importante

Em algumas situações, a taxa de Erros do usuário será muito alta, especialmente no modo sem servidor. Em alguns navegadores, o cliente do SignalR não é desligado normalmente quando um usuário fecha a página da Web. Uma conexão pode permanecer aberta, mas sem resposta, até que Serviço do Azure SignalR finalmente feche devido ao tempo limite. O encerramento do tempo limite é contado na métrica de Erros do Usuário.

Métricas adequadas para dimensionamento automático

A Utilização da Cota de Conexão e a Carga do Servidor mostram o percentual de utilização ou carga em comparação com a contagem de unidades alocada no momento. Essas métricas costumam ser usadas em regras de dimensionamento automático. Por exemplo, se a alocação atual for uma unidade e houver 750 conexões com o serviço, a Utilização da Cota de Conexão será 750/1000 = 0,75. A Carga do Servidor é calculada da mesma forma, usando valores para capacidade de computação. Para obter mais informações, consulte Dimensionar automaticamente unidades de um Serviço do Azure SignalR.

Observação

O dimensionamento automático é um recurso apenas da Camada Premium.

Logs de recursos do Azure Monitor

Os logs de recursos fornecem insights sobre as operações que foram executadas por um recurso do Azure. Os logs são gerados automaticamente, mas você precisa encaminhá-los para os logs do Azure Monitor para serem salvos ou consultados. Os logs são organizados em categorias. Um determinado namespace pode ter várias categorias de logs de recursos.

Coleta: Os logs de recursos não serão coletados nem armazenados enquanto você não criar uma configuração de diagnóstico e encaminhar os logs para um ou mais locais. Ao criar uma configuração de diagnóstico, você especifica quais categorias de logs coletar. Há várias maneiras de criar e manter configurações de diagnóstico, incluindo o portal do Azure, programaticamente e por meio do Azure Policy.

Encaminhamento: O padrão sugerido é encaminhar os logs de recursos para os logs do Azure Monitor para que você possa consultá-los com outros dados de logs. Também estão disponíveis outros locais, como o Armazenamento do Microsoft Azure, os Hubs de Eventos do Azure e determinados parceiros de monitoramento da Microsoft. Para obter mais informações, confira Logs de recursos do Azure e Destinos de logs de recursos.

Para obter informações detalhadas sobre como coletar, armazenar e encaminhar logs de recursos, confira Configurações de diagnóstico no Azure Monitor.

Para obter uma lista de todas as categorias de logs de recursos disponíveis no Azure Monitor, confira Logs de recursos com suporte no Azure Monitor.

Todos os logs de recursos no Azure Monitor têm os mesmos campos de cabeçalho, seguidos de campos específicos do serviço. O esquema comum está descrito em Esquema do log de recursos do Azure Monitor.

Categorias de log de recursos

Os logs de recurso são agrupados em grupos de categorias. Os grupos de categoria são uma coleção de logs diferentes para ajudá-lo a atingir diferentes objetivos de monitoramento. O Azure SignalR dá suporte a logs de conectividade, logs de mensagens e logs de solicitação HTTP.

Logs de conectividade

Os logs de conectividade fornecem informações detalhadas para conexões de hub do SignalR. Por exemplo:

  • Informações básicas, como ID de usuário, ID de conexão e tipo de transporte
  • Informações de eventos como eventos de conexão, desconexão e anulação

Portanto, o log de conectividade é útil para solucionar problemas de conexão. Para solução de problemas típicos relacionados à conexão, confira os problemas relacionados à conexão.

Logs de mensagens

Os logs de mensagens fornecem informações de rastreamento para as mensagens do hub SignalR recebidas e enviadas através do serviço SignalR, por exemplo, o ID de rastreamento e o tipo da mensagem. A ID de rastreamento e o tipo de mensagem também ficam registrados no servidor do aplicativo. Normalmente, a mensagem é registrada ao chegar ou sair do serviço ou do servidor. Dessa forma, os logs de mensagens são úteis para solucionar problemas relacionados a mensagens. Para solução de problemas típicos relacionado a mensagens, confira os problemas relacionados a mensagens.

Observação

Esse tipo de log é gerado para cada mensagem. Se as mensagens forem enviadas com frequência, os logs de mensagens poderão afetar o desempenho do serviço SignalR. Contudo, você pode escolher diferentes comportamentos de coleta para minimizar o impacto no desempenho. Confira Comportamentos de coleta de logs de recurso.

Logs de solicitação http

Os logs de solicitação HTTP fornecem informações detalhadas para as solicitações HTTP recebidas pelo Azure SignalR, por exemplo, o código de status e o URL da solicitação. O log de solicitação http é útil para solucionar problemas relacionados à solicitação.

Para as categorias de log de recursos disponíveis, as suas tabelas associadas do Log Analytics e os esquemas de logs do Serviço do Azure SignalR, confira Referência de dados de monitoramento do Serviço do Azure SignalR.

Comportamentos de coleta de logs de recurso

Há dois cenários típicos para usar os logs de recursos, especialmente para logs de mensagens.

  • Qualidade da mensagem registra se a mensagem foi enviada ou recebida com êxito ou registra todas as mensagens entregues por meio do serviço SignalR.
  • Desempenho registra a latência da mensagem ou rastreia a mensagem em algumas conexões em vez de todas as conexões.

Portanto, o serviço SignalR fornece dois tipos de comportamentos de coleta:

  • Coletar tudo, que coleta logs em todas as conexões.
  • Coletar parcialmente, que coleta logs em algumas conexões específicas.

Para obter mais detalhes sobre comportamentos de coleta dos logs de recurso e como configurá-los, consulte Comportamentos de coleta dos logs de recurso.

Log de atividades do Azure

O log de atividades contém eventos de nível de assinatura que acompanham as operações de cada recurso do Azure, conforme visto fora desse recurso, por exemplo, criar um recurso ou iniciar uma máquina virtual.

Coleta: Os eventos do log de Atividades são gerados e coletados automaticamente em um repositório separado para serem vistos no portal do Azure.

Roteamento: você pode enviar dados de log de atividades para os logs do Azure Monitor para analisá-los junto com outros dados de log. Também estão disponíveis outros locais, como o Armazenamento do Microsoft Azure, os Hubs de Eventos do Azure e determinados parceiros de monitoramento da Microsoft. Para obter mais informações sobre como encaminhar o log de atividades, confira Visão geral do log de atividades do Azure.

Analisar dados de monitoramento

Existem várias ferramentas para analisar os dados de monitoramento.

Ferramentas do Azure Monitor

O Azure Monitor dá suporte às seguintes ferramentas básicas:

As ferramentas que permitem uma visualização mais complexa incluem:

  • Painéis, que permitem que você combine diferentes tipos de dados em um único painel no portal do Azure.
  • Pastas de Trabalho, relatórios personalizáveis que você pode criar no portal do Azure. As pastas de trabalho podem incluir texto, métricas e consultas de log.
  • Grafana, uma ferramenta de plataforma aberta que oferece excelência em termos de painéis operacionais. Você pode usar o Grafana para criar painéis que incluem dados de várias fontes além do Azure Monitor.
  • Power BI, um serviço de análises corporativas que fornece visualizações interativas nas diversas fontes de dados. Você pode configurar o Power BI para importar dados de log automaticamente do Azure Monitor a fim de aproveitar essas visualizações.

Ferramentas de exportação do Azure Monitor

Você pode obter dados do Azure Monitor em outras ferramentas usando os seguintes métodos:

Para começar a usar a API REST do Azure Monitor, confira o Passo a passo da API REST de monitoramento do Azure.

Consultas do Kusto

Analise os dados de monitoramento nos logs do Azure Monitor/no repositório do Log Analytics usando o KQL (Linguagem de Consulta Kusto).

Importante

Quando você seleciona Logs no menu do serviço no portal, o Log Analytics é aberto com o escopo da consulta definido para o serviço atual. Esse escopo significa que as consultas de log incluirão apenas dados desse tipo de recurso. Se você quiser executar uma consulta que inclua dados de outros serviços do Azure, selecione Logs no menu do Azure Monitor. Confira Escopo da consulta de log e intervalo de tempo no Log Analytics do Azure Monitor para obter detalhes.

Para obter uma lista de consultas comuns para qualquer serviço, confira a Interface de consultas do Log Analytics.

Para consultas Kusto de exemplo para o Serviço do Azure SignalR, confira Consultas para a tabela SignalRServiceDiagnosticLogs.

Observação

Os nomes do campo de consulta para os destinos de armazenamento diferem ligeiramente dos nomes de campo do Log Analytics. Para obter detalhes sobre os mapeamentos de nomes de campo entre as tabelas de armazenamento e do Log Analytics, consulte Mapeamento de tabela do Log de Recursos.

Alertas

Os alertas do Azure Monitor o notificam proativamente quando condições específicas são encontradas em seus dados de monitoramento. Os alertas permitem que você identifique e resolva problemas no seu sistema antes que os clientes os percebam. Para saber mais, confira Alertas do Azure Monitor.

Existem muitas fontes de alertas comuns para os recursos do Azure. Para obter exemplos de alertas comuns para recursos do Azure, confira Amostra de consultas de alerta de logs. O site Alertas de Linha de Base do Azure Monitor (AMBA) fornece um método semi-automatizado de implementação de importantes alertas, painéis e diretrizes de métricas da plataforma. O site se aplica a um subconjunto de serviços do Azure em contínua expansão, incluindo todos os serviços que fazem parte da Zona de Destino do Azure (ALZ).

O esquema de alerta comum padroniza a consumo do Azure Monitor para notificações de alerta no Azure. Para obter mais informações, confira Esquema de alertas comuns.

Tipos de alertas

Você pode receber alertas sobre qualquer fonte de dados de log ou métrica na plataforma de dados do Azure Monitor. Existem muitos tipos diferentes de alertas dependendo dos serviços que você está monitorando e dos dados de monitoramento que você está coletando. Diferentes tipos de alertas têm diversos benefícios e desvantagens. Para obter mais informações, confira Escolha o tipo de alerta de monitoramento correto para você.

A lista a seguir descreve os tipos de alertas do Azure Monitor que você pode criar:

  • Os Alertas de métricas avaliam as métricas de recursos a intervalos regulares. As métricas podem ser métricas de plataforma, métricas personalizadas, logs do Azure Monitor convertidos em métricas ou métricas do Application Insights. Os alertas de métrica também podem aplicar várias condições e limites dinâmicos.
  • Os Alertas de logs permitem que os usuários usem uma consulta do Log Analytics para avaliar os logs de recursos com uma frequência predefinida.
  • Os Alertas do log de atividades são disparados quando ocorre um novo evento de log de atividades que corresponda às condições definidas. Os alertas do Resource Health e da Integridade do Serviço são alertas do log de atividades que relatam a integridade do serviço e do recurso.

Alguns serviços do Azure também dão suporte a alertas de detecção inteligentes, alertas do Prometheus ou regras de alerta recomendadas.

No caso de alguns serviços, você pode monitorar em larga escala aplicando a mesma regra de alerta de métricas a vários recursos do mesmo tipo que existem na mesma região do Azure. Notificações individuais são enviadas para cada recurso monitorado. Para ver os serviços e as nuvens do Azure com suporte, confira Monitorar vários recursos com uma regra de alerta.

Regras de alerta do Serviço do Azure SignalR

A tabela a seguir lista algumas regras de alerta sugeridas para o Serviço do Azure SignalR. Esses alertas são apenas exemplos. Você pode definir alertas para qualquer métrica, entrada de log ou entrada de log de atividades listada na Referência de dados de monitoramento para o Serviço do Azure SignalR.

Tipo de alerta Condição Descrição
Métricas de plataforma Utilização da cota de conexões Sempre que a utilização máxima da cota de conexão for maior que o limite dinâmico
Métricas de plataforma Excluir o SignalR Sempre que o Log de Atividades tiver um evento com Category='Administrative', Signal name='Delete SignalR (SignalR)'

Recomendações do Assistente

Para alguns serviços, se ocorrerem condições críticas ou alterações iminentes durante operações de recurso, um alerta será exibido na página de Visão geral do serviço no portal. Você pode encontrar mais informações e correções recomendadas para o alerta nas Recomendações do assistente em Monitoramento no menu à esquerda. Durante as operações normais, nenhuma recomendação do assistente será exibida.

Para obter mais informações sobre o Assistente do Azure, confira Visão geral do Assistente do Azure.