Comencemos con "por qué" debería uno siquiera molestarse en configurar Datadog en la máquina local. Puedo compartir mi motivación para configurarlo
Tuvimos un extenso conjunto de pruebas de extremo a extremo con alta cobertura. Pero, lamentablemente, las pruebas se volvieron cada vez más escamosas con el tiempo. Para mi consternación, cuando las pruebas se realizaron de forma aislada, pasaban. Cuando ejecutamos todo el conjunto de pruebas, muchas pruebas comenzaban a fallar. Los registros de la aplicación correspondientes a las pruebas deberían ayudarnos a depurar. Pero ni siquiera podía entender dónde comenzaban y terminaban los registros de una prueba en particular, y mucho menos entenderlos.
hemos estado usando
Nuestra aplicación está escrita en Java y mi máquina local se ejecuta en MacOS. Puede modificar los pasos a continuación para satisfacer sus necesidades.
dd-trace-java
es un jar que contiene APIs para automáticamente o manualmente
Después de proporcionar su identificación de correo electrónico y otros detalles, se le pedirá que elija su pila de tecnología en la página siguiente.
después de hacer clic en 'Siguiente', viene la parte más importante. Recibirá las instrucciones de 'configuración del agente'. Mi máquina local es MacOSX, así que la elegí apropiadamente. Anote los valores DD_API_KEY y DD_SITE , ya que se utilizarán en los pasos siguientes.
Para MacOS, puede instalar a través de
Personalice el datadog-agent
como se muestra a continuación
Después de completar el paso anterior, se le pedirá que "Finalice" en la interfaz de usuario web de Datadog.
integrations
. Puede agregar Java
, Docker
, etc. (según las necesidades de su proyecto). Descargue el jar de dd-java-agent
de
Para su aplicación Java, asegúrese de estar usando una versión de Java que venga con un FlightRecorder integrado. Esto es necesario para el rastreo. OpenJdK8 viene con un FlightRecorder incorporado. Si usa Oracle Java, necesita una licencia comercial para usar **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
, puede incluir jvmArgs
como se muestra a continuación:
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
: el directorio de configuración es ~/.datadog-agent/conf.d/java.d
y el archivo está presente en ~/.datadog-agent/conf.d/java.d/conf.yaml
y ahora, los logs
deberían comenzar a fluir en Datadog.
Agregue registros debug
apropiados al principio y al final de cada método en su aplicación. Es muy útil durante la depuración.
Agregue un mecanismo para inyectar span id
y trace id
. Es un salvavidas increíble y pone los troncos en el contexto adecuado.⁵
Una vez que tuve el agente de Datadog funcionando localmente, pude ver todas las solicitudes contextualmente.
¡Y voilá! Todas mis pruebas de extremo a extremo están pasando ahora 🙂 ¡Feliz inicio de sesión!
¹Alternativamente, también puede descargar el
²Descarga directa del
³ A partir de JDK 11, podemos usar FlightRecorder
sin activar nada. Se pueden encontrar más detalles
⁴Más detalles son
⁵Si tu aplicación es Java, podrías usar esta libreríaspan_id
y trace_id
a la solicitud.