Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

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 app 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 punto final del exportador, los protocolos admitidos son gRPC y protobuf sobre HTTP.

  4. Verifica que SUSE Observability está recibiendo trazas y/o métricas buscando las métricas / trazas en el explorador de métricas / trazas para el nombre de tu servicio

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

Para algunas métricas de Java, por ejemplo, métricas del recolector de basura, SUSE Observability ha definido gráficos sobre los componentes relacionados. Para Kubernetes, los gráficos están disponibles en los pods. Es posible añadir gráficos para más métricas, esto funciona para métricas de instrumentación automática, pero también para métricas específicas de la aplicación de instrumentación manual.