Esta página está diseñada para desarrolladores de aplicaciones que deseen recopilar datos de Cloud Trace para aplicaciones de Go mediante OpenTelemetry. OpenTelemetry es un framework de instrumentación independiente del proveedor que puedes usar para recopilar datos de seguimiento y de métricas. Para obtener información sobre cómo instrumentar tu código, consulta Instrumentación y observabilidad.
- Instala los paquetes de OpenTelemetry.
- Configura la aplicación para exportar intervalos a Cloud Trace.
- Configura tu plataforma.
Para obtener información de la versión, consulta lo siguiente:
Para obtener contenido de referencia de OpenTelemetry, consulta lo siguiente:
Si deseas obtener los detalles más recientes sobre OpenTelemetry para Go, junto con documentación y ejemplos adicionales, consulta OpenTelemetry.
Antes de comenzar
-
En el panel de navegación de la consola de Google Cloud, selecciona APIs y servicios, haz clic en Habilitar APIs y servicios y, luego, habilita la API de Cloud Trace:
Si aparece API habilitada, la API ya está habilitada. De lo contrario, haz clic en el botón Habilitar.
Instala, inicializa y usa el cliente
Consulta las siguientes instrucciones a fin de instrumentar tus aplicaciones de Go en Compute Engine y Google Kubernetes Engine. Para ver un ejemplo general del uso de OpenTelemetry, consulta el repositorio de OpenTelemetry en GitHub para Go.
Compute Engine
Instala el paquete de OpenTelemetry:
go get go.opentelemetry.io/otel
go get github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace
Importa los paquetes de exportación de OpenTelemetry y Cloud Trace:
Crea el exportador y el proveedor de seguimiento:
Cuando creas el exportador, proporcionas información sobre tu identificador de proyecto de Google Cloud. En este ejemplo, el identificador se almacena en la variable de entorno GOOGLE_CLOUD_PROJECT
.
La aplicación de ejemplo llama a la función WithBatcher
para configurar el proveedor de seguimiento y enviar intervalos a Cloud Monitoring con un proceso en segundo plano.
El ejemplo también está configurado para llamar a la función Shutdown
del exportador cuando se cierra la aplicación. Cuando se ejecuta Shutdown
, envía todos los intervalos pendientes a Cloud Monitoring. La configuración que se muestra en la muestra es la implementación recomendada para todos los entornos operativos, incluso para Cloud Run, en el que los contenedores se pueden cerrar en cualquier momento.
Cuando creas la instancia Tracer
, le proporcionas un nombre.
En el ejemplo, el nombre es example.com/trace
. Te recomendamos que asignes un nombre a estas instancias según el componente del que se hace un seguimiento, ya que esta estrategia te permite tener varias instancias.
Cuando se ejecuta el ejemplo, se crea un solo seguimiento llamado foo
.
GKE
Agrega lo siguiente a tu Dockerfile
:
RUN go get go.opentelemetry.io/otel
RUN go get github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace
Importa los paquetes de exportación de OpenTelemetry y Cloud Trace:
Crea el exportador y el proveedor de seguimiento:
Cuando creas el exportador, proporcionas información sobre tu identificador de proyecto de Google Cloud. En este ejemplo, el identificador se almacena en la variable de entorno GOOGLE_CLOUD_PROJECT
.
La aplicación de ejemplo llama a la función WithBatcher
para configurar el proveedor de seguimiento y enviar intervalos a Cloud Monitoring con un proceso en segundo plano.
El ejemplo también está configurado para llamar a la función Shutdown
del exportador cuando se cierra la aplicación. Cuando se ejecuta Shutdown
, envía todos los intervalos pendientes a Cloud Monitoring. La configuración que se muestra en la muestra es la implementación recomendada para todos los entornos operativos, incluso para Cloud Run, en el que los contenedores se pueden cerrar en cualquier momento.
Cuando creas la instancia Tracer
, le proporcionas un nombre.
En el ejemplo, el nombre es example.com/trace
. Te recomendamos que asignes un nombre a estas instancias según el componente del que se hace un seguimiento, ya que esta estrategia te permite tener varias instancias.
Cuando se ejecuta el ejemplo, se crea un solo seguimiento llamado foo
.
Cómo crear un intervalo personalizado
Puedes agregar información adicional al seguimiento creado por el sistema si creas un intervalo personalizado.
Para crear un intervalo personalizado con el nombre foo
, agrega lo siguiente al código fuente:
Aquí, example.com/trace
hace referencia al nombre de la instancia del rastreador.
Cómo configurar tu plataforma
Puedes usar Cloud Trace en Google Cloud y otras plataformas.
Ejecuta en 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 plataforma de Google Cloud tenga habilitado el permiso de acceso a la API de Cloud Trace.
Para obtener una lista de los entornos de Google Cloud compatibles, consulta Compatibilidad de 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 quieres obtener información para configurar los permisos de acceso de tu entorno mediante 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--scopes
y, 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 la función de agente de Cloud Trace. Para obtener más instrucciones, consulta Cómo crear una cuenta de servicio.
Las bibliotecas cliente de Google Cloud 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:
Ejecución
gcloud auth application-default login
Coloca la cuenta de servicio en una ruta 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.json
Linux:
$HOME/.config/gcloud/application_default_credentials.json
Establece la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
como la ruta 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 el panel de navegación de la consola de Google Cloud, selecciona Trace y, luego, Explorador de seguimiento:
Ve al Explorador de seguimiento
Soluciona problemas
Para obtener información sobre cómo solucionar problemas con Cloud Trace, ve a la página de solución de problemas.