O documento discute monitoramento de serviços REST usando Application Insights e Distributed Tracing. Apresenta o contexto atual de microserviços e escalabilidade, explica porque monitorar é importante e como fazer isso. Detalha como o Application Insights coleta automaticamente métricas de desempenho e logs para análise, e como o Distributed Tracing mapeia requisições entre serviços. Aponta exemplos de uso de Application Insights e Zipkin para esse fim.
2. Globalcode – Open4education
Apresentação pessoal
Atuação na área de desenvolvimento de software
desde 2001
Autor Técnico / Palestrante (Canal .NET, TechNet,
.NET Magazine, .NET Coders, GDG-SP,
DotNet Baixada)
MTAC (Microsoft Technical Audience Contributor)
6. Globalcode – Open4education
Contexto atual
Escalabilidade, disponibilidade e performance
REST como principal estilo arquitetural
Microserviços ganhando força
Economia das APIs
9. Globalcode – Open4education
Por que monitorar?
Garantir a operação do sistema
Detecção de falhas
Acompanhamento da performance
Determinar uso intensivo de funcionalidades
10. Globalcode – Open4education
Como monitorar?
Estipulando métricas para análise
Implementando uma estratégia de log
Criando relatórios de acompanhamento
11. Globalcode – Open4education
Surgem as dificuldades...
É costume relegar o monitoramento a um segundo plano
Logs bem elaborados exigem grandes esforços de
codificação
12. Globalcode – Open4education
Surgem as dificuldades...
Um único serviço pode possuir múltiplas instâncias
Host
Instância
1
Host
Instância
2
Host
Instância
3
Load Balancer
14. Globalcode – Open4education
Como superar isto?
Telemetria → coleta automatizada de dados
(métricas) para posterior análise
O Microsoft Azure oferece o Application Insights
Distributed Tracing → múltiplos serviços
Application Insights e Zipkin
16. Globalcode – Open4education
O que é?
Serviço que integra o Microsoft Azure, estando voltado ao
monitoramento de aplicações Web (sites e serviços)
17. Globalcode – Open4education
O que é possível monitorar?
Algumas das métricas disponibilizadas por default:
Número de requisições
Tempos de resposta
Falhas
Eventos customizados
18. Globalcode – Open4education
Como funciona?
Dados são coletados
em uma aplicação e
enviados a um
repositório na nuvem
Dashboards no portal
do Azure oferecem
diferentes análises
19. Globalcode – Open4education
Como funciona?
Monitoramento em tempo real (Beta)
Aplicações on-premise ou na nuvem (mesmo fora do
Azure) podem ser monitoradas
Detecção proativa → detecção e geração de avisos sobre
problemas de performance (usando data mining + Machine
Learning)
21. Globalcode – Open4education
Como funciona?
Requisitos para uso:
Uma conta de acesso ao Microsoft Azure
Uma Instrumentation Key
Um SDK disponibilizado pela própria Microsoft
24. Globalcode – Open4education
O que é?
Monitoramento envolvendo interações entre múltiplos
serviços
Permite identificar toda a rota percorrida por uma
requisição HTTP
Capacidade de determinar “gargalos”
Exemplos de soluções: Zipkin e Application Insights
26. Globalcode – Open4education
Zipkin
Solução open source desenvolvida pelo Twitter
Implementação de um projeto conhecido como Google Dapper
Monitoramento de requisições HTTP, SQL e até Redis
Gráficos mapeando dependências
Fluxo apresentado sob a forma de timelines
29. Globalcode – Open4education
Application Insights
Também há o suporte a tracing distribuído
Application Insights + TrackDependency API
Application Insights + Azure Cloud Services