No AZ-204, o Application Insights e o nucleo do dominio de monitoramento. Ele permite que voce veja em tempo real como seu aplicativo esta realmente se comportando.
O que e o Application Insights?
Pense no Application Insights como o painel de instrumentos de um carro. Assim como voce pode ver de relance a velocidade, o combustivel e a temperatura do motor enquanto dirige, o Application Insights permite monitorar o desempenho, os erros e os padroes de uso do seu aplicativo web em tempo real.
E um recurso do Azure Monitor e uma ferramenta APM (Application Performance Management) especializada para aplicativos web.
| Recurso | Descricao | Exemplo | |---------|-----------|---------| | Monitoramento de desempenho | Mede tempo de resposta e throughput | Tempo de resposta medio da API: 200ms | | Rastreamento de erros | Registra e analisa excecoes | 5 NullReferenceExceptions por hora | | Analise de padroes de uso | Entende o comportamento do usuario | Taxa de abandono de 30% na pagina de checkout | | Monitoramento de dependencias | Rastreia chamadas a servicos externos | Lentidao no DB, atrasos em APIs externas |
Instrumentacao
A instrumentacao e o processo de anexar "sensores" ao seu aplicativo. Assim como um carro precisa de sensores fisicos para que o painel exiba dados, seu app precisa de codigo de instrumentacao para que o Application Insights colete dados.
Instrumentacao com SDK (manual)
Adicione o SDK do Application Insights diretamente ao codigo para controle granular.
Auto-instrumentacao (sem codigo)
Ative o Application Insights pelas configuracoes do Azure App Service sem modificar o codigo. Rapido e simples, mas nao permite adicionar eventos personalizados.
Tipos de dados coletados automaticamente:
Requisicoes: informacoes de requisicao e resposta HTTP Dependencias: chamadas ao DB, chamadas a APIs externas Excecoes: erros nao tratados Visualizacoes de pagina: coletadas no navegador (requer SDK JavaScript) Eventos personalizados: adicionados manualmente pelo desenvolvedor
Rastreamento distribuido (Distributed Tracing)
Em um ambiente de microsservicos, uma unica requisicao percorre varios servicos. Por exemplo, um pedido de loja online flui por: Servico de Pedidos → Servico de Estoque → Servico de Pagamentos → Servico de Entrega.
O rastreamento distribuido conecta todo esse fluxo com um unico fio para rastreamento de ponta a ponta — como o rastreamento de encomendas dos Correios, permitindo ver exatamente qual servico demorou quanto tempo.
Conceitos principais
| Conceito | Descricao | |---------|-----------| | Mapa de aplicacao (Application Map) | Exibe as relacoes de chamada entre servicos como um mapa visual | | Transacao de ponta a ponta | Mostra o caminho completo de uma requisicao e o tempo gasto em cada etapa | | ID de correlacao (Correlation ID) | Identificador unico que vincula uma requisicao entre servicos |
No mapa de aplicacao, cada servico aparece como um no com linhas de conexao. Nos com alta taxa de erros ou respostas lentas sao destacados com cores.
Testes de disponibilidade (Availability Tests)
Os testes de disponibilidade sao como checkups regulares de saude para seu aplicativo. Eles enviam requisicoes automaticamente de varios locais ao redor do mundo e alertam se o aplicativo nao responde ou responde muito lentamente.
| Tipo de teste | Descricao | Quando usar | |-------------|-----------|------------| | URL Ping | Envia um GET para uma URL e verifica codigo e tempo de resposta | O health check mais basico | | Standard | Pode verificar validade do certificado SSL e escolher o metodo HTTP | Mais detalhado que o URL Ping | | TrackAvailability personalizado | Envia resultados de disponibilidade diretamente pelo codigo | Para cenarios complexos como fluxos de login |
Os resultados aparecem na aba "Disponibilidade" e as falhas podem disparar notificacoes por e-mail ou SMS por meio de um Action Group.
Metricas ao vivo (Live Metrics)
O Live Metrics e como um monitor de eletrocardiograma para seu aplicativo: exibe o batimento em tempo real. Use imediatamente apos implantar uma nova versao para detectar problemas no momento em que aparecem.
Exibe contagem de requisicoes, tempo de resposta e uso de CPU com menos de 1 segundo de atraso Verifique imediatamente apos a implantacao se algo esta errado Excecoes aparecem no stream ao vivo conforme ocorrem
Alertas (Alerts)
Os alertas notificam automaticamente quando algo esta errado — como um alarme de incendio que dispara no momento em que um problema e detectado.
Componentes de um alerta
| Componente | Funcao | Exemplo | |----------|--------|---------| | Regra de alerta (Alert Rule) | Define qual condicao dispara o alerta | Tempo de resposta > 2 segundos por 5 minutos consecutivos | | Tipo de condicao | Baseado em metrica ou em consulta de log | CPU > 80% / Log de erro aparece | | Action Group | O que fazer e quem notificar quando o alerta dispara | E-mail, SMS, Webhook, Azure Function |
Os Action Groups podem ser reutilizados em multiplas regras de alerta, facilitando o gerenciamento de um unico destino de notificacao padrao para toda a equipe.
Pontos-chave do exame
"Monitorar desempenho, erros e padroes de uso de um app web" -- Application Insights (recurso do Azure Monitor)
"Ativar Application Insights no App Service sem alteracoes de codigo" -- Auto-instrumentacao
"Desenvolvedor registra um evento de negocio personalizado" -- TelemetryClient.TrackEvent()
"Visualizar relacoes de chamada entre microsservicos como um mapa" -- Mapa de aplicacao (Application Map)
"Ver o caminho completo que uma requisicao percorreu por todos os servicos" -- Transacao de ponta a ponta
"Enviar periodicamente um GET para uma URL para verificar se o app esta vivo" -- Teste URL Ping
"Teste de disponibilidade para cenarios complexos como login" -- TrackAvailability()
"Verificar requisicoes e erros em tempo real logo apos a implantacao" -- Live Metrics
"Enviar e-mail ou SMS quando uma condicao especifica for atendida" -- Regra de alerta + Action Group
"Reutilizar os mesmos destinos de notificacao em multiplas regras de alerta" -- Action Group