Requisitos de compatibilidad

El último Tracer de Java soporta todas las versiones de JVM 8 y superiores. Para información adicional sobre versiones de JVM anteriores a 8, lee Runtimes de JVM soportados.

Para una lista completa del soporte de versiones y frameworks de Java de Datadog (incluyendo versiones heredadas y de mantenimiento), lee Requisitos de Compatibilidad.

Comenzando

Antes de comenzar, asegúrate de haber instalado y configurado el Datadog Agent.

Instrumenta tu aplicación

Después de instalar y configurar tu Datadog Agent, el siguiente paso es agregar el SDK directamente en la aplicación para instrumentarla. Lee más sobre información de compatibilidad.

Para comenzar a rastrear tus aplicaciones:

  1. Descarga dd-java-agent.jar que contiene los últimos archivos de clase del tracer, a una carpeta que sea accesible por tu usuario de Datadog:
wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
curl -Lo dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
ADD 'https://dtdg.co/latest-java-tracer' dd-java-agent.jar

Nota: Para descargar la última compilación de una versión mayor específica, utiliza el enlace https://dtdg.co/java-tracer-vX en su lugar, donde X es la versión mayor deseada. Por ejemplo, utiliza https://dtdg.co/java-tracer-v1 para la última compilación de la versión 1. Los números de versión menor no deben incluirse. Alternativamente, consulta el repositorio de Maven de Datadog para cualquier versión específica.

Nota: Las versiones de Release Candidate están disponibles en DataDog/dd-trace-java releases en GitHub. Estas tienen “RC” en la versión y se recomiendan para pruebas fuera de tu entorno de producción. Puedes suscribirte a las notificaciones de lanzamientos de GitHub para ser informado cuando nuevas Release Candidates estén disponibles para pruebas. Si experimentas algún problema con las Release Candidates, contacta a soporte de Datadog.

  1. Para ejecutar tu aplicación desde un IDE, script de aplicación de Maven o Gradle, o java -jar comando, con el Continuous Profiler, seguimiento de despliegue e inyección de registros (si estás enviando registros a Datadog), añade el -javaagent argumento JVM y las siguientes opciones de configuración, según corresponda:

    java -javaagent:/path/to/dd-java-agent.jar -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.service=my-app -Ddd.env=staging -Ddd.version=1.0 -jar path/to/your/app.jar
    

    Note: If you have a strong need to reduce the size of your image and omit modules, you can use the jdeps command to identify dependencies. However, required modules can change over time, so do this at your own risk.

    Note: When running the SDK with Java 24+, you may see warnings related to JNI native access. Suppress these warnings by adding the --enable-native-access=ALL-UNNAMED flag. See JEP 472 for more details.

    Habilitar el perfilado puede afectar tu factura dependiendo de tu paquete APM. Consulta la página de precios para más información.
Variable de EntornoPropiedad del SistemaDescripción
DD_ENVdd.envEl entorno de tu aplicación (production, staging, etc.)
DD_LOGS_INJECTIONdd.logs.injectionHabilitar la inyección automática de claves MDC para los IDs de traza y tramo de Datadog. Consulta Uso Avanzado para más detalles.

A partir de la versión 1.18.3, si Agent Remote Configuration está habilitado donde se ejecuta este servicio, puedes establecer DD_LOGS_INJECTION en la interfaz de usuario del Software Catalog.
DD_PROFILING_ENABLEDdd.profiling.enabledHabilita el Continuous Profiler
DD_SERVICEdd.serviceEl nombre de un conjunto de procesos que realizan la misma tarea. Se utiliza para agrupar estadísticas de tu aplicación.
DD_TRACE_SAMPLE_RATEdd.trace.sample.rateEstablece una tasa de muestreo en la raíz de la traza para todos los servicios.

A partir de la versión 1.18.3, si Agent Remote Configuration está habilitado donde se ejecuta este servicio, puedes establecer DD_TRACE_SAMPLE_RATE en la interfaz de usuario del Software Catalog.
DD_TRACE_SAMPLING_RULESdd.trace.sampling.rulesEstablece una tasa de muestreo en la raíz de la traza para los servicios que coincidan con la regla especificada.
DD_VERSIONdd.versionLa versión de tu aplicación (por ejemplo, 2.5, 202003181415 o 1.3-alpha)

Opciones de configuración adicionales se describen a continuación.

Agrega el SDK de Java a la JVM

Utiliza la documentación de tu servidor de aplicaciones para determinar la forma correcta de pasar -javaagent y otros argumentos de la JVM. Aquí hay instrucciones para algunos marcos comúnmente utilizados:

Si tu aplicación se llama my_app.jar, crea un my_app.conf, que contenga:

JAVA_OPTS=-javaagent:/path/to/dd-java-agent.jar

Para más información, consulta la documentación de Spring Boot.

Linux

Para habilitar el rastreo al ejecutar Tomcat en Linux:

  1. Abre tu archivo de script de inicio de Tomcat, por ejemplo setenv.sh.
  2. Agrega lo siguiente a setenv.sh:
    CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/dd-java-agent.jar"
    

Windows (Tomcat como un servicio de Windows)

Para habilitar el rastreo al ejecutar Tomcat como un servicio de Windows:

  1. Abre la utilidad de mantenimiento “tomcat@VERSION_MAJOR@w.exe” ubicada en el directorio ./bin de la carpeta del proyecto Tomcat.
  2. Navega a la pestaña Java, y agrega lo siguiente a Java Options:
-javaagent:C:\path\to\dd-java-agent.jar
  1. Reinicia tus servicios de Tomcat para que los cambios surtan efecto.
  • En modo independiente:

    Agrega la siguiente línea al final de standalone.conf:

JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/dd-java-agent.jar"
  • En modo independiente y en Windows, agrega la siguiente línea al final de standalone.conf.bat:
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:X:/path/to/dd-java-agent.jar"
  • En modo de dominio:

    Agrega la siguiente línea en el archivo domain.xml, bajo la etiqueta server-groups.server-group.jvm.jvm-options:

<option value="-javaagent:/path/to/dd-java-agent.jar"/>

Para más detalles, consulta la documentación de JBoss.

Si usas jetty.sh para iniciar Jetty como un servicio, edítalo para agregar:

JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/path/to/dd-java-agent.jar"

Si usas start.ini para iniciar Jetty, agrega la siguiente línea (bajo --exec, o agrega la línea --exec si aún no está):

-javaagent:/path/to/dd-java-agent.jar

En la consola administrativa:

  1. Selecciona Servidores. Bajo Tipo de Servidor, selecciona Servidores de aplicaciones WebSphere y selecciona tu servidor.
  2. Selecciona Java y Gestión de Procesos > Definición de Proceso.
  3. En la sección Propiedades Adicionales, haz clic en Máquina Virtual de Java.
  4. En el campo de texto Argumentos JVM Genéricos, ingresa:
-javaagent:/path/to/dd-java-agent.jar

Para más detalles y opciones, consulta la documentación de WebSphere.

Nota

  • Si estás agregando el -javaagent argumento a tu java -jar comando, debe ser agregado antes del -jar argumento, como una opción de JVM, no como un argumento de aplicación. Por ejemplo:

    java -javaagent:/path/to/dd-java-agent.jar -jar my_app.jar
    

    For more information, see the Oracle documentation.

  • Nunca agregues dd-java-agent a tu classpath. Puede causar comportamientos inesperados.

Instrumentación automática

La instrumentación automática para Java utiliza las java-agent capacidades de instrumentación proporcionadas por la JVM. Cuando un java-agent es registrado, puede modificar archivos de clase en el momento de carga.

Nota: Las clases cargadas con ClassLoader remoto no son instrumentadas automáticamente.

La instrumentación puede provenir de la auto-instrumentación, la API de OpenTracing, o una mezcla de ambas. La instrumentación generalmente captura la siguiente información:

  • La duración del tiempo se captura utilizando el reloj NanoTime de la JVM a menos que se proporcione una marca de tiempo desde la API de OpenTracing.
  • Pares de etiquetas clave/valor
  • Errores y trazas de pila que no son manejados por la aplicación
  • Un conteo total de trazas (solicitudes) que fluyen a través del sistema

Configuración

Si es necesario, configure el SDK para enviar datos de telemetría de rendimiento de la aplicación según lo requiera, incluyendo la configuración de unified service tagging. Lea Configuración de la Biblioteca para más detalles.

Configuración remota

La Configuración Remota permite que el Agente de Datadog configure dinámicamente los ajustes de rastreo sin requerir reinicios de la aplicación. Por defecto, la Configuración Remota está habilitada. Para deshabilitarla, establezca la variable de entorno:

DD_REMOTE_CONFIG_ENABLED=false

O agregue la propiedad del sistema JVM:

-Ddd.remote_config.enabled=false

Lectura adicional