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
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:
- Inscreva-se no Datadog
aqui . Nosso escopo aqui é apenas depuração local, então umteste grátis deve ser suficiente. - 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.
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 manualmentevestígio eperfil 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.
Passo 2— Instalação do Datadog Agent:
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.
- Você será solicitado a adicionar quaisquer
integrations
. Você pode adicionarJava
,Docker
etc (conforme as necessidades do seu projeto).
Passo 3 — Instale o rastreador Datadog:
Baixe o jar
dd-java-agent
emaqui ²
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
- Se você estiver usando uma tarefa
gradle
, pode incluir ojvmArgs
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"]
- Agora inicie seu aplicativo Java. Se o rastreamento estiver ocorrendo corretamente, você deverá ver os logs abaixo:
Fazendo login no Datadog:
- Para permitir que os logs sejam transmitidos para o Datadog, siga as instruções na IU da Web do Datadog. ⁴
- 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
e agora, os
logs
devem começar a fluir no 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
etrace 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.
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 encontradosaqui .
⁴Mais detalhes estão
aqui .
⁵Se seu aplicativo for Java, você pode usar esta biblioteca
detetive-nuvem-primavera para adicionarspan_id
etrace_id
à solicitação.