Neste documento, descrevemos as etapas para instrumentar um agente LangGraph ReAct com o OpenTelemetry, permitindo a coleta de telemetria do agente. Os comandos do usuário e as respostas e opções do agente são incluídos na telemetria como atributos anexados a intervalos. As respostas do agente também são incluídas nas entradas de registro correlacionadas com intervalos que contêm eventos de IA generativa. As instruções neste documento se aplicam quando o agente usa o ChatVertexAI do Langchain para chamar um modelo do Gemini.
Os aplicativos que usam um agente ReAct do LangGraph também podem coletar comandos e respostas multimodais. Este documento descreve como coletar comandos e respostas de texto. Se você quiser coletar dados multimodais, será necessário fazer mais configurações. Para mais informações, consulte Coletar e conferir comandos e respostas multimodais.
Instrumentar seu aplicativo de IA generativa para coletar telemetria
Para instrumentar seu aplicativo de IA generativa e coletar dados de registro, métrica e rastreamento, faça o seguinte:
- Instalar pacotes do OpenTelemetry
- Configurar o OpenTelemetry para coletar e enviar telemetria
- Rastrear a invocação do agente de IA generativa
Instalar pacotes do OpenTelemetry
Adicione os seguintes pacotes de instrumentação e exportação do OpenTelemetry:
uv add 'opentelemetry-instrumentation-vertexai>=2.0b0' \
'opentelemetry-instrumentation-sqlite3' \
'opentelemetry-exporter-gcp-logging' \
'opentelemetry-exporter-otlp-proto-grpc'
Os dados de registros e métricas são enviados ao seu projeto Google Cloud usando a
API Cloud Logging ou a API Cloud Monitoring. A biblioteca
opentelemetry-exporter-gcp-logging invoca
endpoints nessas APIs.
Os dados de rastreamento e métricas são enviados para Google Cloud usando a
API Telemetry (OTLP), que implementa o
protocolo de linha do OpenTelemetry.
A biblioteca opentelemetry-exporter-otlp-proto-grpc
invoca o endpoint de API de telemetria (OTLP).
Os dados de rastreamento são armazenados em um formato geralmente consistente com os arquivos proto definidos pelo protocolo de linha do OpenTelemetry. No entanto, os campos podem ser convertidos de um tipo de dados específico do OpenTelemetry para um tipo de dados JSON antes do armazenamento. Para saber mais sobre o formato de armazenamento, consulte Esquema para dados de rastreamento.
Configurar o OpenTelemetry para coletar e enviar telemetria
No código de inicialização do seu agente LangGraph, configure o OpenTelemetry para capturar e enviar telemetria ao seu projeto Google Cloud :
Para ver o exemplo completo, na barra de ferramentas dele, selecione o logotipo do GitHub.
Rastrear a invocação do agente de IA generativa
Para rastrear a execução da invocação do agente LangGraph, crie um período personalizado em torno da invocação do agente:
Para ver o exemplo completo, na barra de ferramentas dele, selecione o logotipo do GitHub.
Talvez você queira incluir o código anterior em lugares importantes do código do aplicativo.
Para saber mais sobre como adicionar intervalos e métricas personalizados, consulte Adicionar rastreamentos e métricas personalizados ao seu app.
Executar a amostra
Esta amostra é um agente do LangGraph instrumentado com o OpenTelemetry para enviar traces e registros com comandos e respostas de IA generativa, além de métricas para seu projetoGoogle Cloud .
Persona do agente do LangGraph
O agente LangGraph é definido como um especialista em SQL com acesso total a um banco de dados SQLite efêmero. O agente é implementado com o agente ReAct pré-criado do LangGraph e acessa o banco de dados, que inicialmente está vazio, usando o SQLDatabaseToolkit.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Vertex AI, Service Usage, Telemetry, Cloud Logging, Cloud Monitoring e Cloud Trace:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable aiplatform.googleapis.com
serviceusage.googleapis.com telemetry.googleapis.com logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com -
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Vertex AI, Service Usage, Telemetry, Cloud Logging, Cloud Monitoring e Cloud Trace:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable aiplatform.googleapis.com
serviceusage.googleapis.com telemetry.googleapis.com logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com -
Para receber as permissões necessárias para que o aplicativo de exemplo grave dados de registros, métricas e rastreamentos, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Gravador de traces de telemetria do Cloud (
roles/telemetry.tracesWriter) - Gravador de registros (
roles/logging.logWriter) - Gravador de métricas do Monitoring (
roles/monitoring.metricWriter) - Usuário da Vertex AI (
roles/aiplatform.user)
Essas permissões são suficientes se você executar a amostra no Cloud Shell, em recursos Google Cloud ou em um ambiente de desenvolvimento local.
- Gravador de traces de telemetria do Cloud (
Verifique se você especificou um projeto de cota. A API Vertex AI (
aiplatform.googleapis.com) exige que um projeto de cota seja especificado. Para mais informações, consulte Definir o projeto de cota. Por exemplo, o comando a seguir pode definir um projeto de cota.gcloud config set billing/quota_project PROJECT_ID
Executar amostra
Para executar a amostra:
No Cloud Shell, clone o repositório:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-samples.gitAcesse o diretório da amostra:
cd opentelemetry-samples/python/langgraph-sql-agentConfigure as variáveis de ambiente:
# Capture GenAI prompts and responses export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true # Capture application logs automatically export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true # Set the location to one that supports gemini-3.5-flash export GOOGLE_CLOUD_REGION=globalSe preferir usar um modelo diferente, edite
main.py. Verifique se o modelo é compatível com o local especificado. Para informações sobre modelos, consulte Modelos do Google.Crie um ambiente virtual e execute a amostra:
uv run main.pyO aplicativo vai mostrar uma mensagem semelhante a esta:
Starting agent using ephemeral SQLite DB.Para criar um banco de dados, insira um valor no comando Fale com o agente de SQL >> e pressione Enter.
As ações realizadas pelo agente são mostradas no Cloud Shell.
A seguir, ilustramos exemplos de interações entre um usuário e o aplicativo:
Talk to the SQL agent >> Create a new table to hold weather data. 👤 User: Create a new table to hold weather data. 🤖 Agent: Okay, I'll create a table to hold weather data. First, I need to decide on the schema for the table. I'll include columns for date, location, temperature, humidity, and precipitation. CREATE TABLE weather ( date DATE, location VARCHAR(255), temperature REAL, humidity REAL, precipitation REAL ); 🤖 Agent: I have created the weather table. 👤 User: Add altitude to the table. 🤖 Agent ALTER TABLE weather ADD COLUMN altitude REAL;Para sair, insira
Ctrl-C.
As ações realizadas por agentes de IA generativa não são deterministas. Por isso, você pode receber uma resposta diferente para o mesmo comando.
Visualizar traces, métricas e registros
Nesta seção, descrevemos como visualizar eventos de IA generativa.
Antes de começar
Para ter as permissões necessárias para visualizar seus dados de registros, métricas e rastreamentos, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Visualizador de registros (
roles/logging.viewer) - Leitor do Monitoring (
roles/monitoring.viewer) - Usuário do Cloud Trace (
roles/cloudtrace.user)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Ver telemetria
Para conferir os eventos de IA generativa, use a página Explorador de traces:
-
No console Google Cloud , acesse a página
Explorador de traces:
Acessar o Explorador de traces
Também é possível encontrar essa página usando a barra de pesquisa.
Na barra de ferramentas, selecione Adicionar filtro, Nome do intervalo e
invoke agent.A seção Executar amostra incluiu um exemplo de execução em que dois comandos são enviados ao aplicativo. A imagem a seguir ilustra a página do Trace Explorer após a filtragem dos dados:
Se você nunca usou o Cloud Trace, o Google Cloud Observability precisa criar um banco de dados para armazenar seus dados de rastreamento. A criação do banco de dados pode levar alguns minutos. Durante esse período, nenhum dado de rastreamento fica disponível para visualização.
Para analisar os dados de período e de registro, selecione um período na tabela Períodos.
A página Detalhes é aberta. Essa página mostra o rastreamento associado e seus intervalos. A tabela na página mostra informações detalhadas sobre o intervalo selecionado. Essas informações incluem o seguinte:
A guia Entradas/Saídas mostra eventos de agentes de IA generativa. Para saber mais sobre esses eventos, consulte Ver eventos da IA generativa.
A captura de tela a seguir ilustra um rastreamento em que um período tem o nome
invoke_agent. Esse intervalo invoca o Gemini. O intervalo do Gemini inclui eventos de IA generativa:
A guia Registros e eventos lista entradas de registro e eventos associados ao período. Se quiser ver os dados de registro na Análise de registros, selecione Ver registros na barra de ferramentas dessa guia.
Os dados de registro incluem a resposta do agente do LangGraph. Por exemplo, para a execução de amostra, o payload JSON inclui o seguinte conteúdo:
{ logName: "projects/my-project/logs/otel_python_inprocess_log_name_temp" jsonPayload: { message: { role: "model" content: [ 0: { text: "Okay, I'll create a table to hold weather data. First, I need to decide on the schema for the table. I'll include columns for date, location, temperature, humidity, and precipitation. CREATE TABLE weather ( date DATE, location VARCHAR(255), temperature REAL, humidity REAL, precipitation REAL ); " } ] } index: 0 } ... }
A amostra é instrumentada para enviar dados de métricas ao projeto Google Cloud , mas não gera nenhuma métrica.