paint-brush
Um guia para depuração local com Datadog Agentpor@hacker5281989
7,311 leituras
7,311 leituras

Um guia para depuração local com Datadog Agent

por Dhivya Dandapani4m2023/03/21
Read on Terminal Reader

Muito longo; Para ler

A ferramenta Datadog é utilizada para visualizar os logs de produção. Ele pode ser instalado em uma máquina MacOSX. A ferramenta é escrita em Java e pode ser usada para monitorar aplicativos Java. É gratuito e está disponível gratuitamente no site da empresa. As instruções abaixo são para a instalação local.
featured image - Um guia para depuração local com Datadog Agent
Dhivya Dandapani HackerNoon profile picture
0-item
1-item

Vamos começar com “por que” alguém deveria se preocupar em configurar o Datadog na máquina local. Posso compartilhar minha motivação para configurá-lo

Meu forte 'porquê': tentando entender os testes esquisitos:

Tínhamos um amplo conjunto de testes de ponta a ponta com alta cobertura. Mas, infelizmente, os testes ficaram cada vez mais esquisitos com o tempo. Para minha consternação, quando os testes eram executados isoladamente, eles passavam. Quando executávamos todo o conjunto de testes, muitos testes começavam a falhar. Os logs do aplicativo correspondentes aos testes devem nos ajudar na depuração. Mas eu não conseguia nem entender onde os logs de um determinado teste começavam e terminavam, muito menos entendê-los.


Datadog para o resgate 🦸!

nós temos usado datadog em nosso projeto para visualizar os logs de produção e achamos super útil. Foi quando tive uma epifania! E se eu configurar o Datadog localmente para dissecar esses logs? E foi isso que desencadeou o conteúdo desta postagem no blog.


Nosso aplicativo é escrito em Java e minha máquina local roda em MacOS. Você pode ajustar as etapas abaixo para atender às suas necessidades.


O que você precisa para configurar:

componentes necessários para configuração

  1. Inscreva-se no Datadog aqui . Nosso escopo aqui é apenas depuração local, então um teste grátis deve ser suficiente.
  2. Datadog Agent é o software que monitora o host no qual é executado. Configurações como nome do serviço, ambiente, etc. podem ser feitas no agente.
  3. dd-trace-java , biblioteca Java do cliente APM (App Performance Monitoring) da Datadog. dd-trace-java é um jar que contém APIs para automaticamente ou manualmente vestígio e perfil Aplicativos Java.


Passo 1 — Processo de inscrição:

  • Depois de fornecer seu ID de e-mail e outros detalhes, você será solicitado a escolher sua pilha de tecnologia na próxima página.


  • depois de clicar em 'Next', vem a parte mais importante. Você receberá as instruções de 'configuração do agente'. Minha máquina local é MacOSX, então escolhi apropriadamente. Anote os valores DD_API_KEY e DD_SITE , pois eles serão usados nas etapas subsequentes.


instruções para instalar o agente

Passo 2— Instalação do Datadog Agent:

Para MacOS, você pode instalar via fermentar (gerenciador de pacotes para MacOS). Use o comandos fornecidos aqui para instalação . ¹


abra o pacote de fermentação baixado e instale usando o assistente

  • Personalize o datadog-agent conforme mostrado abaixo


personalizar-local-datadog-agent-settings

  • Depois que a etapa acima for concluída, você será solicitado a 'Concluir' no Datadog-web-UI.


prompt-para-concluir-Datadog-setup

  • Você será solicitado a adicionar quaisquer integrations . Você pode adicionar Java , Docker etc (conforme as necessidades do seu projeto).

Passo 3 — Instale o rastreador Datadog:

  • Baixe o jar dd-java-agent em aqui ²


  • Para seu aplicativo Java, verifique se você está usando uma versão do Java que vem com um FlightRecorder embutido. Isso é necessário para rastreamento. O OpenJdK8 vem com um FlightRecorder embutido. Se você estiver usando o Oracle Java, precisará de uma licença comercial para usar o **FlightRecorder.**³

Executando seu aplicativo:

  • adicione as opções de VM para nosso aplicativo java:
 -javaagent:"/Users/home/Downloads/dd-java-agent.jar" -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.agent.port=8126 -Ddd.service=ecommerce-service -Ddd.env=local -XX:FlightRecorderOptions=stackdepth=256 


Args JVM para aplicativo java



  • Se você estiver usando uma tarefa gradle , pode incluir o jvmArgs conforme abaixo:

JVM args para tarefa Gradle


 jvmArgs = ["-javaagent:/Users/home/Downloads/dd-java-agent.jar", "-XX:FlightRecorderOptions=stackdepth=256", "-Ddd.profiling.enabled=true", "-Ddd.logs.injection=true", "-Ddd.agent.port=8126", "-Ddd.service=ecommerce-service", "-Ddd.env=local"]


  • Agora inicie seu aplicativo Java. Se o rastreamento estiver ocorrendo corretamente, você deverá ver os logs abaixo:

Rastreamento Datadog iniciado — logs

Fazendo login no Datadog:

  • Para permitir que os logs sejam transmitidos para o Datadog, siga as instruções na IU da Web do Datadog. ⁴

configurar fonte de registro

  • Para macOS — o diretório de configuração é ~/.datadog-agent/conf.d/java.d e o arquivo está presente em ~/.datadog-agent/conf.d/java.d/conf.yaml

um exemplo de arquivo 'conf.yaml' do local

  • e agora, os logs devem começar a fluir no Datadog.


Registros de datadog


Algumas dicas:

  • Adicione logs debug apropriados no início e no final de cada método em seu aplicativo. É muito útil durante a depuração.


  • Adicione um mecanismo para injetar span id e trace id . É um salva-vidas incrível e coloca os registros no contexto adequado.⁵

Conclusão:

Assim que coloquei o agente Datadog em funcionamento localmente, pude visualizar todas as solicitações contextualmente.

Meus testes — antes de depurar e depois de usar o Datadog

E voilá! Todos os meus testes de ponta a ponta estão passando agora 🙂 Feliz registro!

Informação adicional:

  • ¹Como alternativa, você também pode baixar o pacote dmg e instale-o. Este link também pode ser obtido na etapa 'Configuração do agente' acima (consulte a captura de tela)


  • ²Download direto do dd-trace-java jar.


  • ³ A partir do JDK 11, podemos usar FlightRecorder sem ativar nada. Mais detalhes podem ser encontrados aqui .


  • ⁴Mais detalhes estão aqui .


  • ⁵Se seu aplicativo for Java, você pode usar esta biblioteca detetive-nuvem-primavera para adicionar span_id e trace_id à solicitação.