Configura Cloud Trace para Python

Puedes habilitar Cloud Trace para aplicaciones de Python con OpenCensus. OpenCensus es un conjunto de bibliotecas de instrumentación para recopilar datos de seguimiento y de métricas que funcionan con varios backends. Para conocer los detalles más recientes sobre OpenCensus para Python, además de la documentación y ejemplos adicionales, dirígete a census-instrumentation/opencensus-python.

Instalación y configuración

Instala los paquetes de OpenCensus con pip:

pip install opencensus
pip install opencensus-ext-stackdriver

Actualiza tu aplicación para importar los paquetes de seguimiento de OpenExport y Stackdriver. Tu aplicación también debe crear una instancia de objetos StackdriverExporter y Tracer:

from opencensus.ext.stackdriver import trace_exporter as stackdriver_exporter
import opencensus.trace.tracer

def initialize_tracer(project_id):
    exporter = stackdriver_exporter.StackdriverExporter(
        project_id=project_id
    )
    tracer = opencensus.trace.tracer.Tracer(
        exporter=exporter,
        sampler=opencensus.trace.tracer.samplers.AlwaysOnSampler()
    )

    return tracer

Si deseas obtener más información sobre el exportador, consulta Seguimiento de OpenCensus.

Si ejecutas en la infraestructura de Google Cloud, no necesitas establecer project_id en tu ID del proyecto de Google Cloud. Si no configuras este campo, la biblioteca cliente para Python recopila de forma automática estos datos desde un servidor de metadatos de Google Cloud.

Si no ejecutas en la infraestructura de Google Cloud, debes proporcionar el ID del proyecto de Google Cloud a tu aplicación.

Sin importar tu infraestructura, cuando no configuras de manera explícita el ID del proyecto de Google Cloud, la biblioteca google-cloud de Python, que invoca OpenCensus, determina automáticamente si se configuró la variable de entorno GOOGLE_CLOUD_PROJECT y, de ser así, la biblioteca usa el valor de GOOGLE_CLOUD_PROJECT como tu ID del proyecto de Google Cloud. Para obtener más información sobre la autenticación cuando se usan bibliotecas cliente, consulta Autenticación. Para obtener información general, consulta Cómo comenzar a usar la autenticación.

Para configurar la variable de entorno, sigue estos pasos:

Linux o macOS

export GOOGLE_CLOUD_PROJECT=your-project-id

Windows

set GOOGLE_CLOUD_PROJECT=your-project-id

PowerShell:

$env:GOOGLE_CLOUD_PROJECT="your-project-id"

Optimización del rendimiento

Para reducir el impacto en el rendimiento de los datos de seguimiento de informes, hazlos enviar mediante un proceso en segundo plano. Para configurar los informes en segundo plano de los datos de seguimiento, incluye transport=AsyncTransport cuando inicialices StackdriverExporter.

Configura 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:

  • Para obtener información sobre cómo configurar los permisos de acceso para tu entorno con Google Cloud Console, consulta Configura el 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 Trace trace.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 tres maneras:

  • Ejecuta 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 en 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"

Aplicación de muestra de Flask

Para ver una aplicación de Python de muestra que utiliza Flask, consulta la Guía de inicio rápido de Trace.

Para obtener más detalles sobre cómo se instrumentó la aplicación para capturar datos de Trace, consulta Instrumentación.

Cómo ver los seguimientos

Después de la implementación, puedes ver los seguimientos en el lector de seguimiento de la consola.

Ir a la página del Lector de seguimiento

Solución de problemas

Para obtener información sobre cómo solucionar problemas con Cloud Trace, ve a la página de solución de problemas.

Recursos