Java y OpenTelemetry

Esta página está diseñada para desarrolladores de aplicaciones que desean recopilar datos de Cloud Trace para aplicaciones de Java mediante OpenTelemetry. OpenTelemetry es un conjunto de bibliotecas de instrumentación para recopilar datos de métricas y seguimientos, que funcionan con varios backends. Para recopilar seguimientos con OpenTelemetry y Java, haz lo siguiente, como se describe en esta página:

  • Instala los paquetes de OpenTelemetry.
  • Configura la aplicación para exportar intervalos a Cloud Trace.
  • Configura tu plataforma.

Para obtener información sobre la versión, consulta lo siguiente:

Si quieres obtener los detalles más recientes de OpenTelemetry para Java, junto con la documentación adicional y ejemplos, consulta OpenTelemetry.

Antes de comenzar

  • Debes usar Java 8 o una versión posterior.
  • Verifica que la API de Cloud Trace esté habilitada para tu proyecto de Google Cloud:

    1. Haz clic en el siguiente botón o, en Google Cloud Console, selecciona API y servicios y, luego, selecciona API de Cloud Trace.

      Ir a la API de Trace

    2. En la página API de Cloud Trace, si se muestra un botón etiquetado como Habilitar, haz clic en él. Si no se muestra este botón, la API de Cloud Trace está habilitada para el proyecto seleccionado.

Instala los paquetes de OpenTelemetry

Si deseas recopilar seguimientos, agrega el seguimiento de OpenTelemetry y el exportador de Cloud Trace para OpenTelemetry al archivo Maven o Gradle de tu aplicación:

  • Si quieres obtener la lista más reciente de dependencias de OpenTelemetry, consulta Maven y Gradle.

  • Para conocer las dependencias del exportador necesarias, consulta la siguiente tabla:

    Maven

    <dependency>
      <groupId>com.google.cloud.opentelemetry</groupId>
      <artifactId>exporter-trace</artifactId>
      <version>0.15.0</version>
    </dependency>
    

    Las instrucciones anteriores especifican una versión del exportador. Asegúrate de seleccionar la versión más reciente del exportador.

    Gradle

    implementation 'com.google.cloud.opentelemetry:exporter-trace:0.15.0'
    

    La instrucción anterior especifica una versión del exportador. Asegúrate de seleccionar la versión más reciente del exportador.

Configura la exportación de intervalos a Cloud Trace

Para exportar los datos de Trace recopilados, usa un objeto TraceExporter. A continuación, se muestra cómo crear este objeto con una configuración predeterminada:

TraceExporter traceExporter = TraceExporter.createWithDefaultConfiguration();

También puedes especificar una configuración y, luego, pasarla al exportador. Por ejemplo, el siguiente código configura el proyecto de Google Cloud:

TraceExporter traceExporter = TraceExporter.createWithConfiguration(
  TraceConfiguration.builder().setProjectId("MY_PROJECT").build());

Después de configurar el exportador, establece el TracerProvider:

OpenTelemetrySdk.builder()
          .setTracerProvider(
              SdkTracerProvider.builder()
                  .addSpanProcessor(BatchSpanProcessor.builder(traceExporter).build())
                  .build())
          .buildAndRegisterGlobal();

En el ejemplo anterior, la llamada a BatchSpanProcessor configura el proveedor para que envíe intervalos con un proceso en segundo plano. Te recomendamos que uses esta configuración, a menos que uses Cloud Run. Cloud Run no admite procesos en segundo plano.

Para obtener información sobre cómo configurar los campos de autenticación, consulta la sección de configuración del exportador de Cloud Trace para OpenTelemetry.

Cómo crear intervalos

Si deseas obtener información sobre cómo configurar tu aplicación para capturar intervalos de seguimiento, consulta Seguimiento de OpenTelemetry. En esta página, se describe cómo hacer todo lo siguiente:

  • Crear un intervalo
  • Crear intervalos anidados
  • Establecer atributos de intervalo
  • Crear intervalos con eventos
  • Crear intervalos con vínculos

Configura el muestreo

Para obtener información sobre cómo configurar cuándo se muestrean los seguimientos, consulta Muestra de OpenTelemetry. En esta página, se describen las opciones de muestreo que están disponibles para ti.

Aplicación de ejemplo

Para ver una aplicación de ejemplo, consulta TraceExporterExample.java.

Configura tu plataforma

Puedes usar Cloud Trace en Google Cloud y otras plataformas.

Ejecuta en Google Cloud

Cuando tu aplicación se ejecuta en Google Cloud, no necesitas proporcionar credenciales de autenticación en el formato de una cuenta de servicio a la biblioteca cliente. Sin embargo, debes asegurarte de que tu plataforma de Google Cloud tenga habilitado el permiso de acceso a la API de Cloud Trace.

Para obtener una lista de los entornos de Google Cloud compatibles, consulta Compatibilidad de entornos.

Para las siguientes opciones de configuración, la configuración predeterminada del permiso de acceso habilita la API de Cloud Trace:

  • Entorno flexible de App Engine
  • Entorno estándar de App Engine

  • Google Kubernetes Engine (GKE)

  • Compute Engine

  • Cloud Run

Si usas permisos de acceso personalizados, debes asegurarte de que el permiso de acceso a la API de Cloud Trace esté habilitado:

  • Si deseas obtener información sobre cómo configurar los permisos de acceso para tu entorno mediante Google Cloud Console, consulta Configura tu proyecto de Google Cloud.

  • Para los usuarios de gcloud, especifica los niveles de acceso con la marca --scopes y, también, incluye el permiso de acceso a la API de Cloud Trace trace.append. Por ejemplo, para crear un clúster de GKE solo con la API de Cloud Trace habilitada, sigue estos pasos:

    gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append

Ejecuta de forma local y en otros lugares

Si tu aplicación se ejecuta fuera de Google Cloud, debes proporcionar credenciales de autenticación en forma de una cuenta de servicio a la biblioteca cliente. La cuenta de servicio debe contener la función de agente de Cloud Trace. Para obtener más instrucciones, consulta Cómo crear una cuenta de servicio.

Las bibliotecas cliente de Google Cloud usan las credenciales predeterminadas de la aplicación (ADC) para encontrar las credenciales de tu aplicación. Estas credenciales se proporcionan mediante la configuración de la variable de entorno GOOGLE_APPLICATION_CREDENTIALS:

Linux/macOS

    export GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

Windows

    set GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="path-to-your-service-accounts-private-key"

Cómo ver los seguimientos

Después de la implementación, puedes ver los seguimientos en el visor de seguimientos de Cloud Console.

Ir a la página del Lector de seguimiento

Soluciona problemas

Para obtener información sobre cómo solucionar problemas con Cloud Trace, ve a la página de solución de problemas.

Recursos