Se você acompanha este blog, já deve ter percebido duas coisas: 1a. há algum tempo não posto novos conteúdos por aqui; 2a. sou uma pessoa fanática por otimizar a performance de aplicações. Diante disso resolvi unir o útil ao agradável, isto é, estou “tirando a poeira” aqui do blog com um post falando sobre uma excelente ferramenta para realizar o monitoramento de diversos aspectos de aplicações no Windows Windows Azure – a saber, o New Relic.
Sobre o New Relic (NR)
O New Relic é uma poderosa plataforma de monitoramento de aplicações. Através dela é possível monitorar, em tempo real, praticamente todos os aspectos de uma aplicação web. Alguns dos principais recursos são:
- Monitoramento de transações SQL;
- Tempo de resposta de páginas HTML, Javascript e CSS;
- Monitoramento de queries SQL;
- Comparação entre deploys de aplicação;
- Detecção de threads que causam impacto negativo no sistema;
- Possui uma aplicação altamente distribuída? Com múltiplos níveis e camadas de serviços? O New Relic disponibiliza um recurso chamado “cross-application tracing” que lhe permite mapear cada nível de serviço e verificar o desempenho nas trocas de mensagens, além de lhe fornecer informações importantes acerca de conectividade.
- É comum encontrarmos cenários onde a arquitetura da aplicação cresce exponencialmente e claro, se torna complexa. New Relic disponibiliza um recurso chamado “app map” que lhe permite “enxergar” a arquitetura da aplicação através de fluxogramas bem definidos.
- Dentre outros. A Figura 1 apresenta uma visão geral do New Relic.
Figura 1. Visão geral do New Relic
Uma característica extremamente positiva acerca do New Relic é a facilidade com que ele se acopla a sua aplicação. Bastam alguns passos simples e tudo estará funcionando (você verá como fazer na sequência, fique tranquilo). As linguagens de programação para as quais o New Relic consegue extender seus tentáculos através do app monitoring cresce constantemente. Hoje são as seguintes:
- .NET
- Ruby
- PHP
- Java
- Python
- Node.js
Você pode encontrar maiores informações acerca do New Relic no site oficial do produto. Basta seguir este link.
New Relic no Windows Azure?
Uma das formas simples e rápidas de acoplar o New Relic a uma aplicação é se esta aplicação estiver “hosteada” no Windows Azure. Isso porque o Windows Azure permite a adição simplificada de complementos e o NR é suportado nativamente. Você pode encontrar mais informações sobre o NR no Windows Azure seguindo este link.
A integração se dá de diversas formas, isto é, você pode monitorar sua aplicação no Windows Azure Websites, ou através de um cloud service (web ou worker role), através de uma máquina virtual (VMs), etc. Para ambos os modelos, o processo de acoplamento e integração é sem simples.
No post de hoje quero apresentar o procedimento para habilitação do recurso NR para uma aplicação ASP.NET MVC 4 com SQL Azure no Windows Azure Websites.
O que você precisa saber neste ponto é: não se preocupe, muito embora o New Relic seja pago (mensalmente), existe uma versão mais simplificada e gratuita da ferramenta, criada justamente para degustar alguns dos recursos.
Habilitando o New Relic para monitoramento
A partir daqui, estou assumindo que você já possui uma aplicação ASP.NET publicada e funcionando corretamente no ambiente do Windows Azure Websites, ok?! Vamos lá:
1. Acesse o portal de gerenciamento do Windows Azure (manage.windowsazure.com);
2. Navegue até a opção “Novo” > “Repositórios” > “Serviços de aplicativos” e então selecione o “New Relic”, conforme apresenta a Figura 2.
Figura 2. Selecionando o New Relic
3. Na tela seguinte, preencha corretamente os dados solicitados e selecione a assinatura para a qual o complemento será acoplado. Note que, para fins de testes, você deve selecionar a opção “Standard (free)”, conforme ilustra a Figura 3.
Figura 3. Selecionando o plano a ser contratado
Na próxima etapa conclua a criação do complemento. Para verificar a criação do complemento em sua conta, no menu principal do Windows Azure, basta navegar até a opção “Complementos”. Após criado o complemento, você deverá estar visualizando uma tela semelhante aquela apresentada pela Figura 4.
Figura 4. Visualização do complemento criado
Agora que temos nosso complemento criado, precisamos configurar o ambiente de hospedagem de nossa aplicação para suportar o New Relic. Para isso, navegue até seu projeto no Windows Azure Websites. Já dentro de seu ambiente de hospedagem, vá até a aba “Configurações”. Na área de “Configurações de ambiente”, adicione os pares de valores informados apresentados na Figura 5.
Figura 5. Pares atributos/valores para acoplar o New Relic
Para finalizar a configuração do lado do Windows Azure, reinicie o complemento para que as alterações possam se propagar, assim como o ambiente de hospedagem.
Adicionando o New Relic ao projeto
Do lado do Windows Azure já temos tudo acertado. Agora, precisamos adicionar a biblioteca de monitoramento do New Relic. Para facilitar nosso trabalho, utilizaremos o NuGet.
Com seu projeto ASP.NET aberto, navegue até o menu superior na opção “Tools” > “Library Package Manager…” > “Package Manager Console”. Na sequência, digite a sentença abaixo.
Install-Package NewRelic.Azure.WebSites
Realize um build da solução para que a referência possa ser adicionada e pronto. Só nos resta agora publicar a aplicação atualizada para o ambiente do Windows Azure, aguardar alguns minutos para que o New Relic “indexe” sua aplicação no Windows Azure e pronto, basta monitorar!
A Figura 6 apresenta o New Relic em funcionamento para a aplicação de demonstração para este post.
Figura 6. Aplicação sendo monitorada (o verde destacado indica isso)
Por hoje é só. Um forte abraço a todos!
Pingback: We Shake the Future | Monitorar aplicações web no Windows Azure com New Relic