O documento discute o Application Insights, um serviço da Microsoft para monitoramento de aplicações. Ele coleta métricas de desempenho, logs e erros de aplicações para fornecer visibilidade em produção e identificar problemas. O Application Insights ajuda a priorizar correções de bugs e novas funcionalidades com base em dados de uso e desempenho.
2. Para refletir...
• Sua aplicação está no ar
neste momento ?
• Está funcionando ?
• Será que está com algum erro ?
• E o desempenho ?
A resposta é...
3. Tudo mudou. Não acredita?
Força de trabalho
2.6bilhões
de dispositivos móveis
em 2016; 350M usados
no trabalho
Consumidores
82%
da população mundial
online participa de redes
sociais
Comércio
70%
das empresas usam ou
estão investindo em
soluções de nuvem
5. Tudo está conectado…
Usuários
Clientes
Browser
Device
Desktop
Servidores
Bancos de dados
Serviços
6. O mundo esta mais ágil…
Práticas ágeis estão
acelerando o processo
de construção
Problemas de
disponibillidade e
desempenho são
difíceis de resolver
nesse mundo de
mudanças constants e
apps distribuídas
Um pipeline de publicação
automática é necessário para
entregar no ritmo do
desenvolvimento, com total
rastreabilidade
O uso é que
deveria determiner
próximo conjunto
de prioridades e
aprendizado
BACKLOG
Desenvolvimento Produção
Colaboração
7. Um montão de coisas pode
dar errado
Bug na aplicação
Respostas do servidor
muito lentas
Banco de dados
sobrecarregado Serviço de terceiros
fora do ar
Funcionalidade difícil
de usar
8. Monitorar +
Aprender
Priorizar e validar
investimentos baseados em
dados qualitativos e
quantitativos
Detectar e resolver
rapidamente os
problemas em
produção
Impedimentos
Planejar
Diagnóstico em
produção? Depois
pensamos nisso…
Desenvolver +
BACKLOG
Desenvolvimento Produção
Colaboração
Testar Publicar
10. • Tenha uma visão
de 360 graus da
saúde da sua
aplicação e
detecte
problemas em
produção.
Confgure as
métricas de saúde
Verifique o pulso
da sua aplicação
Identifique
problemas com a
aplicação em
produção
11. • Receba alertas
automaticamente
quando sua
aplicação não
estiver
respondendo.
Alertas
automáticos com
informações
relevantes.
13. • Identifique
problemas que
afetam a
Infraestrutura de sua
aplicação
• Priorize novas
funcionalidades,
correção de bugs e
estratégias baseadas
em qualidade
Dados valiosos na ponta
dos seusc dedos
Valorize seu investimento
14. A solução: Application Insights
Disponível
Dashboards de Saúde Notificações e Insights Uso dos Dashboards
Minha aplicação está disponível e com
bom desmpenho para meus usuários ?
Dashboard Único
Performance Melhorando
O quê está errado?
Mostre-me os problemas de desempenho,
Uso de memória e exceções
Onde iremos investir?
Mostre-me as principais funconalidades e
Utilização dos usuários
15. O que é o Application Insights
• Novo serviço de
monitoramento de
aplicações do Microsoft
Azure
• Coleta indicadores de
desempenho, logs e
erros de aplicações em
diversas plataformas
• Server-side ou cliente-side
• Devices
• On-premise ou na
nuvem
16. Application Insights e o Azure
• Até a versão 1.x o Application Insights é
gerenciado pelo Visual Studio Online
• A partir da versão 2.x ele estará no Microsoft
Azure (Visual Studio 2013 Update 3)
18. Fontes de telemetria
aplicação
plataforma
infraestrutura
1
2 Comportamento do usuário
3
4
5
6
Monitoramento Outside-in
Pings de URL e Testes Web a partir de vários
pontos de presença globais
Como a aplicação está sendo utilizada?
Traces gerados pelo desenvolvedor
Qualquer coisa que o dev queira mandar para
o Application Insights
Comportamento da aplicação
Dispensa codificação – dependências de serviço,
consultas, tempo de resposta, exceções, logs, etc.
Desempenho da infraestrutura
Contadores de desempenho de sistema
“Meta-telemetria”
Código-fonte, builds, implantações, mudanças
de configuração
19. Como começar na sua aplicação ?
Alterações no
código
Não invasivo
21. Plataformas suportadas
Server side
• .NET & Java
• On-prem: MS
Monitoring
Agent
• Azure: VM’s e
cloud services
• ASP.NET
• AppInsights SDK
Client side
• Browser (JS)
• Windows Phone
• Windows Store
Em breve
• Azure Web Sites
• iOS
• Android
22. Monitoramento de Uso
Monitoramento de Ambiente
Monitoramento da Aplicação
Analytics e Log Mining
Descoberta rápida com Alertas
Recapitulando...
BACKLOG
Desenvolvimento Produção
Colaboração
23. Para saber mais…
• Começe a usar o Application Insights – de graça!
http://msdn.microsoft.com/en-us/library/dn481095.aspx
• Find Performance Problems
http://bit.ly/1fF5TXo
• Channel 9 App Insights for Visual Studio Online
http://bit.ly/1fF69FR
• App Insights Azure Version
http://azure.microsoft.com/en-us/documentation/articles/app-insights-get-started/
24. Obrigado!
Carlos dos Santos
CDS Informática Ltda.
@cdssoftware
www.carloscds.net
Microsoft MVP C#
Notas do Editor
So let’s take each one of these impediments.
First you want to minimize the time that it takes to detect any abnormalities or issues with your application, and have visibility to your application’s health.
Having a 360 degree view to your application’s availability and performance, allows you to detect issues and events that could affect your application. And when issues occur, be automatically alerted and have relevant metric that allow you to resolve them
Reduce the Mean Time To Detect the issue, and minimize outage time and impact to customers
Application Insights provides out of box dashboards that help you detect issues in production before your customer experiences them. You can set up a custom view of your application’s health with metrics that are important for you and your business.
You can get alerted automatically whenever your application is not responding to your specifications, enabling you to pro-actively resolve any issues and preventing customer impact.
Problem - You try to ensure your application is constructed with high quality. But there are unforeseen conditions or usage patterns that can happen in production to impact your application’s availability. When this happens you need to be able to restore your application to a good state as soon as possible. You need to reduce the mean time to repair (MTTR).
Solution - To detect the root cause of issues quickly, you need access production data as it was when the incident occurred. You need the ability to pull the exact code that was deployed and executing, and go to the suspicious line of code. Memory problems, while their occurrence is less common, are very difficult to diagnose - to the extent that having tools to view the full memory stack is a critical need in solving these problems as soon as possible,
Value - Reducing MTTR, reduces customer impact and increasing team efficiency
By having access to data from different data points in one dashboard, development teams can identify systemic issues and trends affecting applications and overall infrastructure health
They can learn from usage data to make informed decisions based on qualitative and quantitative data
Visual Studio Online Application Insights provides a 360 degree view of your applications, collecting rich operational, performance, and customer usage information from your applications, whether they run on-premises, in Azure, third-party cloud providers, or a mixture of all three.
This empowers you to:
Pro-actively monitor that your applications are available and
Performing as expected, and when they aren’t, to provide information that helps you to resolve them promptly.
Use information to continuously improve your applications and prioritize future investments.
There are a number of sources of telemetry data that App Insights can collect and process.
Outside-in monitoring is the same engine used by System Center’s Global Service Monitor. Developers don’t have to change any application code to enable this, but they can re-utilize the same web tests they create today for more complex user paths through an application.
By installing an agent, user behavior is captured without a change to code as well.
In some scenarios, code changes may be required to capture certain metrics and so SDK’s are available to emit and capture those.
Customers can start getting insights into their applications at their own pace…
Level 1 – Basic Availability – Non-invasive, no need to re-deploy or code changes.
Start getting outside-in monitoring with ping test/synthetic transactions, by configuring URL, ping or deploy existing web tests and get 16 global points of presence.
Level 2 – Basic Performance: No code changes required. Install agent (Microsoft Monitoring agent) on platform
Level 3 – Application usage: Inject agent into application - little or no developer effort
Level 4 – Customer telemetry – Using SDK, developer emits custom event to the service