En este documento, se proporciona una breve descripción general sobre cómo instrumentar tu aplicación para Cloud Trace. Para obtener instrucciones detalladas sobre cómo configurar Cloud Trace, consulta las páginas de configuración específicas del lenguaje.
Cloud Trace proporciona datos de seguimiento distribuido para tus aplicaciones. Después de instrumentar tu aplicación, puedes inspeccionar los datos de latencia de una sola solicitud y ver la latencia total de una aplicación completa en la consola de Cloud Trace.
Cuándo instrumentar tu aplicación
Cuando los datos de seguimiento para validar el rendimiento o solucionar problemas no se capturan automáticamente, instrumenta tu aplicación.
Instrumenta tu aplicación para recopilar información específica que te ayude a comprender su rendimiento y solucionar fallas. Varios frameworks de instrumentación de código abierto recopilan datos de registro, métricas y seguimiento y pueden enviar esos datos a cualquier proveedor, incluido Google Cloud. Para tus aplicaciones de agentes, algunos frameworks pueden recopilar tus instrucciones y respuestas o pasar el contexto que permite el seguimiento de algunas llamadas remotas al servidor MCP de Google Cloud.
Para instrumentar tu aplicación, te recomendamos que uses un framework de instrumentación con proveedor neutro y que sea de código abierto, como OpenTelemetry, en lugar de las API específicas de proveedor y producto. o bibliotecas cliente. Para obtener información sobre estos frameworks, consulta Instrumentación y observabilidad y Elige un enfoque de instrumentación.
Cómo instrumentar aplicaciones
Existen varios enfoques que puedes usar para instrumentar tu aplicación:
Recomendado: Usa OpenTelemetry, configura tu aplicación con un exportador de OTLP que envíe datos de seguimiento a un recopilador y configura el recopilador para enviar datos de seguimiento a tu Google Cloud proyecto con la API de Telemetry (OTLP). Para obtener más información sobre nuestras recomendaciones, consulta Elige un enfoque de instrumentación.
Usa OpenTelemetry y configura tu aplicación con un exportador de OTLP que envíe tus datos de seguimiento a tu Google Cloud proyecto con la API de Telemetry.
Si escribes aplicaciones que se ejecutan en Compute Engine, puedes usar el Agente de operaciones y el receptor del protocolo OpenTelemetry (OTLP) para recopilar seguimientos y métricas de tu aplicación. El Agente de operaciones también puede recopilar registros, pero no con OTLP. Para obtener más información, consulta Usa el Agente de operaciones y OTLP y Descripción general del Agente de operaciones.
Invoca directamente la API de Telemetry o la API de Cloud Trace.
Usa las bibliotecas cliente de Cloud Trace o el exportador de Cloud Trace para OpenTelemetry.
Para las aplicaciones de Spring Boot, configúralas para que reenvíen los datos de seguimiento que recopilan a Cloud Trace. Para obtener información sobre este procedimiento, consulta Spring Cloud para Google Cloud: Cloud Trace.
Las muestras de instrumentación que proporcionamos usan OpenTelemetry:
Para obtener muestras que usan una exportación basada en recopiladores, consulta lo siguiente:
Estas muestras envían datos de seguimiento a la API de Telemetry.
Para obtener información sobre cómo usar una exportación directa de datos de seguimiento y enviar esos datos a la API de Telemetry, consulta Migra del exportador de Trace al extremo de OTLP.
Para obtener muestras que te muestran cómo configurar una aplicación de agente para recopilar instrucciones y respuestas, consulta Cómo instrumentar tus aplicaciones de IA generativa.
Para saber qué servidores MCP remotos de Google Cloud admiten la generación de seguimientos y cómo configurar tu aplicación para indicarle a estos servidores que creen intervalos, consulta Investiga las llamadas a MCP con Trace.
Cuándo crear intervalos
Las bibliotecas cliente de Cloud Trace suelen mantener un contexto de seguimiento global que contiene información sobre el intervalo actual, incluido su ID de seguimiento y si se muestrea el seguimiento. Por lo general, estas bibliotecas crean intervalos en los límites de RPC. Sin embargo, es posible que debas crear intervalos si el algoritmo de creación predeterminado no es suficiente para tus necesidades.
Se puede acceder al intervalo activo actual mediante el contexto de seguimiento global, que a veces se incluye en un objeto Tracer. Puedes agregar información relevante para tu aplicación con anotaciones y etiquetas personalizadas a los intervalos existentes, o bien puedes crear intervalos secundarios nuevos con sus propias anotaciones y etiquetas para hacer un seguimiento del comportamiento de la aplicación con mayor detalle. Debido a que el contexto es global, las aplicaciones de subprocesos múltiples que actualizan el contexto deben usar el aislamiento adecuado.
Cuándo proporcionar credenciales de autenticación
Por lo general, no necesitas proporcionar credenciales de autenticación a tu aplicación ni especificar tu Google Cloud ID del proyecto en tu aplicación cuando ejecutas en Google Cloud. Para algunos lenguajes, debes especificar tu Google Cloud ID del proyecto incluso si estás ejecutando en Google Cloud. Además, si usas el modo Autopilot para Google Kubernetes Engine o si habilitas la federación de Workload Identity para GKE, debes configurar tu aplicación para que use la federación de Workload Identity para GKE.
Si lo ejecutas fuera de Google Cloud, debes proporcionar credenciales de autenticación para tu aplicación. También debes especificar tu Google Cloud ID del proyecto en tu aplicación.
Para obtener más detalles, ve a las páginas de configuración específicas del lenguaje.
Cómo forzar el seguimiento de una solicitud
A menos que tu aplicación siempre muestree cada intervalo,
no es posible, en general, forzar el seguimiento de una solicitud de extremo a extremo
ya que cada componente de una solicitud de extremo a extremo toma su propia
decisión de muestreo. Sin embargo, puedes influir en la
decisión si agregas una marca sampled al encabezado de seguimiento,
con esta marca establecida en true. Este parámetro de configuración es una sugerencia para que los componentes secundarios muestreen la solicitud.
Para obtener más información sobre los encabezados de seguimiento, consulta
Protocolos para la propagación del contexto.
Para los componentes descendentes cuyo código es de tu propiedad, debes determinar si tu lógica de instrumentación respeta la marca sampled.
Por ejemplo, cuando usas OpenTelemetry
para la instrumentación, puedes usar el muestreador ParentBased
para asegurarte de que se respete la marca de muestreo superior.
Google Cloud Los servicios que registran información de seguimiento en Cloud Trace suelen aceptar la marca de muestreo superior como una sugerencia; sin embargo, la mayoría de los servicios también limitan la frecuencia de muestreo. Cada Google Cloud servicio determina si admite el seguimiento, cómo se utiliza la marca de muestreo superior y el límite de frecuencia en el muestreo.
Cómo correlacionar datos de métricas y seguimientos
Puedes correlacionar los datos de métricas con valores de distribución con seguimientos si adjuntas ejemplares a los puntos de datos de métricas. Siempre que completes los pasos de configuración necesarios, OpenTelemetry, que es la biblioteca de instrumentación recomendada, agrega automáticamente estos ejemplares. Para obtener más información, consulta Correlaciona métricas y seguimientos con ejemplares.
Configura tu proyecto y plataforma
Asegúrate de que la API de Cloud Trace esté habilitada.
De forma predeterminada, Google Cloud los proyectos tienen habilitada la API de Cloud Trace y no es necesario realizar ninguna acción. Sin embargo, es posible que las restricciones de seguridad definidas por tu organización hayan inhabilitado la API. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno restringido Google Cloud .
Habilita la API de Cloud Trace.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.Configura tu plataforma.
Puedes usar Cloud Trace en Google Cloud y otras plataformas.
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 Google Cloud plataforma tenga habilitado el permiso de acceso a la API de Cloud Trace habilitado.
Para las siguientes opciones de configuración, la configuración predeterminada del permiso de acceso incluye el permiso de acceso a la API de Cloud Trace:
Si usas niveles de acceso personalizados, debes asegurarte de que el nivel de acceso a la API de Cloud Trace esté habilitado. Por ejemplo, si usas Google Cloud CLI para crear un clúster de GKE y especificas la marca
--scopes, asegúrate de que el alcance incluyatrace.append. En el siguiente comando, se muestra cómo configurar la marca--scopes:gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append
Ejecución 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. Se debe otorgar a la cuenta de servicio el rol de agente de Cloud Trace (
roles/cloudtrace.agent). Para obtener información sobre los roles, consulta Controla el acceso con IAM.Google Cloud Las bibliotecas cliente usan las credenciales predeterminadas de la aplicación (ADC) para encontrar las credenciales de tu aplicación. Puedes proporcionar estas credenciales de una de estas tres maneras:
Ejecuta
gcloud auth application-default login.Coloca la cuenta de servicio en una ruta de acceso predeterminada para tu sistema operativo. A continuación, se enumeran las rutas de acceso predeterminadas para Windows y Linux:
Windows:
%APPDATA%/gcloud/application_default_credentials.jsonLinux:
$HOME/.config/gcloud/application_default_credentials.json
Establece la variable de entorno
GOOGLE_APPLICATION_CREDENTIALSen la ruta de acceso a tu cuenta de servicio: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"
¿Qué sigue?
Si deseas obtener información de configuración detallada, muestras y vínculos a GitHub y a otros repositorios de código abierto, ve a la página de configuración para tu idioma.
Ejemplos de OpenTelemetry: