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
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.
nós temos usado
Nosso aplicativo é escrito em Java e minha máquina local roda em MacOS. Você pode ajustar as etapas abaixo para atender às suas necessidades.
dd-trace-java
é um jar que contém APIs para automaticamente ou manualmente
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.
Para MacOS, você pode instalar via
Personalize o datadog-agent
conforme mostrado abaixo
Depois que a etapa acima for concluída, você será solicitado a 'Concluir' no Datadog-web-UI.
integrations
. Você pode adicionar Java
, Docker
etc (conforme as necessidades do seu projeto). Baixe o jar dd-java-agent
em
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.**³
-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
gradle
, pode incluir o jvmArgs
conforme abaixo:
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"]
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
e agora, os logs
devem começar a fluir no Datadog.
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.⁵
Assim que coloquei o agente Datadog em funcionamento localmente, pude visualizar todas as solicitações contextualmente.
E voilá! Todos os meus testes de ponta a ponta estão passando agora 🙂 Feliz registro!
¹Como alternativa, você também pode baixar o
²Download direto do
³ A partir do JDK 11, podemos usar FlightRecorder
sem ativar nada. Mais detalhes podem ser encontrados
⁴Mais detalhes estão
⁵Se seu aplicativo for Java, você pode usar esta bibliotecaspan_id
e trace_id
à solicitação.