O advento da tecnologia fez com que as empresas otimizassem a experiência digital. Não importa se você é uma startup ou uma corporação bem estabelecida; se deseja permanecer relevante, precisa ter velocidade para entregar uma experiência do usuário perfeita.
Em um mundo acelerado, os aplicativos de monitoramento são fundamentais para a operação dos negócios. Este guia fornece uma noção clara do que é o monitoramento do desempenho de aplicativos, como funciona e por que é essencial nos dias de hoje.
O que é APM?
O monitoramento do desempenho de aplicativos (APM) é a prática de usar dados em tempo real para rastrear o desempenho de um aplicativo e as experiências digitais dos seus usuários finais. O objetivo do APM é detectar e diagnosticar problemas complexos de desempenho de aplicativos para garantir que atendam ao nível de serviço esperado.
Os termos "monitoramento do desempenho de aplicativos" e "gerenciamento de desempenho do aplicativo" normalmente fazem referência ao mesmo assunto, e você também pode ver termos como "monitoramento de desempenho" ou "monitoramento de aplicativos".
Por que o monitoramento do desempenho de aplicativos é importante?
Ninguém quer lidar com um aplicativo lento ou corrompido, seja um usuário final ou as equipes que fazem a manutenção e criam aplicativos.
Uma melhor experiência do usuário final
Os usuários finais esperam velocidade e confiabilidade quando usam aplicativos web. Eles querem desempenho otimizado e tempo de resposta rápido.
Os usuários abandonam um site em segundos se ele não carrega. E pior ainda: se uma pessoa tiver uma experiência do usuário ruim, ela provavelmente vai procurar a concorrência. Um estudo da Forbes sugere que 12% dos usuários avisariam amigos e familiares sobre um site ou aplicativo com o qual não tiveram uma boa experiência, o que pode ter um impacto negativo no êxito da empresa, na satisfação dos clientes e na reputação da marca.
Trabalho das equipes de engenharia facilitado
Os problemas de desempenho do aplicativo também podem causar grandes transtornos para as equipes de engenharia. Um engenheiro de plantão pode receber um alerta crítico do sistema sobre transações da empresa às 3h, o que pode fazer com que todas as equipes tentem resolver o problema no meio da noite.
É ainda pior quando um problema crítico não tem contexto, o que significa que os engenheiros nem mesmo têm certeza de onde ele vem. O problema pode vir de uma API, do cluster do Kubernetes, do serviço na nuvem ou de vários outros locais, do código à nuvem. E quanto mais tempo demorar para ele ser resolvido, maior será o impacto negativo sobre os clientes e os resultados da empresa.
O monitoramento do desempenho de aplicativos ajuda as equipes de engenharia a localizar os problemas rapidamente e resolvê-los de maneira proativa. Por exemplo, uma equipe de engenharia pode definir um limite crítico que envia um alerta quando os tempos de carregamento da página se tornam lentos e, depois, combinar isso com um rastreamento detalhado para localizar rapidamente a causa e corrigi-la antes que os usuários finais sejam afetados.
A alternativa é aprender sobre o problema dos usuários finais, o que significa que eles já foram impactados, e lutar para resolver o problema sem o contexto adicional que o monitoramento do desempenho de aplicativos fornece, resultando em tempo médio de detecção (MTTD) e tempo médio de resolução (MTTR) mais longos.
O que são soluções de APM?
As soluções de APM são feitas para ajudar as empresas a monitorar e gerenciar o desempenho de aplicativos. A variedade de soluções e suas capacidades evoluiu conforme a tecnologia foi melhorando. Porém, um software básico de APM é capaz de coletar dados sobre vários aspectos de um aplicativo, como tempo de carregamento de página, tempo de resposta e taxa de erros.
Ferramentas de APM
Uma boa ferramenta de APM deve responder às seguintes perguntas:
- "O aplicativo está corrompido ou lento?"
- "Se o aplicativo está corrompido ou lento, o que está causando o problema?"
As equipes de DevOps e engenharia podem usar ferramentas de APM para responder essas perguntas e encontrar e corrigir problemas rapidamente, antes que afetem os usuários reais.
Com tantas ferramentas de APM para escolher, pode ser difícil saber qual é melhor. As melhores ferramentas de APM têm estes recursos-chave:
- Visibilidade abrangente do desempenho do aplicativo.
- Monitoramento em tempo real para detectar problemas com rapidez e evitar interrupções.
- Design fácil de usar com uma interface intuitiva e navegação simples para usuários de diferentes níveis técnicos.
- Dashboards personalizáveis que podem ser ajustados conforme as necessidades e métricas específicas da equipe.
- Capacidade para alertas proativos, notificando prontamente as equipes sobre quaisquer problemas.
O que você pode monitorar com uma solução de monitoramento do desempenho de aplicativos?
Geralmente, um aplicativo de software tem muitos serviços e camadas diferentes, e o APM pode ser usado para monitorar cada uma dessas camadas. Por exemplo, uma solução de APM pode ser usada para coletar informações atuais e históricas sobre as seguintes camadas:
- Infraestrutura, incluindo uso de memória, uso de CPU e disponibilidade do aplicativo
- Back-end do aplicativo, como desempenho de consulta ao banco de dados e análise de erro
- Front-end do aplicativo, incluindo renderização de navegador web, monitoramento da experiência do usuário e métricas de desempenho
O APM não é limitado ao monitoramento de websites. Você também pode monitorar aplicativos móveis, servidores, redes, APIs, aplicativos internos voltados a funcionários, serviços com base na nuvem e outras tecnologias.
Vamos nos aprofundar e ver mais de perto os tipos de ferramentas que normalmente estão inclusas em uma solução de monitoramento de aplicativos.
Dashboards operacionais
Os dashboards operacionais fornecem uma exibição geral de alto nível do desempenho do seu aplicativo. É possível personalizar dashboards operacionais para exibir suas métricas mais importantes, desde sinais clássicos até KPIs personalizadas e quaisquer serviços que você esteja monitorando.
Monitoramento real do usuário
O monitoramento real do usuário, também conhecido como RUM, fornece insights sobre o que os usuários reais estão fazendo no seu aplicativo, além de quão bem o aplicativo está funcionando para esses usuários.
Monitoramento sintético
O monitoramento sintético envolve usar um navegador headless para imitar o comportamento de usuários reais. Os utilizadores podem testar fluxos de usuário específicos proativamente sem precisar de dados de usuários reais.
Monitoramento Serverless
O monitoramento Serverless também permite que você monitore o desempenho dos aplicativos que usam serviços na nuvem, como o AWS, em vez de servidores locais.
Monitoramento de banco de dados
O monitoramento de banco de dados permite monitorar o desempenho do seu banco de dados para determinar quanto tempo as consultas estão demorando.
Monitoramento de Mobile
O monitoramento de Mobile permite monitorar aplicativos Android e iOS, incluindo problemas de latência e histórico de crash.
Monitoramento de infraestrutura
O monitoramento de infraestrutura é necessário para obter insights sobre o desempenho da sua infraestrutura, seja hardware, infraestrutura de nuvem ou clusters do Kubernetes.
Mapas de serviço
Os mapas de serviço permitem que você veja rapidamente suas dependências e conexões do aplicativo, o que é especialmente importante em aplicativos grandes que usam milhares de serviços.
Uma boa solução de APM também proporciona a oportunidade de consultar seus dados de telemetria para obter insights mais detalhados, examinar logs e usar trace distribuído para examinar vários eventos e encontrar a causa raiz dos problemas.
Métricas de monitoramento do desempenho de aplicativos
O APM utiliza várias métricas importantes para garantir a funcionalidade ideal. Entre elas estão:
- Tempo de resposta: a medida de tempo que um aplicativo leva para responder à ação do usuário.
- Taxa de erros: a frequência de erros gerados pelo aplicativo.
- Taxa de solicitação: o número de solicitações recebidas por um aplicativo por unidade de tempo.
- Disponibilidade do aplicativo (ou tempo de operação): o tempo total em que o aplicativo está em execução e disponível para uso.
- Uso de CPU: quanto de armazenamento de recurso o aplicativo está utilizando.
- Pontuação do índice de desempenho do aplicativo (Apdex): o desempenho relativo do aplicativo em comparação a métricas de desempenho "normais".
- Pontuação do acordo de nível de serviço (SLA): quantifica o nível de serviço que um cliente pode esperar de um provedor de serviço, destacando benchmarks de desempenho específicos que o aplicativo de software deve alcançar. Essa pontuação é calculada usando tempo de resposta, taxa de erros, tempo de operação e número de solicitações em um determinado período.
Quais são os benefícios do monitoramento do desempenho de aplicativos?
Uma boa solução de monitoramento de aplicativos proporciona benefícios diretos e indiretos.
Abordagem proativa para gerenciar incidentes
O APM ajuda a identificar problemas atuais e a antecipar potenciais problemas. Isso ajuda a evitar quebras de sistema e interrupções de serviço.
Mais tempo investido na inovação
Ao diminuir o tempo gasto detectando e resolvendo problemas, sua equipe pode focar tarefas mais importantes, como inovação e criação de novos recursos.
Menos esforço e estresse
As ferramentas de APM aliviam bastante a carga de trabalho pesada e tediosa de engenheiros de confiabilidade do site e equipes de resposta a incidentes, reduzindo o estresse e as restrições de tempo.
Melhor experiência do usuário
Ao acompanhar continuamente as métricas de desempenho, o APM permite a otimização do desempenho do aplicativo, resultando em uma melhor experiência do usuário. Isso inclui tempos de carregamento mais rápidos, período de inatividade mínimo e um uso mais confiável do aplicativo.
Mais eficiência e economia
As ferramentas de APM detectam problemas de desempenho em tempo real, reduzindo o tempo gasto em resolução de problemas e aumentando a eficiência operacional com um todo. Isso leva a um uso mais eficaz e econômico de serviços baseados na nuvem e no consumo:
Crescimento dos negócios
O monitoramento otimizado de aplicativos tem um impacto positivo nos resultados, incluindo margem bruta e lucros maiores.
Quem usa o monitoramento do desempenho de aplicativos?
O monitoramento do desempenho de aplicativos é uma prática importante para todas as empresas, sejam ou não do setor de tecnologia. Como a maioria das empresas tem presença on-line, é necessário monitorar o desempenho dos ativos web e a experiência geral dos usuários finais. Mas quais equipes estão utilizando e aproveitando o APM? Os casos de uso variam conforme o tamanho e o escopo do aplicativo.
- Engenheiros de DevOps automatizam processos relacionados a teste, implantação e manutenção de aplicativos em produção. O monitoramento do desempenho de aplicativos é uma prática recomendada essencial de DevOps.
- Engenheiros de confiabilidade de sites (SREs) usam uma abordagem baseada em software para as operações. O foco desse trabalho é garantir que os aplicativos sejam confiáveis. É absolutamente essencial que as equipes de SRE usem o APM para monitorar proativamente a confiabilidade do site.
- Engenheiros de software escrevem código e criam recursos. Em empresas menores, engenheiros de software podem estar envolvidos em todas as partes do processo, incluindo o monitoramento do código em produção. Até mesmo em empresas maiores, engenheiros se envolvem bastante em muitas partes do ciclo de vida do software.
Quais etapas estão envolvidas na configuração do monitoramento do desempenho de aplicativos?
Para integrar o monitoramento do desempenho de aplicativos, é necessário instalar agentes para rastrear os dados que fluem pelo aplicativo. Esse processo é conhecido como instrumentação, e costuma ser tão simples quanto usar uma interface de linha de comando (CLI) para instalar automaticamente os agentes que você precisar. Esses agentes coletam e relatam informações sobre transações da web e fora dela. Também é possível usar a instrumentação personalizada para incluir mais detalhes nos traces da transação ou bloquear a instrumentação de transações que você não deseja acompanhar. Ao usar a CLI para automatizar o processo de instrumentação, você pode começar a enviar os dados de telemetria para sua solução de APM em minutos.
Os aplicativos distribuídos complexos usam muitos serviços diferentes e, idealmente, todas as partes de um aplicativo devem ser instrumentadas. Uma ferramenta de APM abrangente fornece integrações para muitos serviços populares, como AWS e Azure, para que você possa instrumentar rapidamente dependências de terceiros em seu aplicativo.
Basicamente, você pode escolher quais recursos precisa para seu aplicativo e o que deseja instrumentar. Você verá mais benefícios na abordagem "todos os anteriores", o que significa que você tem um monitoramento de ponta a ponta, também conhecido como observabilidade, para seus aplicativos.
Qual é a diferença entre monitoramento do desempenho de aplicativos e observabilidade?
APM é sobre o monitoramento do desempenho de um aplicativo, mas muitas arquiteturas modernas são complexas demais para monitorar e gerenciar apenas com isso. O APM fornece uma visão de alto nível de como um aplicativo está sendo executado, mas, para chegar à causa raiz de um problema em aplicativos maiores e complexos, é necessário usar uma abordagem mais técnica.
Observabilidade é sobre ter insights técnicos mais aprofundados sobre o estado de todo o sistema, independentemente do tamanho ou da complexidade dele. Embora o APM forneça métricas agregadas, você também precisa de outras ferramentas, como trace distribuído, para se aprofundar em seus dados.
O monitoramento do desempenho de aplicativos é uma parte da observabilidade, e a observabilidade é um superconjunto do APM. Com tantos aplicativos, é necessário ter uma solução de observabilidade completa.
Para saber mais sobre as diferenças entre APM e observabilidade, confira APM versus observabilidade.
Como a New Relic pode ajudar
As ferramentas tradicionais de monitoramento do desempenho de aplicativos trazem desafios nesta nova era tecnológica. É por isso que você precisa atualizar para a próxima evolução do APM, o New Relic APM 360.
O New Relic APM 360 oferece insights em tempo real sobre métricas críticas de saúde em todo o stack e ciclo de vida de desenvolvimento do aplicativo em um só lugar. Com o APM 360, sua equipe pode evitar problemas com uma visão de dashboard, resolver bugs mais rapidamente e eliminar as lacunas de monitoramento com fluxos de trabalho guiados e recomendações de dados.
Application Performance Monitoring FAQs
How do you assess application performance?
There are several ways to assess the performance of an application. APM strategies and tools alert your dev teams to errors and issues before customers experience them.
With APM software, you can assess your application’s performance from a single dashboard. Here are the most common assessment methods:
1. Monitoring: Collect data on various performance metrics, such as response times, resource usage, and error rates, and then analyze that data to identify trends and potential issues.
2. Load testing: Simulate real-world usage scenarios, such as a large number of users accessing the application at the same time, to see how the application performs under stress.
3. Performance profiling: Analyze the application's code to identify bottlenecks or areas that could be optimized for better performance.
4. User feedback: Collect feedback from users about their experiences using the application, including any issues they may have encountered.
5. A/B testing: Compare two versions of an application to see which one performs better.
6. Synthetic monitoring: Monitor an application's performance by simulating user interactions with the application in a controlled environment.
What should I monitor in APM?
There are several key metrics that you should monitor when using APM tools:
1. Response time: How long it takes for a request to be processed and a response to be returned.
2. Error rate: The number of errors that occur in the application, such as failed requests or unhandled exceptions.
3. Resource usage: The amount of system resources, such as CPU and memory, that the application is using.
4. Throughput: The number of requests that the application can handle within a certain time period.
5. Latency: The time it takes for data to travel from the client to the server and back.
6. User experience: The overall satisfaction of the users with the application.
7. Business metric: The impact the application has on the business, such as the number of transactions, revenue, conversion rate, etc.
It's important to monitor these metrics over time to detect trends and patterns, and to be able to identify when and where performance issues occur in the application.
Also, it's important to note that depending on the specific requirements of your application, you may need to monitor additional or different metrics.
How do you assess application security risk in production?
Zero-day vulnerabilities are previously unknown risks that can allow threat actors to exploit production applications and services for data theft, extortion, or disruption of your business.
To continuously assess application risks, use New Relic Vulnerability Management to identify and prioritize vulnerabilities by application or service, and then test if these vulnerabilities are actually exploitable using New Relic interactive application security testing (IAST).
- Vulnerability assessment: Monitor open source libraries within applications and services for common vulnerability exposures (CVEs).
- Impact analysis: Filter vulnerabilities by severity, count, scope, source, and steps to remediation in order to prioritize efforts.
- Vulnerability surface area audit: Monitor the vulnerability of all your entities, libraries, number of services using a vulnerable library, active vulnerabilities, and when they were first and last seen.
- Proof of exploit testing: Simulate a real-world attack to test if an application’s vulnerabilities are actually exploitable by a threat actor.
What are the benefits of APM solutions?
There are several benefits to using an application performance management solution.
- Improved insights and faster response time: APM solutions give DevOps and engineers greater insight into all aspects of an application. If a problem occurs, teams have greater insights into the root cause of problems, allowing them to act faster to resolve them.
- Better user experience: By monitoring the performance of an application, APM can provide insights into how to improve the user experience. This can help organizations ensure their applications are running smoothly and providing a positive user experience.
- Increased app reliability: APM software can detect and diagnose problems, such as slow response times or high error rates, that impact the reliability of an application. By addressing these issues, you can boost the reliability of an application.
- Improved app performance: APM can save money by helping organizations identify and address performance issues before they cause major problems, such as system downtime or lost revenue.
- Better business performance: APM solutions can provide detailed information on how the application is impacting the business, such as the number of transactions, revenue, conversion rate, and other key business metrics. This information can be used to optimize the application and improve the overall business performance.
APM solutions can help organizations ensure that their applications are running smoothly, providing a good user experience, and impacting the business positively.
How do you monitor application performance in production?
There are several ways to monitor application performance in production. Application performance in production combines several factors, including:
Browser monitoring: Collect data on the performance of the application as it's being used by actual users. This can be done by using JavaScript tags that are embedded in the application's code to collect data on the client side, or by using proxy servers to collect data on the server side.
Synthetic monitoring: Simulate user interactions with the application in a controlled environment, such as a test server, to measure performance.
Log analysis: Analyze log files generated by the application to identify performance issues, such as slow response times or high error rates.
Application instrumentation: Add code to the application to collect data on performance metrics, such as response times and resource usage, that can be used for monitoring.
Infrastructure monitoring: Collect data on the performance of the underlying infrastructure, such as servers and network devices, that the application is running on.
Third-party tools: There are several third-party tools that can be used for monitoring application performance in production, such as APM tools.
APM can help monitor all of these factors in one dashboard so you don’t have to run various different tests to get a holistic view of the app environment.
Próximos passos
Comece a usar o monitoramento do desempenho de aplicativos. 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. Cadastre-se e use o New Relic grátis para começar. Em seguida, aprofunde-se na documentação sobre APM.
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.