Aplicaciones Java

El SDK de Java admite la instrumentación de aplicaciones en la JVM. Como resultado, no solo admite Java, sino también otros lenguajes de la JVM como Kotlin y Scala.

Instrumentación automática

La instrumentación automática para Java utiliza un JAR de agente de Java que se puede adjuntar a cualquier aplicación en Java 8 o superior. Inyecta dinámicamente bytecode para capturar telemetría de muchas bibliotecas y marcos populares, incluyendo varias bibliotecas de Kotlin y Scala. Se puede utilizar para capturar datos de telemetría en el “edges” de una aplicación o servicio, como solicitudes entrantes, llamadas HTTP salientes, llamadas a bases de datos, etc.

La instrumentación automática no requiere ninguna modificación de la aplicación. Para configurarlo, sigue estos pasos:

  1. Descarga opentelemetry-javaagent.jar de Releases del repositorio opentelemetry-java-instrumentation e incluye el archivo JAR en la imagen de Docker de tu aplicación. El archivo JAR contiene el agente y las bibliotecas de instrumentación.

  2. Actualiza el comando que inicia tu aplicación para cargar el agente de Java, ya sea actualizando el punto de entrada o el comando de la imagen de Docker o actualizando el command en el manifiesto de Kubernetes para tu aplicación. Añade -javaagent:/path/to/opentelemetry-javaagent.jar:

    java -javaagent:/path/to/opentelemetry-javaagent.jar -jar myapp.jar
  3. Despliega tu aplicación con las variables de entorno adicionales para configurar el nombre del servicio y el endpoint del exportador.

  4. Verifica que SUSE Observability está recibiendo trazas y/o métricas

Para más detalles, por favor consulta la documentación de Open Telemetry.

Instrumentación manual

La instrumentación manual puede ser utilizada cuando necesitas métricas, trazas o logs de partes del código que no son compatibles con la instrumentación automática. Por ejemplo, bibliotecas no soportadas, código interno o métricas a nivel de negocio.

Para capturar esos datos, necesitas modificar tu aplicación.

  1. Incluye el SDK de Open Telemetry como una dependencia.

  2. Añade código a tu aplicación para capturar métricas, spans o logs donde sea necesario.

Hay documentación detallada sobre esto en las Páginas de documentación del SDK de Open Telemetry Java.

Asegúrate de utilizar el exportador OTLP (que es el predeterminado) y la auto-configuración. Al desplegar la aplicación, el nombre del servicio y el exportador están configurados a través de variables de entorno.

Métricas en SUSE Observability