Java e OpenTelemetry

Esta página foi projetada para desenvolvedores de aplicativos que querem coletar dados do Cloud Trace para aplicativos Java usando o OpenTelemetry. OpenTelemetry é um conjunto de bibliotecas de instrumentação para coletar dados de rastreamento e métrica. Elas funcionam com vários back-ends. Para coletar traces com o OpenTelemetry e o Java, faça o seguinte, conforme descrito nesta página:

  • Instale os pacotes do OpenTelemetry.
  • Configure o aplicativo para exportar períodos para o Cloud Trace.
  • Configure sua plataforma.

Para ver informações sobre a versão, consulte:

Para ver os detalhes mais recentes sobre o OpenTelemetry para Java, além de documentação e exemplos adicionais, consulte OpenTelemetry.

Antes de começar

  • Você precisa usar o Java 8 ou posterior.
  • Verifique se a API Cloud Trace está ativada no seu projeto do Google Cloud:

    1. Clique no botão a seguir ou, no Console do Google Cloud, selecione APIs e serviços e, em seguida, selecione API Cloud Trace:

      Acessar a API do Trace

    2. Na página API Cloud Trace, se um botão Ativar for exibido, clique nele. Se esse botão não for exibido, significa que a API Cloud Trace está ativada para o projeto selecionado.

Instalar os pacotes do OpenTelemetry

Para coletar traces, adicione o rastreamento do OpenTelemetry e o exportador do Cloud Trace para OpenTelemetry ao arquivo Maven ou Gradle do aplicativo:

  • Para ver a lista mais recente de dependências da OpenTelemetry, consulte Maven e Gradle.

  • Para as dependências necessárias do exportador, consulte a tabela a seguir:

    Maven

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

    As instruções anteriores especificam uma versão do exportador. Verifique se você selecionou a versão mais recente do exportador.

    Gradle

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

    A instrução anterior especifica uma versão do exportador. Verifique se você selecionou a versão mais recente do exportador.

Configurar a exportação de períodos para o Cloud Trace

Para exportar os dados coletados do Trace, use um objeto TraceExporter. Veja a seguir como criar esse objeto com uma configuração padrão:

TraceExporter traceExporter = TraceExporter.createWithDefaultConfiguration();

Também é possível especificar uma configuração e transmiti-la ao exportador. Por exemplo, o código a seguir define o projeto do Google Cloud:

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

Depois que o exportador for configurado, defina o TracerProvider:

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

No exemplo anterior, a chamada para BatchSpanProcessor configura o provedor para enviar períodos com um processo em segundo plano. Recomendamos que você use essa configuração, a menos que esteja usando o Cloud Run. O Cloud Run não é compatível com processos em segundo plano.

Para informações sobre como definir campos de autenticação, consulte a seção de configuração do exportador do Cloud Trace para OpenTelemetry.

Criar períodos

Para saber mais sobre como configurar seu aplicativo para capturar períodos de trace, consulte Rastreamento do OpenTelemetry. Nesta página, descrevemos como fazer o seguinte:

  • Criar um período
  • Criar períodos aninhados
  • Definir atributos de período
  • Criar períodos com eventos
  • Criar períodos com links

Configurar a amostragem

Para informações sobre como configurar quando os traces são amostrados, consulte Amostrador do OpenTelemetry. Nesta página, você verá as opções de amostragem disponíveis.

Exemplo de aplicativo

Para um aplicativo de amostra, consulte TraceExporterExample.java.

Configurar sua plataforma

Você pode usar o Cloud Trace no Google Cloud e em outras plataformas.

Como executar no Google Cloud

Quando seu aplicativo está em execução no Google Cloud, não é necessário fornecer credenciais de autenticação na forma de uma conta de serviço para a biblioteca de cliente. No entanto, verifique se o escopo de acesso da API Cloud Trace está ativado no Google Cloud Platform.

Para uma lista de ambientes compatíveis do Google Cloud, consulte Suporte ao ambiente.

Para as seguintes configurações, as definições de escopo de acesso padrão ativam a API Cloud Trace:

  • Ambiente flexível do App Engine
  • Ambiente padrão do App Engine

  • Google Kubernetes Engine (GKE)

  • Compute Engine

  • Cloud Run

Se você usa escopos de acesso personalizados, verifique se o escopo de acesso da API Cloud Trace está ativado:

  • Para mais informações sobre como configurar os escopos de acesso para o ambiente usando o Console do Google Cloud, consulte Como configurar o projeto do Google Cloud.

  • Para usuários gcloud, especifique os escopos de acesso usando a sinalização --scopes e inclua o escopo de acesso trace.append da API Cloud Trace. Por exemplo, para criar um cluster do GKE com apenas a API Cloud Trace ativada, faça o seguinte:

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

Execução local e em outro lugar

Se o aplicativo estiver em execução fora do Google Cloud, forneça as credenciais de autenticação na forma de uma conta de serviço para a biblioteca de cliente. A conta de serviço precisa conter o papel de agente do Cloud Trace. Para instruções, consulte Como criar uma conta de serviço.

As bibliotecas de cliente do Google Cloud usam o Application Default Credentials (ADC) para encontrar as credenciais do aplicativo. Forneça essas credenciais definindo a variável de ambiente 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"

Como visualizar os traces

Após a implantação, é possível ver os traces no Visualizador de traces do Console do Cloud.

Acesse a página do visualizador do Trace

Solução de problemas

Para informações sobre como solucionar problemas com o Cloud Trace, acesse a página de solução de problemas.

Recursos