Diagnosticar cenários comuns com o Service Fabric
Este artigo ilustra cenários comuns que os usuários encontraram na área de monitoramento e diagnóstico com o Service Fabric. Os cenários apresentados abrangem as três camadas da malha de serviço: Aplicativo, Cluster e Infraestrutura. Cada solução usa o Application Insights e os logs do Azure Monitor, ferramentas de monitoramento do Azure, para concluir cada cenário. As etapas em cada solução fornecem aos usuários uma introdução sobre como usar o Application Insights e os logs do Azure Monitor no contexto do Service Fabric.
Pré-requisitos e recomendações
As soluções neste artigo usam as seguintes ferramentas. Recomendamos que você tenha estes configurados e configurados:
- Informações do aplicativo com o Service Fabric
- Habilitar o Diagnóstico do Azure em seu cluster
- Configurar um espaço de trabalho do Log Analytics
- Agente do Log Analytics para rastrear contadores de desempenho
Como posso ver exceções não tratadas na minha aplicação?
Navegue até o recurso do Application Insights com o qual seu aplicativo está configurado.
Selecione Pesquisar no canto superior esquerdo. Em seguida, selecione o filtro no painel seguinte.
Você verá muitos tipos de eventos (rastreamentos, solicitações, eventos personalizados). Escolha "Exceção" como filtro.
Ao clicar em uma exceção na lista, você pode ver mais detalhes, incluindo o contexto do serviço, se estiver usando o SDK do Service Fabric Application Insights.
Como posso ver que chamadas HTTP são utilizadas nos meus serviços?
No mesmo recurso do Application Insights, você pode filtrar "solicitações" em vez de exceções e exibir todas as solicitações feitas
Se você estiver usando o SDK do Service Fabric Application Insights, poderá ver uma representação visual dos serviços conectados entre si e o número de solicitações bem-sucedidas e com falha. À esquerda, selecione "Mapa de Aplicação"
Para obter mais informações sobre o mapa do aplicativo, visite a documentação do Mapa do aplicativo
Como faço para criar um alerta quando um nó fica inativo
Os eventos de nó são rastreados pelo cluster do Service Fabric. Navegue até o recurso de solução do Service Fabric Analytics chamado ServiceFabric(NameofResourceGroup)
Selecione o gráfico na parte inferior da folha intitulado "Resumo"
Aqui você tem muitos gráficos e blocos exibindo várias métricas. Selecione um dos gráficos e ele irá levá-lo para a Pesquisa de Log. Aqui você pode consultar quaisquer eventos de cluster ou contadores de desempenho.
Insira a seguinte consulta. Essas IDs de evento são encontradas na referência de eventos de nó
ServiceFabricOperationalEvent | where EventID >= 25622 and EventID <= 25626
Selecione "Nova Regra de Alerta" na parte superior e, agora, sempre que um evento chegar com base nessa consulta, você receberá um alerta no método de comunicação escolhido.
Como posso ser alertado sobre reversões de atualização de aplicativos?
Na mesma janela Pesquisa de Log que antes, insira a seguinte consulta para reversões de atualização. Essas IDs de evento são encontradas em Referência de eventos do aplicativo
ServiceFabricOperationalEvent | where EventID == 29623 or EventID == 29624
Selecione "Nova regra de alerta" na parte superior e, agora, sempre que um evento chegar com base nessa consulta, você receberá um alerta.
Como posso ver as métricas do contêiner?
Na mesma visualização com todos os gráficos, você verá alguns blocos para o desempenho de seus contêineres. Você precisa da solução Log Analytics Agent and Container Monitoring para que esses blocos sejam preenchidos.
Nota
Para instrumentar a telemetria de dentro do seu contêiner, você precisará adicionar o pacote nuget do Application Insights para contêineres.
Como posso monitorizar os contadores de desempenho?
Depois de adicionar o agente do Log Analytics ao cluster, você precisa adicionar os contadores de desempenho específicos que deseja acompanhar. Navegue até a página do espaço de trabalho do Log Analytics no portal – na página da solução, a guia do espaço de trabalho está no menu à esquerda.
Quando estiver na página do espaço de trabalho, selecione "Configurações avançadas" no mesmo menu à esquerda.
Selecione Contadores de Desempenho do Windows de Dados > (Contadores de Desempenho de Dados > Linux para máquinas Linux) para começar a coletar contadores específicos de seus nós por meio do agente do Log Analytics. Aqui estão exemplos do formato para os contadores adicionarem:
.NET CLR Memory(<ProcessNameHere>)\\# Total committed Bytes
Processor(_Total)\\% Processor Time
No início rápido, VotingData e VotingWeb são os nomes de processo usados, portanto, o rastreamento desses contadores seria parecido com
.NET CLR Memory(VotingData)\\# Total committed Bytes
.NET CLR Memory(VotingWeb)\\# Total committed Bytes
Isso permite que você veja como sua infraestrutura está lidando com suas cargas de trabalho e defina alertas relevantes com base na utilização de recursos. Por exemplo, você pode definir um alerta se a utilização total do processador for superior a 90% ou inferior a 5%. O nome do contador que você usaria para isso é "% Tempo do processador". Você pode fazer isso criando uma regra de alerta para a seguinte consulta:
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | where CounterValue >= 90 or CounterValue <= 5.
Como faço para acompanhar o desempenho dos meus Serviços e Atores Confiáveis?
Para acompanhar o desempenho de Serviços ou Atores Confiáveis em seus aplicativos, você também deve coletar os contadores Ator do Service Fabric, Método do Ator, Serviço e Método de Serviço. Aqui estão exemplos de contadores de serviço e desempenho de atores confiáveis para coletar
Nota
Os contadores de desempenho do Service Fabric não podem ser coletados pelo agente do Log Analytics atualmente, mas podem ser coletados por outras soluções de diagnóstico
Service Fabric Service(*)\\Average milliseconds per request
Service Fabric Service Method(*)\\Invocations/Sec
Service Fabric Actor(*)\\Average milliseconds per request
Service Fabric Actor Method(*)\\Invocations/Sec
Confira nestes links a lista completa de contadores de desempenho em Serviços e Atores Confiáveis
Próximos passos
- Procurar erros comuns de ativação do pacote de código
- Configurar alertas na IA para ser notificado sobre alterações no desempenho ou uso
- A Deteção Inteligente no Application Insights realiza uma análise proativa da telemetria que está sendo enviada à IA para avisá-lo de possíveis problemas de desempenho
- Saiba mais sobre os alertas de logs do Azure Monitor para ajudar na deteção e diagnóstico.
- Para clusters locais, os logs do Azure Monitor oferecem um gateway (HTTP Forward Proxy) que pode ser usado para enviar dados para logs do Azure Monitor. Leia mais sobre isso em Conectando computadores sem acesso à Internet aos logs do Azure Monitor usando o gateway do Log Analytics
- Familiarize-se com os recursos de pesquisa e consulta de logs oferecidos como parte dos logs do Azure Monitor
- Para obter uma visão geral detalhada dos logs do Azure Monitor e o que ele oferece, leia O que são os logs do Azure Monitor?