Monitorizar e diagnosticar serviços numa configuração de desenvolvimento do computador local
O monitoramento, a deteção, o diagnóstico e a solução de problemas permitem que os serviços continuem com o mínimo de interrupção na experiência do usuário. Embora o monitoramento e o diagnóstico sejam essenciais em um ambiente de produção implantado real, a eficiência dependerá da adoção de um modelo semelhante durante o desenvolvimento de serviços para garantir que eles funcionem quando você mudar para uma configuração do mundo real. O Service Fabric facilita para os desenvolvedores de serviços a implementação de diagnósticos que podem funcionar perfeitamente em configurações de desenvolvimento local de máquina única e configurações de cluster de produção do mundo real.
Rastreamento de eventos para Windows
O Rastreamento de Eventos para Windows (ETW) é a tecnologia recomendada para rastrear mensagens no Service Fabric. Alguns benefícios do uso do ETW são:
- O ETW é rápido. Ele foi construído como uma tecnologia de rastreamento que tem impacto mínimo nos tempos de execução de código.
- O rastreamento ETW funciona perfeitamente em ambientes de desenvolvimento local e também em configurações de cluster do mundo real. Isso significa que você não precisa reescrever seu código de rastreamento quando estiver pronto para implantar seu código em um cluster real.
- O código do sistema do Service Fabric também usa o ETW para rastreamento interno. Isso permite que você visualize os rastreamentos do aplicativo intercalados com os rastreamentos do sistema do Service Fabric. Ele também ajuda você a entender mais facilmente as sequências e inter-relações entre o código do aplicativo e os eventos no sistema subjacente.
- Há suporte interno nas ferramentas do Visual Studio do Service Fabric para exibir eventos ETW. Os eventos ETW aparecem no modo de exibição Eventos de Diagnóstico do Visual Studio quando o Visual Studio é configurado corretamente com o Service Fabric.
Exibir eventos do sistema Service Fabric no Visual Studio
O Service Fabric emite eventos ETW para ajudar os desenvolvedores de aplicativos a entender o que está acontecendo na plataforma. Se você ainda não tiver feito isso, vá em frente e siga as etapas em Criando seu primeiro aplicativo no Visual Studio. Essas informações ajudarão você a colocar um aplicativo em funcionamento com o Visualizador de Eventos de Diagnóstico mostrando as mensagens de rastreamento.
Se a janela de eventos de diagnóstico não for exibida automaticamente, vá para a guia Exibir no Visual Studio, escolha Outras janelas e, em seguida , Visualizador de eventos de diagnóstico.
Cada evento tem informações de metadados padrão que informam o nó, o aplicativo e o serviço de onde o evento está vindo. Você também pode filtrar a lista de eventos usando a caixa Filtrar eventos na parte superior da janela de eventos. Por exemplo, você pode filtrar em Nome do Nó ou Nome do Serviço. E quando estiver a ver os detalhes do evento, também pode pausar utilizando o botão Pausar na parte superior da janela de eventos e retomar mais tarde sem qualquer perda de eventos.
Adicione seus próprios rastreamentos personalizados ao código do aplicativo
Os modelos de projeto do Visual Studio do Service Fabric contêm código de exemplo. O código mostra como adicionar rastreamentos ETW de código de aplicativo personalizado que aparecem no visualizador ETW do Visual Studio ao lado de rastreamentos de sistema do Service Fabric. A vantagem desse método é que os metadados são adicionados automaticamente aos rastreamentos e o Visualizador de Eventos de Diagnóstico do Visual Studio já está configurado para exibi-los.
Para projetos criados a partir dos modelos de serviço (stateless ou stateful) basta procurar a RunAsync
implementação:
- A chamada para
ServiceEventSource.Current.ServiceMessage
noRunAsync
método mostra um exemplo de um rastreamento ETW personalizado do código do aplicativo. - No arquivo ServiceEventSource.cs, você encontrará uma sobrecarga para o
ServiceEventSource.ServiceMessage
método que deve ser usado para eventos de alta frequência devido a razões de desempenho.
Para projetos criados a partir dos modelos de ator (stateless ou stateful):
- Abra o arquivo "ProjectName".cs onde ProjectName é o nome que você escolheu para seu projeto do Visual Studio.
- Encontre o código
ActorEventSource.Current.ActorMessage(this, "Doing Work");
no método DoWorkAsync. Este é um exemplo de um rastreamento ETW personalizado escrito a partir do código do aplicativo. - No arquivo ActorEventSource.cs, você encontrará uma sobrecarga para o
ActorEventSource.ActorMessage
método que deve ser usado para eventos de alta frequência devido a razões de desempenho.
Depois de adicionar o rastreamento ETW personalizado ao seu código de serviço, você pode criar, implantar e executar o aplicativo novamente para ver o(s) seu(s) evento(s) no Visualizador de Eventos de Diagnóstico. Se você depurar o aplicativo com F5, o Visualizador de Eventos de Diagnóstico será aberto automaticamente.
Próximos passos
O mesmo código de rastreamento que você adicionou ao seu aplicativo acima para diagnóstico local funcionará com ferramentas que você pode usar para exibir esses eventos ao executar seu aplicativo em um cluster do Azure. Confira estes artigos que discutem as diferentes opções para as ferramentas e descrevem como você pode configurá-las.