Neste documento, você encontra uma visão geral sobre como instrumentar seu aplicativo para o Cloud Trace. Para instruções detalhadas sobre como configurar o Cloud Trace, consulte as páginas de configuração específicas da linguagem.
O Cloud Trace fornece dados de geração de trace distribuídos para seus aplicativos. Depois de instrumentar seu aplicativo, você pode inspecionar os dados de latência de uma única solicitação e ver a latência agregada de um aplicativo inteiro no console do Cloud Trace.
Quando instrumentar seu aplicativo
Quando os dados de trace para validar o desempenho ou solucionar problemas não são capturados automaticamente, instrumente seu aplicativo.
Instrumente seu aplicativo para coletar informações específicas que ajudem você a entender o desempenho e solucionar falhas. Vários frameworks de instrumentação de código aberto coletam dados de registro, métrica e trace e podem enviar esses dados a qualquer fornecedor, incluindo Google Cloud. Para aplicativos de agente, alguns frameworks podem coletar seus comandos e respostas ou transmitir o contexto que permite o rastreamento de algumas chamadas de servidores MCP remotos do Google Cloud.
Para instrumentar seu aplicativo, recomendamos que você use uma estrutura de instrumentação neutra de fornecedores e que seja de código aberto, como o OpenTelemetry, em vez de APIs específicas do fornecedor e do produto ou bibliotecas de cliente. Para informações sobre esses frameworks, consulte Instrumentação e observabilidade e Escolher uma abordagem de instrumentação.
Como instrumentar aplicativos
Há várias abordagens que você pode usar para instrumentar seu aplicativo:
Recomendado: use o OpenTelemetry, configure seu aplicativo com um exportador OTLP que envia dados de trace para um coletor e configure o coletor para enviar dados de trace para seu Google Cloud projeto usando a API Telemetry (OTLP). Para saber mais sobre nossas recomendações, consulte Escolher uma abordagem de instrumentação.
Use OpenTelemetry e configure seu aplicativo com um exportador OTLP que envia os dados de trace para seu Google Cloud projeto usando a API Telemetry.
Se você estiver gravando aplicativos que são executados no Compute Engine, poderá usar o Agente de operações e o receptor OpenTelemetry Protocol (OTLP) para coletar traces e métricas do aplicativo. O Agente de operações também pode coletar registros, mas não usando o OTLP. Para mais informações, consulte Usar o Agente de operações e o OTLP e Visão geral do Agente de operações.
Invoque diretamente a API Telemetry ou a API Cloud Trace.
Use as bibliotecas de cliente do Cloud Trace ou o exportador do Cloud Trace para OpenTelemetry.
Para aplicativos Spring Boot, configure-os para encaminhar os dados de trace coletados para o Cloud Trace. Para informações sobre esse procedimento, consulte Spring Cloud para Google Cloud: Cloud Trace.
Os exemplos de instrumentação que fornecemos usam OpenTelemetry:
Para exemplos que usam uma exportação baseada em coletor, consulte o seguinte:
Esses exemplos enviam dados de trace para a API Telemetry.
Para informações sobre como usar uma exportação direta de dados de trace e enviar esses dados para a API Telemetry, consulte Migrar do exportador de trace para o endpoint OTLP.
Para exemplos que mostram como configurar um aplicativo de agente para coletar comandos e respostas, consulte Como instrumentar aplicativos de IA generativa.
Para saber quais servidores MCP remotos do Google Cloud oferecem suporte à geração de trace e como configurar seu aplicativo para instruir esses servidores a criar períodos, consulte Investigar chamadas de MCP usando o Trace.
Quando criar períodos
As bibliotecas de cliente do Cloud Trace normalmente mantêm um contexto de trace global que contém informações sobre o período atual, incluindo o ID do trace e se o trace é amostrado. Essas bibliotecas geralmente criam períodos nos limites da RPC. No entanto, talvez seja necessário criar períodos se o algoritmo de criação padrão não for suficiente para suas necessidades.
O período ativo atual pode ser acessado pelo contexto de trace global, que às vezes é agrupado em um objeto Trace. É possível adicionar informações relevantes ao aplicativo usando anotações e tags personalizadas em períodos existentes ou criar novos intervalos filhos com as próprias anotações e tags para rastrear o comportamento do aplicativo com granularidade mais precisa. Como o contexto é global, os aplicativos com várias linhas de execução que atualizam o contexto precisam usar o isolamento adequado.
Quando fornecer credenciais de autenticação
Em geral, não é necessário fornecer credenciais de autenticação ao aplicativo nem especificar o ID do seu Google Cloud projeto no seu aplicativo quando estiver em execução no Google Cloud. Para algumas linguagens, você precisa especificar o ID do seu Google Cloud projeto, mesmo que esteja em execução no Google Cloud. Além disso, se você usar o modo Autopilot para o Google Kubernetes Engine ou ativar a Federação de Identidade da Carga de Trabalho para GKE, será necessário configurar o aplicativo para usar a Federação de Identidade da Carga de Trabalho para GKE.
Se você estiver executando fora do Google Cloud, precisará fornecer credenciais de autenticação ao aplicativo. Também é necessário especificar o Google Cloud ID do projeto no aplicativo.
Para mais detalhes, acesse as páginas de configuração de linguagens específicas.
Como forçar o rastreamento de uma solicitação
A menos que seu aplicativo sempre faça a amostragem de cada período,
não é possível, em geral, forçar o rastreamento de uma solicitação de ponta a ponta
porque cada componente em uma solicitação de ponta a ponta toma a própria
decisão de amostragem. No entanto, é possível influenciar a
decisão adicionando uma sampled flag ao cabeçalho de trace,
com essa flag definida como true. Essa configuração é uma dica para os componentes filhos para fazer a amostragem da solicitação.
Para mais informações sobre cabeçalhos de trace, consulte
Protocolos para propagação de contexto.
Para componentes downstream cujo código você possui, é necessário determinar se a lógica de instrumentação respeita a flag sampled.
Por exemplo, ao usar OpenTelemetry
para instrumentação, é possível usar o ParentBased sampler
para garantir que a flag de amostragem principal seja respeitada.
Google Cloud serviços que registram informações de rastreamento no Cloud Trace normalmente aceitam a flag de amostragem principal como uma dica. No entanto, a maioria dos serviços também limita a taxa de amostragem. Cada Google Cloud serviço determina se oferece suporte ao rastreamento, como a flag de amostragem principal é utilizada e o limite de taxa na amostragem.
Como correlacionar dados de métricas e traces
É possível correlacionar dados de métricas com valor de distribuição com traces anexando exemplos aos pontos de dados de métricas. Desde que você conclua as etapas de configuração necessárias, o OpenTelemetry, que é a biblioteca de instrumentação recomendada, adiciona esses exemplos automaticamente. Para mais informações, consulte Correlacionar métricas e traces usando exemplos.
Configurar o projeto e a plataforma
Verifique se a API Cloud Trace está ativada.
Por padrão, Google Cloud os projetos têm a API Cloud Trace ativada e você não precisa fazer nada. No entanto, as restrições de segurança definidas pela sua organização podem ter desativado a API. Para informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente restrito Google Cloud .
Ative a API Cloud Trace.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.Configure sua plataforma.
Você pode usar o Cloud Trace no Google Cloud e em outras plataformas.
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, é necessário garantir que sua Google Cloud plataforma tenha o escopo de acesso da API Cloud Trace ativado.
Para as seguintes configurações, as definições de escopo de acesso padrão incluem o escopo de acesso da API Cloud Trace:
Se você usar escopos de acesso personalizados, verifique se o escopo de acesso da API Cloud Trace está ativado. Por exemplo, se você usar a Google Cloud CLI para criar um cluster do GKE e especificar a flag
--scopes, verifique se o escopo incluitrace.append. O comando a seguir ilustra a configuração da flag--scopes:gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append
Execução local e em outros lugares: se o aplicativo estiver sendo executado fora do Google Cloud, forneça as credenciais de autenticação em forma de uma conta de serviço para a biblioteca de cliente. A conta de serviço precisa receber o papel de agente do Cloud Trace (
roles/cloudtrace.agent). Para informações sobre papéis, consulte Controlar o acesso com o IAM.AsGoogle Cloud bibliotecas de cliente usam Application Default Credentials (ADC) para encontrar as credenciais do aplicativo. É possível fornecer essas credenciais de três maneiras:
Corrida
gcloud auth application-default loginColoque a conta de serviço em um caminho padrão para seu sistema operacional. A seguir, listamos os caminhos padrão para Windows e Linux:
Windows:
%APPDATA%/gcloud/application_default_credentials.jsonLinux:
$HOME/.config/gcloud/application_default_credentials.json
Defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALScomo o caminho para sua conta de serviço: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"
A seguir
Para informações detalhadas de configuração, amostras e links para o GitHub e outros repositórios de código aberto, acesse a página de configuração da sua linguagem.
Exemplos do OpenTelemetry: