Monitorizar e diagnosticar serviços numa configuração de desenvolvimento do computador local

A monitorização, deteção, diagnóstico e resolução de problemas permitem que os serviços continuem com interrupções mínimas na experiência do utilizador. Embora a monitorização e os diagnósticos sejam fundamentais num ambiente de produção implementado real, a eficiência dependerá da adoção de um modelo semelhante durante o desenvolvimento de serviços para garantir que funcionam quando se muda para uma configuração do mundo real. O Service Fabric torna mais fácil para os programadores de serviços implementarem diagnósticos que podem funcionar de forma totalmente integrada tanto em configurações de desenvolvimento local de máquina única como em configurações de clusters de produção do mundo real.

Rastreio de Eventos para Windows

O Rastreio de Eventos para Windows (ETW) é a tecnologia recomendada para rastrear mensagens no Service Fabric. Algumas vantagens da utilização do ETW são:

  • ETW é rápido. Foi criada como uma tecnologia de rastreio que tem um impacto mínimo nos tempos de execução do código.
  • O rastreio etw funciona perfeitamente em ambientes de desenvolvimento local e também configurações de clusters do mundo real. Isto significa que não tem de reescrever o código de rastreio quando estiver pronto para implementar o código num cluster real.
  • O código do sistema do Service Fabric também utiliza ETW para rastreio interno. Isto permite-lhe ver os rastreios da sua aplicação intercalados com rastreios do sistema do Service Fabric. Também o ajuda a compreender mais facilmente as sequências e inter-interligações entre o código da aplicação e os eventos no sistema subjacente.
  • Existe suporte incorporado nas ferramentas do Service Fabric Visual Studio para ver eventos ETW. Os eventos ETW aparecem na vista Eventos de Diagnóstico do Visual Studio assim que o Visual Studio estiver configurado corretamente com o Service Fabric.

Ver eventos do sistema do Service Fabric no Visual Studio

O Service Fabric emite eventos ETW para ajudar os programadores de aplicações a compreender o que está a acontecer na plataforma. Se ainda não o fez, siga os passos em Criar a sua primeira aplicação no Visual Studio. Estas informações irão ajudá-lo a colocar uma aplicação em execução com o Visualizador de Eventos de Diagnóstico a mostrar as mensagens de rastreio.

  1. Se a janela de eventos de diagnóstico não for apresentada automaticamente, aceda ao separador Ver no Visual Studio, selecione Outro Windows e, em seguida, Visualizador de Eventos de Diagnóstico.

  2. Cada evento tem informações de metadados padrão que lhe dizem o nó, a aplicação e o serviço de onde o evento é proveniente. Também pode filtrar a lista de eventos com a caixa Filtrar eventos na parte superior da janela de eventos. Por exemplo, pode filtrar o Nome do Nó ou o Nome do Serviço. E quando estiver a analisar os detalhes do evento, também pode colocar em pausa utilizando o botão Colocar em Pausa na parte superior da janela de eventos e retomar mais tarde sem perder eventos.

    Visualizador de Eventos de Diagnóstico do Visual Studio

Adicionar os seus próprios rastreios personalizados ao código da aplicação

Os modelos de projeto do Visual Studio do Service Fabric contêm código de exemplo. O código mostra como adicionar rastreios ETW de código de aplicação personalizados que aparecem no visualizador etw do Visual Studio juntamente com os rastreios de sistema do Service Fabric. A vantagem deste método é que os metadados são adicionados automaticamente aos rastreios e o Visualizador de Eventos de Diagnóstico do Visual Studio já está configurado para os apresentar.

Para projetos criados a partir dos modelos de serviço (sem estado ou com estado), basta procurar a RunAsync implementação:

  1. A chamada para ServiceEventSource.Current.ServiceMessage no RunAsync método mostra um exemplo de um rastreio ETW personalizado do código da aplicação.
  2. No ficheiro ServiceEventSource.cs , encontrará uma sobrecarga para o ServiceEventSource.ServiceMessage método que deve ser utilizado para eventos de alta frequência devido a motivos de desempenho.

Para projetos criados a partir dos modelos de ator (sem estado ou com estado):

  1. Abra o ficheiro "ProjectName".cs em que ProjectName é o nome que escolheu para o projeto do Visual Studio.
  2. Localize o código ActorEventSource.Current.ActorMessage(this, "Doing Work"); no método DoWorkAsync . Este é um exemplo de um rastreio ETW personalizado escrito a partir do código da aplicação.
  3. No ficheiro ActorEventSource.cs, encontrará uma sobrecarga para o ActorEventSource.ActorMessage método que deve ser utilizado para eventos de alta frequência devido a motivos de desempenho.

Depois de adicionar o rastreio ETW personalizado ao seu código de serviço, pode criar, implementar e executar a aplicação novamente para ver os seus eventos no Visualizador de Eventos de Diagnóstico. Se depurar a aplicação com F5, o Visualizador de Eventos de Diagnóstico será aberto automaticamente.

Passos seguintes

O mesmo código de rastreio que adicionou à sua aplicação acima para diagnósticos locais funcionará com ferramentas que pode utilizar para ver estes eventos ao executar a sua aplicação num cluster do Azure. Consulte estes artigos que abordam as diferentes opções das ferramentas e descreva como pode configurá-las.