Monitoração e Troubleshooting com Windows Server AppFabric

Olá pessoal, tudo certo?

Imagine o seguinte cenário: você tem um conjunto de 3 máquinas no Web Farm para as aplicações ASP.NET e mais um conjunto NLB para hospedar serviços WCF e Web Services ASMX. Algumas aplicações ainda estão usando processos pequenos em WF 3.5 e uma equipe já sinaliza com o uso de WF 4, após o Tech-Ed Brasil 2010… :)

O ambiente entrou em produção e de repente, algumas coisas não funcionam muito bem! Os usuários de negócio começam a ligar para a INFRA e o diálogo abaixo acontece :)

IT PRO: esse telefone não pára mais, todos os usuários estão ligando para reclamar e nada funciona! Vou ligar para o DEV da aplicação.

DEV: então, aqui na minha máquina tudo funciona! :)

IT PRO: como assim? aqui tá tudo parado e você precisa me ajudar! Parece que tem uns 30 Web Services encadeados e não tenho a mínima idéia do que está acontecendo…

DEV: na verdade são 8 serviços encadeados e já disse, aqui na minha máquina funciona. Você mexeu na configuração do Web.Config sem me falar?

IT PRO: @$@#!#@!@#%^#$^$#@!!@@@

DEV: tuuuuu tuuuuu tuuuuu tuuuuu

Você se sente assim sozinho, na frente de um monstro de fios e válvulas, apenas olhando luzinhas sem a mínima ideia sobre o que está acontecendo com seus serviços e processos?

image

Não fique desesperado! :) Agora você tem um novo amigo: o WINDOWS SERVER APPFABRIC ! :)

Já falamos aqui que para ações de hosting, monitoring, caching e persistence de serviços e workflows podemos usar o APPFABRIC em nossa infraestrutura.

O que faltou dizer é que podemos controlar o nível da monitoração desejada, ajudando e muito no processo de análise e troubleshooting em situações de pânico.

Para uma dada aplicação, acesse a configuração de monitoração:

image

Veja as opções abaixo na aba para Monitoração (Monitoring):

image

Os níveis disponíveis são:

Level: Troubleshooting
- Appropriate for application-level diagnostics.
- Includes events emitted at the End-to-End Monitoring level.
- Highly verbose and may impact the performance of your application or server.

Level: End-to-End Monitoring
- Appropriate for monitoring health and capturing the flow of events between services (message flow).
- Exposes relationship between WCF and WF events in the Tracked Events page.
- Includes events emitted at the Health Monitoring level.

Level: Health Monitoring
- Appropriate for monitoring health.
- Populates application metrics in the AppFabric Dashboard.
- Includes events emitted at the Errors Only level.

Level: Error Only
- Appropriate for error reporting and critical warning events.
- Application metrics will not be populated in the AppFabric Dashboard.

Level: OFF
- Instrumentation events are not emitted.
- Application metrics will not be populated in the AppFabric Dashboard.

Ainda nessa mesma janela de configuração, podemos controlar o nível de tracing para serviços WCF e workflows WF, na sessão “Diagnostic Tracing and Message Logging (file-based)”:

image

Com o botão “Configure:” temos:

image

Configurando o tracking entre OFF, CRITICAL, ERROR, WARNING, INFORMATION, VERBOSE, de acordo com o nível de troubleshooting desejado.

O que permite rastrear as várias atividades executadas, por exemplo, de um workflow WF:

image

Para saber mais, confira os links abaixo:

Windows Server AppFabric Wiki
Ref.: https://social.technet.microsoft.com/wiki/contents/articles/windows-server-appfabric.aspx

Troubleshooting the Monitoring Store Configuration
Ref.: https://social.technet.microsoft.com/wiki/contents/articles/troubleshooting-the-monitoring-store-configuration.aspx

Então? Seja para DEV ou ITPRO, AppFabric é Show! :) Agora ficou fácil troubleshooting de serviços e DEVs e ITPROs poderão até achar um tempo para um chopinho ou uma pescaria juntos :)

Por enquanto é só! Até o próximo post :)

Waldemir.