O que é o monitoramento?
Depois que uma aplicação é implantada na produção, o monitoramento fornece informações sobre os padrões de desempenho e uso da aplicação para que você possa identificar, mitigar ou resolver problemas.
Objetivos do monitoramento
Um objetivo do monitoramento é alcançar alta disponibilidade, minimizando as principais métricas que são medidas em termos de tempo:
- Tempo de detecção (TTD): quando surgem problemas de desempenho ou de outra natureza, dados de diagnóstico avançados sobre os problemas são fornecidos para as equipes de desenvolvimento por meio de monitoramento automatizado.
- Tempo de mitigação (TTM): as equipes do DevOps atuam nas informações para mitigar problemas o mais rápido possível para que os usuários não sejam mais afetados.
- Tempo de correção (TTR): os tempos de resolução são medidos e as equipes trabalham para melhorar com o tempo. Após a mitigação, as equipes trabalham para encontrar formas de corrigir problemas na causa raiz para que eles não se repitam.
Um segundo objetivo do monitoramento é permitir a aprendizagem validada ao rastrear o uso. O conceito principal da aprendizagem validada é que cada implantação é uma oportunidade de acompanhar resultados experimentais que fortalecem ou enfraquecem as hipóteses que levaram à implantação. O rastreamento do uso e de diferenças entre as versões permite que as equipes avaliem o impacto das mudanças e orientem as decisões de negócios. Se uma hipótese for enfraquecida, a equipe poderá falhar rapidamente ou adaptar-se. Se a hipótese for apoiada, a equipe poderá insistir ou perseverar. Essas decisões baseadas em dados levam a novas hipóteses e priorização do backlog.
Conceitos principais
Telemetria é o mecanismo de coleta de dados a partir do monitoramento. A telemetria pode usar agentes instalados em ambientes de implantação, um SDK que depende de marcadores inseridos no código-fonte, log do servidor ou uma combinação destes. Em geral, a telemetria distingue entre o pipeline de dados otimizado para alertas e painéis em tempo real e os dados de maior volume necessários para solução de problemas ou análise de uso.
O monitoramento sintético usa um conjunto consistente de transações para avaliar o desempenho e a disponibilidade. As transações sintéticas são testes previsíveis com a vantagem de permitir a comparação entre lançamentos de forma altamente previsível. O monitoramento do usuário real (RUM), por outro lado, mede a experiência do navegador, dispositivo móvel ou desktop do usuário. Ele responde por condições de última milha, como redes celulares, roteamento de internet e armazenamento em cache. Diferente do Synthetics, o RUM normalmente não fornece medição repetível com o tempo.
O monitoramento costuma ser usado para testar na produção. Uma implantação bem monitorada transmite dados sobre a integridade e o desempenho para que você possa detectar incidentes de produção imediatamente. Combinado com um pipeline de lançamento de implantação contínua, o monitoramento detectará novas anomalias e permitirá a mitigação imediata. Isso permite a descoberta de incógnitas desconhecidas no comportamento da aplicação que não podem ser previstas em ambientes de pré-produção.
O monitoramento eficaz é essencial para permitir que equipes do DevOps agilizem entregas, obtenham comentários da produção, e aumentem a satisfação, a aquisição e a retenção de clientes.
Próximas etapas
Leia mais sobre os recursos de monitoramento do Azure Monitor.
Saiba como configurar e usar o Application Insights para monitoramento.