Puedes instrumentar una aplicación de C++ con OpenTelemetry y configurar el exportador deGoogle Cloud C++ OpenTelemetry para enviar intervalos de seguimiento a Cloud Trace en tu proyecto de Google Cloud . Puedes usar una configuración de registro básica, configurar la tasa de muestreo del registro o usar un objeto TracerProvider personalizado. Para obtener información general sobre la instrumentación de aplicaciones, consulta Instrumentación y observabilidad.
Antes de comenzar
Habilita la API de Cloud Trace si aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.
Instala los paquetes de OpenTelemetry
- Configura un entorno de desarrollo de C++.
- Instala la biblioteca del exportador de OpenTelemetry de Google Cloud C++. Para obtener información sobre la instalación, consulta la guía de inicio rápido de OpenTelemetry.
Configura la exportación de intervalos a Cloud Trace
Para configurar la exportación de datos de seguimiento, llama a la función google::cloud::otel::ConfigureBasicTracing(...) en tu función main():
El campo project_id es el proyecto Google Cloud en el que deseas almacenar los registros.
La función ConfigureBasicTracing(...) crea una instancia de un objeto TracerProvider que implementa un exportador de Cloud Trace. Si el objeto que devuelve la llamada a ConfigureBasicTracing(...) queda fuera del alcance, se restablece el objeto TracerProvider anterior, si existe.
Configura la frecuencia de muestreo
Las aplicaciones pueden generar un gran volumen de datos de seguimiento. En el siguiente ejemplo, se ilustra cómo configurar la frecuencia de muestreo:
Exporta a Cloud Trace con un TracerProvider personalizado
Es posible que tengas casos de uso que requieran un objeto TracerProvider personalizado. Por ejemplo, si deseas usar varios exportadores al mismo tiempo, debes crear un objeto TracerProvider personalizado. En estos casos, puedes usar el exportador de Cloud Trace directamente:
Instrumenta tu propia aplicación
Para 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 lo siguiente:
- Crear un intervalo
- Crear intervalos anidados
- Establecer atributos de intervalo
- Crear intervalos con eventos
- Crear intervalos con vínculos
Aplicación de ejemplo
Para ver una aplicación de ejemplo, consulta la guía de inicio rápido.
Configura tu plataforma
Puedes usar Cloud Trace en Google Cloud y otras plataformas.
Se ejecuta en Google Cloud
Cuando tu aplicación se ejecuta en Google Cloud, no es necesario que proporciones credenciales de autenticación en forma de una cuenta de servicio a la biblioteca cliente. Sin embargo, debes asegurarte de que tu Google Cloud plataforma tenga habilitado el alcance de acceso a la API de Cloud Trace.
Para obtener una lista de los entornos Google Cloud compatibles, consulta Compatibilidad con 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 para configurar los permisos de acceso para tu entorno con la consola de Google Cloud , consulta Configura tu proyecto de Google Cloud .
Para los usuarios de
gcloud, especifica los niveles de acceso con la marca--scopesy, también, incluye el permiso de acceso a la API de Cloud Tracetrace.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 el rol de agente de Cloud Trace. Para obtener instrucciones, consulta Crea una cuenta de servicio.
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 tres maneras:
Ejecuta
gcloud auth application-default loginColoca la cuenta de servicio en una ruta de acceso predeterminada para tu sistema operativo. A continuación, se enumeran las rutas predeterminadas para Windows y Linux:
Windows:
%APPDATA%/gcloud/application_default_credentials.jsonLinux:
$HOME/.config/gcloud/application_default_credentials.json
Configura 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"
Ver seguimientos
En la consola de Google Cloud , ve a la página
Explorador de seguimiento:
Ve al Explorador de seguimiento
También puedes usar la barra de búsqueda para encontrar esta página.
Soluciona problemas
Para obtener información sobre cómo solucionar problemas con Cloud Trace, ve a la página de solución de problemas.
Para depurar el exportador de Cloud Trace de C++, consulta la sección Solución de problemas de la documentación de referencia.
Recursos
Para obtener los detalles más recientes sobre OpenTelemetry para C++, junto con documentación y ejemplos adicionales, consulta OpenTelemetry.
Para obtener información sobre la versión, consulta lo siguiente:
- Versión más reciente de la biblioteca para C++
- Versión más reciente del exportador de Cloud Trace para C++
Para obtener contenido de referencia de OpenTelemetry, consulta lo siguiente:
En el caso de los repositorios de GitHub, consulta lo siguiente: