Com mais de 43 milhões de veículos visualizados por mês, o desempenho e a disponibilidade do site Dealer.com impulsionam os negócios de milhares de concessionárias de automóveis nos Estados Unidos. Se o site não estiver disponível ou apresentar um erro, e os compradores não conseguirem uma cotação rápida e simples ou não conseguirem fazer uma busca preliminar por um novo carro ou caminhão, a venda poderá não acontecer.
Em ambientes de software complexos como o da Dealer.com, as solicitações costumam passar por vários serviços discretos. Um único serviço com problema no caminho pode afetar todo o tempo de resposta da solicitação, transformar uma boa experiência do cliente em uma ruim e, potencialmente, fazer com que os clientes procurem a concorrência.
As equipes de software, que trabalham em ambientes nos quais há muitos serviços envolvidos no atendimento de uma solicitação, precisam entender profundamente o desempenho de todos os serviços, tanto upstream quanto downstream, para que possam resolver os problemas de desempenho de modo mais efetivo, mensurar a saúde geral do sistema e priorizar áreas de alto valor para melhoria.
O trace distribuído da New Relic está incluso para os clientes do APM
O trace distribuído da New Relic foi criado para proporcionar às equipes de software que trabalham em ambientes modernos um modo fácil de coletar, visualizar e analisar traces por meio de arquiteturas complexas. E se você já está usando o monitoramento do desempenho de aplicativos (APM) da New Relic, recebe o trace distribuído sem custos adicionais. Somente é necessário atualizar seus agentes, abrir o New Relic e selecionar Traces para ver seus dados de trace.
Os agentes do New Relic APM removem completamente a carga operacional do gerenciamento do software de trace complexo, para que engenheiros, como o Andrew da Dealer.com, tenham disponibilidade para instrumentar seus ambientes para gerar telemetria de trace ilimitada sem se preocupar com as complexidades associadas à implantação e ao dimensionamento de componentes.
É possível observar todos os traces do aplicativo nos sistemas distribuídos automaticamente. O trace distribuído da New Relic fornece um gráfico de dispersão e exibições em cascata para vários frameworks de linguagem, como C, Go, Java, .NET, Node.js, PHP, Python, Ruby e mais. Ele também inclui os dados de navegador e monitoramento de Mobile do New Relic, o AWS Lambda e os traces de formato do Zipkin por meio da API de trace, além de ser compatível com padrões comuns para traces, como OpenTelemetry e W3C, para que você possa investigar e solucionar problemas mais rapidamente.
Compreensão da complexidade do software
Para entender por que o trace distribuído é tão importante, é útil observar as plataformas de nuvem, a conteinerização e a orquestração de contêiner que organizações de software progressivas usam para criar, dimensionar e operar rapidamente os aplicativos essenciais aos negócios.
Apesar das muitas vantagens das arquiteturas de software desenvolvidas em microsserviços e serverless, o número crescente de componentes e sua diversidade em linguagem, ambiente operacional e propriedade criam uma grande carga para as equipes que tentam gerenciá-los. As equipes não conseguem trabalhar efetivamente para resolver problemas em um sistema complexo até que entendam todas as dependências de serviços e como as características de desempenho de serviços dependentes afetam suas solicitações e transações. Para encontrar a agulha no palheiro, é necessário ter uma exibição completa do sistema inteiro.
Entender como um serviço downstream não muito distante pode criar um gargalo crítico para um serviço é essencial para a resolução rápida de problemas. Tão importante quanto isso é fornecer às equipes de DevOps insights sobre como otimizar os códigos. Se não for possível determinar quando, por que e como um problema acontece, pequenos defeitos podem continuar na produção até que uma grande tempestade de eventos aconteça e o sistema pare de uma vez. O trace distribuído fornece uma exibição detalhada das solicitações individuais para que você saiba precisamente quais partes de um grande sistema estão causando problemas, de modo que consiga otimizar e resolver esses problemas rapidamente.
Dados x insights
O trace distribuído fornece visibilidade de ponta a ponta revelando as dependências do serviço. Você pode considerar isso como um modo de registrar e visualizar solicitações por meio de sistemas distribuídos e complexos. Entretanto, coletar e visualizar dados de trace pode ser muito trabalhoso e complexo de implementar, como implantar, gerenciar e dimensionar gateways ou satélites de terceiros para coleta de dados.
A New Relic facilita o trace distribuído com a instrumentação automática. Nosso código do aplicativo de instrumentação automática usa agentes de linguagem que trabalham com centenas de frameworks e bibliotecas diferentes em várias linguagens. É possível implantar um agente, e o New Relic APM instrumenta todos os serviços envolvidos na solicitação, bem como cria tempos para as operações no serviço e adiciona automaticamente informações importantes sobre resolução de problemas para cada span. Você também pode adicionar atributos personalizados às transações e ver todas as informações no trace, sem alterar nada.
Os agentes do New Relic APM criam automaticamente uma ID de trace exclusiva para cada solicitação de entrada e propagam essa ID e outras informações de correlação necessárias como o "contexto de trace" em toda a chamada. Por exemplo, quando um serviço faz uma chamada a outro serviço, o New Relic adiciona o contexto de trace ao cabeçalho de solicitação HTTP para o próximo serviço usar. Nossa instrumentação automática foi criada para eliminar o trabalho difícil de gerenciamento e propagação de contexto.
E se você estiver usando um transporte que exige instrumentação manual? O agente do New Relic APM fornece uma API que você pode usar para injetar e extrair o contexto de trace. Usar o formato W3C Trace Context para propagar o contexto de trace faz com que ele fique interoperável com outras ferramentas ou agente de trace que também são compatíveis com esse padrão.
Nada disso importa se você não consegue identificar os insights nos dados em seu stack. O New Relic APM fornece exibições de trace criadas para ajudar você a entender rapidamente por que uma solicitação específica está lenta, onde um erro se originou e onde você pode otimizar seu código para aprimorar a experiência dos seus clientes.
Aqui está um diagrama que mostra como esses componentes trabalham juntos no trace distribuído da New Relic:
Comece a usar o trace distribuído da New Relic
Tudo pronto para começar a identificar maneiras de melhorar seus aplicativos? Com o New Relic APM e o trace distribuído, logo você estará analisando arquiteturas complexas para entender melhor as dependências no seu sistema.
1. Examine a documentação do trace distribuído.
2. Implante ou atualize para o agente APM mais recente para cada serviço envolvido no caminho de chamada no qual tem interesse. O trace distribuído fica disponível imediatamente após a atualização.
- Implante o agente browser mais recente.
- Implante o agente mobile mais recente.
3. É isso! Agora você pode acessar as informações do trace distribuído do New Relic APM e identificar rapidamente traces lentos e traces com erros. Também pode usar filtros avançados para encontrar traces com uma combinação de atributos.
Quer saber mais?
O trace distribuído é gratuito para todos os clientes do New Relic APM na edição Pro ou Enterprise. Usar o trace distribuído facilita a otimização do seu código para melhorar a experiência dos clientes.
Saiba mais sobre como o trace distribuído funciona nos detalhes técnicos sobre o trace distribuído.
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.
Essa publicação contém declarações “prospectivas” conforme a definição das leis de garantia federais incluindo, mas não limitado a, roteiros futuros para trace distribuído, bem como os benefícios de tais recursos. O cumprimento ou sucesso dos assuntos abordados nas declarações prospectivas é baseado nas atuais suposições, expectativas e crenças da New Relic, estando sujeito a riscos significativos, incertezas, suposições e mudanças nas circunstâncias que podem fazer com que os resultados reais, o desempenho ou os êxitos da New Relic sejam materialmente diferentes do que está expresso ou implícito na declaração prospectiva. Mais informações sobre os fatores que podem afetar os resultados financeiros e outros da New Relic, além das declarações prospectivas desse press release/publicação, estão inclusas nos registros que a New Relic faz periodicamente com a SEC, incluindo o último Formulário 10-K da New Relic, especificamente as declarações em “Risk Factors” (Fatores de risco) e “Management’s Discussion and Analysis of Financial Condition and Results of Operations” (Discussão e análise da condição financeira e resultados das operações pela gerência). É possível obter cópias desses documentos visitando o site de Investor Relations (Relacionamento com investidores) da New Relic em http://ir.newrelic.com ou o site da SEC em www.sec.gov. A New Relic não assume a obrigação nem pretende atualizar as declarações prospectivas, exceto quando imposto por lei.