O Monitoramento de Desempenho de Aplicativos (APM) e a observabilidade são duas abordagens relacionadas a compreender e melhorar o desempenho do seu software, mas não significam a mesma coisa. APM é uma das etapas de uma prática de observabilidade completa, que usa dashboards e alertas para falhas conhecidas ou esperadas. A observabilidade é uma prática holística e dinâmica, para ajudá-lo a entender os seus sistemas complexos, e descobrir respostas para possíveis problemas nos quais você nem sequer pensou. A observabilidade envolve a coleta de dados em várias camadas da arquitetura de software, analisando-os em tempo real, e fazendo perguntas sobre esses dados, adaptados a sinais específicos—para que você saiba em quais problemas se concentrar.
O APM fornece aos usuários dashboards e alertas para solucionar problemas de desempenho de um aplicativo em produção. Essas informações são baseadas em falhas de sistema conhecidas ou esperadas—normalmente relacionadas aos sinais clássicos do SRE, e fornecem alertas aos engenheiros quando surgem problemas pré-definidos, com orientações e recomendações sobre como solucionar os problemas.
Mas e os problemas que surgem e que não foram pré-definidos ou esperados? Os ambientes de software atuais estão cada vez mais distribuídos, com um software desenvolvido, implantado, e mantido por equipes distribuídas. Este software também é executado em uma ampla variedade de hosts—seja localmente ou na nuvem. É fundamental que as equipes conceituem, solucionem problemas, e melhorem esses sistemas distribuídos. A prática da observabilidade dá às equipes a flexibilidade de consultar as “incógnitas desconhecidas” em seus sistemas dinâmicos, e investigar e solucionar anomalias a medida que surgem. As plataformas de observabilidade oferecem às equipes uma visão conectada, e em tempo real, de seus dados operacionais em um só lugar, para que possam entender melhor o comportamento do sistema e fazer melhorias iterativas em todo o conjunto.
Você precisa de monitoramento de desempenho de aplicações.
As equipes de TI normalmente adotam o APM como uma prática recomendada para entender e melhorar o desempenho do sistema, ajudando as a identificar quando uma aplicação está lenta ou quebrada e, em seguida, corrigir problemas antes que afetem os usuários. Por meio de alertas e visualizações pré-configurados, o APM ajuda as equipes a entender métricas como tempo de resposta, rendimento e erros.
Você pode monitorar o desempenho de tudo, desde sites até aplicativos móveis, servidores, redes, APIs, serviços baseados em nuvem, e outras tecnologias com ferramentas, produtos e soluções, incluindo:
- Dashboards operacionais
- Monitoramento real do usuário
- Monitoramento de Mobile
- Monitoramento sintético
- Monitoramento Serverless
- Monitoramento de banco de dados
- Monitoramento de infraestrutura
- Mapas de serviço
O APM fornece uma visão de alto nível do desempenho de uma aplicação, e funciona bem para perguntas ou condições que você deve fazer com antecedência, como:
- “Qual é o rendimento da minha aplicação?”
- “Alerte-me quando eu exceder um determinado limite de erro.”
- “Qual é a capacidade computacional?”
Mas muitas arquiteturas de aplicativos modernos são complexas demais para serem monitoradas e gerenciadas apenas com o APM. Você precisa considerar diversas fontes de dados, e vários tipos de dados de telemetria (não apenas métricas). Você também precisa pensar em registrar. Cada tempo de execução provavelmente está emitindo logs em locais diferentes, e você precisa de uma maneira de consolidar esses dados e avaliá-los no contexto da sua aplicação. E, a medida que você adiciona mais serviços e componentes de microsserviços à sua arquitetura, quando um usuário acessa um desses serviços, e encontra um erro, você precisa ser capaz de rastrear essa solicitação em vários serviços. Você também precisa ser capaz de investigar todos esses dados em um só lugar, para não perder o contexto e poder melhorar os KPIs, como o Tempo Médio de Recuperação (MTTR).
Para chegar à causa raiz de um problema, quando você tem vários tempos de execução, e muitas camadas de arquitetura, é necessário adotar uma abordagem mais holística e proativa. Embora o APM forneça métricas agregadas, você também precisa de outros insights para entender o seu conjunto dinâmico.
Você realmente precisa da observabilidade.
Observabilidade é sobre ter insights técnicos mais aprofundados sobre o estado de todo o sistema, independentemente do tamanho ou da complexidade dele. Ela ajuda as equipes de DevOps a enfrentar os desafios do aumento da fragmentação nos sistemas distribuídos atuais. A observabilidade também lhe dá o poder de compreender padrões e conexões em seus dados que você não havia considerado anteriormente.
As plataformas de observabilidade automatizam a coleta de dados de uma variedade de fontes e serviços em um só lugar, ajudam a monitorar a integridade da sua aplicação, visualizando o seu desempenho no contexto de todo o conjunto e, em seguida, fornecem os insights para você agir. Esses insights o ajudam a entender não apenas que algo aconteceu, mas porquê, com todas as ferramentas ao seu alcance para tomar medidas para resolvê-lo.
Ao avaliar plataformas de observabilidade, procure aquelas que permitem que você:
- Use agentes de instrumentação abertos para coletar dados de telemetria de entidades de código aberto, ou específicas de fornecedores que produzem esses dados. Exemplos de dados de telemetria incluem métricas, eventos, logs e traces, que normalmente são chamados de MELT. Exemplos de entidades incluem serviços, hosts, aplicativos e contêiners.
- Visualize, navegue, depure, e melhore todo o seu conjunto para otimizar a experiência dos usuários finais.
- Analise as enormes quantidades de dados de telemetria, em cardinalidade alta, coletados para correlações e contexto, para que os humanos possam entender quaisquer padrões e anomalias que surjam.
- - Aproveite os avanços em inteligência artificial e aprendizado de máquina, como parte de uma prática de AIOps, para reduzir o ruído de alerta, e eliminar alarmes falsos, correlacionar incidentes, e detectar anomalias automaticamente. Juntos, eles podem ajudá-lo a encontrar, diagnosticar e resolver incidentes com mais rapidez. Insights sobre quais áreas precisam de mais melhorias ajudam as suas equipes a determinar onde concentrar os esforços dos desenvolvedores no futuro, para ter um melhor efeito sobre os usuários finais de sua aplicação.
Quais são as diferenças entre o APM e a observabilidade?
Como já discutimos, o APM e a observabilidade são conceitos relacionados, mas têm focos distintos.
O APM, como o nome sugere, concentra-se principalmente no monitoramento e gerenciamento do desempenho das aplicações. Ele rastreia métricas específicas relacionadas ao desempenho da aplicação, como tempo de resposta, taxas de erro, e traces de transações. O APM foi projetado para identificar e resolver problemas que afetam o desempenho e a experiência dos usuários das aplicações.
A observabilidade, por outro lado, assume uma perspectiva mais ampla, enfatizando a capacidade de compreender sistemas complexos, e solucionar problemas de forma eficaz. Embora a observabilidade inclua métricas de APM, ela também se estende a vários tipos de dados, como logs, eventos, e traces. A observabilidade visa aprimorar a compreensão geral do comportamento do sistema, facilitando a identificação e a resolução de problemas em todo o conjunto.
De forma resumida, o APM é um subconjunto da observabilidade, com foco em uma seção (desempenho da aplicação), enquanto a observabilidade se concentra no comportamento geral do sistema. Embora as ferramentas de APM sejam essenciais para otimizar métricas específicas de aplicações, as ferramentas de observabilidade fornecem um contexto mais amplo para solucionar problemas e manter sistemas complexos.
Quais são as principais diferenças entre a observabilidade X monitoramento?
O monitoramento é uma parte essencial da observabilidade, mas os dois têm escopos e propósitos diferentes. O monitoramento envolve, principalmente, o rastreamento e a coleta de dados sobre métricas pré-definidas, com foco em indicadores de desempenho específicos, e problemas conhecidos. A observabilidade abrange uma perspectiva mais ampla, incluindo a capacidade de explorar, compreender, e diagnosticar sistemas complexos. A observabilidade envolve a coleta de diversos tipos de dados, para obter insights sobre o comportamento de todo o sistema, e descobrir problemas desconhecidos.
Qual a diferença entre o APM e o monitoramento de logs?
Um serviço de APM e o monitoramento de logs são necessários para manter e otimizar aplicações de software, mas se concentram em diferentes aspectos do ciclo de vida da aplicação. O APM se concentra no desempenho geral das aplicações, enquanto o monitoramento de logs é voltado especificamente para a coleta e análise de dados de log para fins de depuração, solução de problemas, e segurança.
O APM faz parte da sua prática da observabilidade.
Dada a centralidade na aplicação dos conjuntos de software atuais, não é possível ter observabilidade sem uma boa análise de APM.
Pense deste modo: observabilidade (substantivo) é a abordagem do quanto você entende seu sistema complexo. O monitoramento de desempenho de aplicações (um verbo) é uma ação que você realiza para ajudar nessa abordagem. A observabilidade não elimina a necessidade do APM. O APM torna-se apenas uma das técnicas utilizadas para alcançar a observabilidade.
Para saber mais sobre as especificidades do monitoramento de desempenho de aplicações, veja ''O que é APM?''.Para se aprofundar mais na observabilidade, veja ''O que é observabilidade?''.E não acredite apenas em nossa palavra - leia sobre os nossos clientes que usam APM.
Comece com APM e observabilidade. Experimente já o New Relic.
O melhor modo de saber mais sobre APM e observabilidade é tendo experiência prática com uma solução de observabilidade.
- Crie uma conta grátis do New Relic. Sua conta gratuita inclui ingestão grátis de 100 GB de dados por mês, um usuário com acesso completo e um número ilimitado de usuários básicos grátis.
- Em seguida, explore a documentação do APM e da observabilidade.
As opiniões expressas neste blog são de responsabilidade do autor e não refletem necessariamente as opiniões da New Relic. Todas as soluções oferecidas pelo autor são específicas do ambiente e não fazem parte das soluções comerciais ou do suporte oferecido pela New Relic. Junte-se a nós exclusivamente no Explorers Hub ( discuss.newrelic.com ) para perguntas e suporte relacionados a esta postagem do blog. Este blog pode conter links para conteúdo de sites de terceiros. Ao fornecer esses links, a New Relic não adota, garante, aprova ou endossa as informações, visualizações ou produtos disponíveis em tais sites.