Monitorizar e diagnosticar serviços numa configuração de desenvolvimento do computador localMonitor and diagnose services in a local machine development setup

Monitoramento, detetar e diagnosticar e resolução de problemas permitem para os serviços continuar com a mínima interrupção para a experiência do usuário.Monitoring, detecting, diagnosing, and troubleshooting allow for services to continue with minimal disruption to the user experience. Enquanto a monitorização e diagnóstico é fundamental num ambiente de produção real de implementada, a eficiência irá depender de adotar um modelo semelhante durante o desenvolvimento de serviços para garantir que eles funcionam quando passar para um programa de configuração do mundo real.While monitoring and diagnostics are critical in an actual deployed production environment, the efficiency will depend on adopting a similar model during development of services to ensure they work when you move to a real-world setup. Service Fabric torna mais fácil para os desenvolvedores de serviço implementar o diagnóstico de forma totalmente integrada pode trabalhar em configurações de desenvolvimento local da única máquina e configurações de cluster de produção do mundo real.Service Fabric makes it easy for service developers to implement diagnostics that can seamlessly work across both single-machine local development setups and real-world production cluster setups.

Rastreamento de eventos para WindowsEvent Tracing for Windows

Rastreamento de eventos para Windows (ETW) é a tecnologia recomendada para mensagens de rastreio no Service Fabric.Event Tracing for Windows (ETW) is the recommended technology for tracing messages in Service Fabric. Alguns dos benefícios de usando o ETW são:Some benefits of using ETW are:

  • ETW é rápida.ETW is fast. Ele foi criado como uma tecnologia de rastreamento que tenha um impacto mínimo nos tempos de execução de código.It was built as a tracing technology that has minimal impact on code execution times.
  • Rastreamento ETW funciona perfeitamente em ambientes de desenvolvimento local e também as configurações de cluster do mundo real.ETW tracing works seamlessly across local development environments and also real-world cluster setups. Isso significa que não precisa reescrever seus códigos de rastreamento, quando estiver pronto para implementar o código para um cluster real.This means you don't have to rewrite your tracing code when you are ready to deploy your code to a real cluster.
  • Código de sistema do Service Fabric também usa o ETW para rastreamento interno.Service Fabric system code also uses ETW for internal tracing. Isto permite-lhe ver os rastreios de aplicação intercalados com rastreios de sistema do Service Fabric.This allows you to view your application traces interleaved with Service Fabric system traces. Ele também ajuda-o a compreender mais facilmente as sequências e interrelationships entre o código de aplicativo e eventos do sistema subjacente.It also helps you to more easily understand the sequences and interrelationships between your application code and events in the underlying system.
  • Não existe suporte incorporado nas ferramentas do Service Fabric Visual Studio para ver eventos do ETW.There is built-in support in Service Fabric Visual Studio tools to view ETW events. Eventos do ETW aparecem na vista de eventos de diagnóstico do Visual Studio, assim que o Visual Studio está corretamente configurada com o Service Fabric.ETW events appear in the Diagnostic Events view of Visual Studio once Visual Studio is correctly configured with Service Fabric.

Ver eventos de sistema do Service Fabric no Visual StudioView Service Fabric system events in Visual Studio

Service Fabric emite eventos do ETW para o ajudar a compreender o que está acontecendo na plataforma de desenvolvedores de aplicativos.Service Fabric emits ETW events to help application developers understand what's happening in the platform. Se ainda não o fez, vá em frente e siga os passos em criando sua primeira aplicação no Visual Studio.If you haven't already done so, go ahead and follow the steps in Creating your first application in Visual Studio. Essas informações ajudarão a uma aplicação em execução com o Visualizador de eventos de diagnóstico que mostra as mensagens de rastreio.This information will help you get an application up and running with the Diagnostics Events Viewer showing the trace messages.

  1. Se o diagnóstico de janela de eventos não mostra automaticamente, vá para o View separador no Visual Studio, escolha Other Windows e, em seguida Visualizador de eventos de diagnóstico.If the diagnostics events window does not automatically show, Go to the View tab in Visual Studio, choose Other Windows and then Diagnostic Events Viewer.

  2. Cada evento tem informações de metadados padrão que diz a o nó, a aplicação e o serviço que é proveniente do evento.Each event has standard metadata information that tells you the node, application and service the event is coming from. Também pode filtrar a lista de eventos utilizando o filtrar eventos caixa na parte superior da janela de eventos.You can also filter the list of events by using the Filter events box at the top of the events window. Por exemplo, poderá filtrar na nome do nó ou nome do serviço.For example, you can filter on Node Name or Service Name. E quando estiver olhando detalhes do evento, pode também colocar em pausa utilizando a colocar em pausa botão na parte superior da janela de eventos e retomar mais tarde sem nenhuma perda de eventos.And when you're looking at event details, you can also pause by using the Pause button at the top of the events window and resume later without any loss of events.

    Visualizador de eventos de diagnóstico do Visual Studio

Adicionar o seu próprio rastreios personalizados ao código do aplicativoAdd your own custom traces to the application code

Os modelos de projeto do Service Fabric Visual Studio contêm código de exemplo.The Service Fabric Visual Studio project templates contain sample code. O código mostra como adicionar rastreios ETW de código do aplicativo personalizada que aparecem no Visualizador de ETW do Visual Studio juntamente com os rastreios de sistema do Service Fabric.The code shows how to add custom application code ETW traces that show up in the Visual Studio ETW viewer alongside system traces from Service Fabric. A vantagem deste método é que metadados é adicionado automaticamente à rastreios e o Visual Studio Visualizador de eventos diagnóstico já está configurado para exibi-las.The advantage of this method is that metadata is automatically added to traces, and the Visual Studio Diagnostic Events Viewer is already configured to display them.

Para projetos criados a partir da modelos de serviço (com ou sem estado) apenas procura o RunAsync implementação:For projects created from the service templates (stateless or stateful) just search for the RunAsync implementation:

  1. A chamada para ServiceEventSource.Current.ServiceMessage no RunAsync método mostra um exemplo de um rastreio ETW personalizada do código do aplicativo.The call to ServiceEventSource.Current.ServiceMessage in the RunAsync method shows an example of a custom ETW trace from the application code.
  2. Na ServiceEventSource.cs arquivo, encontrará uma sobrecarga para o ServiceEventSource.ServiceMessage método que deve ser utilizado para eventos de elevada frequência devido a motivos de desempenho.In the ServiceEventSource.cs file, you will find an overload for the ServiceEventSource.ServiceMessage method that should be used for high-frequency events due to performance reasons.

Para projetos criados a partir da modelos de ator (com ou sem estado):For projects created from the actor templates (stateless or stateful):

  1. Abra o "ProjectName".-cs ficheiro onde ProjectName é o nome que escolheu para o seu projeto do Visual Studio.Open the "ProjectName".cs file where ProjectName is the name you chose for your Visual Studio project.
  2. Encontrar o código ActorEventSource.Current.ActorMessage(this, "Doing Work"); no DoWorkAsync método.Find the code ActorEventSource.Current.ActorMessage(this, "Doing Work"); in the DoWorkAsync method. Este é um exemplo de um rastreio ETW personalizado escrito a partir do código da aplicação.This is an example of a custom ETW trace written from application code.
  3. No ficheiro ActorEventSource.cs, encontrará uma sobrecarga para o ActorEventSource.ActorMessage método que deve ser utilizado para eventos de elevada frequência devido a motivos de desempenho.In file ActorEventSource.cs, you will find an overload for the ActorEventSource.ActorMessage method that should be used for high-frequency events due to performance reasons.

Depois de adicionar o rastreamento do ETW personalizado ao seu código de serviço, pode criar, implementar e executar o aplicativo novamente para ver os seus eventos no Visualizador de eventos de diagnóstico.After adding custom ETW tracing to your service code, you can build, deploy, and run the application again to see your event(s) in the Diagnostic Events Viewer. Se depurar o aplicativo com F5, Visualizador de eventos de diagnóstico será aberta automaticamente.If you debug the application with F5, the Diagnostic Events Viewer will open automatically.

Passos SeguintesNext steps

O mesmo código de rastreamento que adicionou à sua aplicação acima para obter um diagnóstico local irá funcionar com ferramentas que pode utilizar para ver esses eventos quando a execução da sua aplicação num cluster do Azure.The same tracing code that you added to your application above for local diagnostics will work with tools that you can use to view these events when running your application on an Azure cluster. Veja estes artigos que discutem as diferentes opções para as ferramentas e descrevem como pode configurá-los.Check out these articles that discuss the different options for the tools and describe how you can set them up.