PreEmptive Analytics para TFS 2012

Hoje dando uma olhada nas novidades do TFS 2012 me deparei com um novo menu no Administration Console chamado Additional Tools and Components -> PreEmptive Analytics, imediatamente fui “googlar” para ver o que se referia, e acabei achando um Hands-on que descrevia o que essa ferramenta faz, segue abaixo os passos necessários para usar o PreEmptive Analytics.

O que é PreEmptive Analytics?

É uma ferramenta criada pela empresa PreEmptive que tem a finalidade de monitorar os erros da sua aplicação, com base em uma lista de regras quando ocorre um erro em sua aplicação essa ferramenta é acionada, recupera a exceção ocorrida e automaticamente cria um work item do tipo “Incident” em seu Team Project no TFS 2012.

Instalação

Para instalar essa ferramenta abra o Team Foundation Server Administration Console clicando em Start | All Programs | Microsoft Visual Studio Team Foundation Server 2012 RC | Team Foundation Server Administration Console e depois selecione o menu Additional Tools and Components | PreEmptive Analytics

Clique no link Install PreEmptive Analytics Community Edition

Na próxima tela clique no botão Next

Leia os termos de licença e click no check box I accept the teams of this agreement, e clique no botão Next

Na página Aggregator Service Configuration digite um usuário e senha que tenha acesso ao TFS com permissão de criação de Work Item clique no botão Next.

Para finalizar clique no botão Install e aguarde até a finalização da instalação

No final da instalação verifique que temos um endereço de endpoint. Esse endpoint será usando mais tarde nas configurações para integração com o TFS. Clique no botão Close

Configuração

Após a instalação PreEmptive Analytics Aggregator Administration Console  será aberto, caso contrário clique em Start | All Programs | PreEmptive Solutions | PreEmptive Analytics CE | PreEmptive Analytics Configuration Utility

Clique no botão “+” para adicionar a conexão com o Team Foundation Server.

Na janela Connect to Team Project Collection selecione sua collection e clique no botão Connect.

Clique na opção Apply, nesse momento será criado um novo tipo de work item chamado Incident e dois novos relatórios para gerenciar os Incidents, essa configuração pode demorar alguns minutos

Ao finalizar o processo a seguinte janela será exibida

Configurando a aplicação

O próximo passo é configurar nossa aplicação para quando ocorrer um erro chamar o PreEmptive Analytics, para isso abra sua aplicação noVisual Studio 2012 e selecione a opção Tools | PreEmptive Dotfuscator and Analytics

Clique em Inputs e depois clique no botão Add Input

Selecione o assembly que deseja monitorar, nesse caso será FabrikamFiber.Web.dll, que se encontra no diretório o C:/ws/Julia/ff/Dev/FabrikamFiber.CallCenter/FabrikamFiber.Web/bin, depois clique no botão Open.

Agora clique em Configuration Options | Analytics e clique na tab Attributes

Clique com o botão direito sobre a DLL e selecione a opção Add Attribute

Na janela Add Attribute selecione a opção PreEmptive.Attributes.ApplicationAttribute, e clique no botão OK

Digite as informações Application Type, Name, Version e GUID (Unique Identifier). Para gerar o GUID  clique no botão “…”

Clique novamente com o botão direito sobre a DLL e selecione a opção Add Attribute agora selecione a opção PreEmptive.Attributes.BusinessAttribute e clique no botão OK.

Veja que o campo CompanyKey ja está preenchido

Agora vamos selecionar o método que será responsável por iniciar o monitor, clique na dll FabrikamFiber.Web.dll | FabrikamFiber.Web.App_Start | NinjectMVC3, clique com o botão direito sobre o método Start : void() e selecione a opção Add Attribute.

Selecione a opção PreEmptive.Attributes.SetupAttribute, e clique no botão OK

Configure a propriedade CustomEndpoint com o endereço do endpoint que foi fornecido no final da instalação do PreEmptive Analytics, (VSALM:8000/Message/Endpoint.ashx)

Agora clique com o botão direito sobre o método Stop:void() e selecione a opção Add Attribute.

Selecione a opção PreEmptive.Attributes.TeardownAttribute, e clique no botão OK

Clique em FabrikamFiber.Web.dll | FabrikamFiber.Web.Controllers | ServiceTicketsController, clique com o botão direito sobre o método Create : System.Web.Mvc.ActionResult() e selecione a opção Add Attribute.

Selecione a opção PreEmptive.Attributes.ExceptionTrackAttribute, e clique no botão OK

Clique em Configuration Options | Renaming, e clique na aba Options.

Desmarcar a opção Enable Renaming.

Salvar as configurações clique no botão Save

Clique no botão on Build Project. Isso irá recompilar uma nova versão da dll FabrikamFiber.Web.dll com as novas confiurações que incluímos

Abra a pasta onde se encontra a dll FabrikamFiber.Web.dll e veja que foi criada uma nova pasta chamada Dotfuscated, dentro dessa pasta que se encontra a dll com as alterações, por isso copie ela para a pasta bin

DE: C:/ws/Julia/ff/Dev/FabrikamFiber.CallCenter/FabrikamFiber.Web/bin/Dotfuscated

PARA: C:/ws/Julia/ff/Dev/FabrikamFiber.CallCenter/FabrikamFiber.Web/bin

Configurando o TFS

Agora temos que configurar o TFS para ficar escutando o PreEmptive Analytics, na janela Team Explorer, selecione a opção PreEmptive Analytics

Clique na opção Configure a janela PreEmptive Analytics Options será aberta

Clique em subscription e depois no botão “+”

Nessa tela vamos ter que configurar alguns campos

  • Name: Nome da aplicação
  • Company ID: Guid que foi gerado na etapa PreEmptive.Attributes.BusinessAttribute
  • Application ID: Guid que foi gerado na etapa PreEmptive.Attribute.ApplicationAttribute

Para esse exemplo vamos setar o valor para Threshold para 1, isso quer dizer que quando ocorrer apenas 1 vez a exeção ja vamos criar um Incident, depois clique em Close

Visualizando os Incidentes no TFS

Agora vamos fazer com que o erro ocorra

E veja que no TFS temos um work item do tipo Incident criado

O processo para configuração é um pouco trabalhosa, mas o resultado final é bom, dessa maneira conseguimos monitorar de uma maneira mais fácil os erros que ocorrem com a aplicação nos ambiente

Deixe seu comentário, opinião, critica

Aquele abraço!

Sobre Leandro Prado

Leandro Silveira Prado é Premier Field Engineer na Microsoft especializado em Application Lifecycle Management.