Como configurar o Cloud Trace para Python

É possível ativar o Cloud Trace para aplicativos Python usando o OpenCensus. O OpenCensus é um conjunto de bibliotecas de instrumentação para coletar dados de trace e métrica que funcionam com vários back-ends. Para ver os detalhes mais recentes sobre o OpenCensus para Python, além de documentação e exemplos adicionais, acesse census-instrumentation/opencensus-python.

Instalação e configuração

Instale os pacotes do OpenCensus usando pip:

pip install opencensus
pip install opencensus-ext-stackdriver

Atualize o aplicativo para importar o exportador do Stackdriver e os pacotes do tracer do OpenCensus. Seu aplicativo também precisa instanciar objetos StackdriverExporter e 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

Para mais informações sobre o exportador, consulte Rastreamento do OpenCensus.

Se você estiver executando na infraestrutura do Google Cloud, não será necessário definir project_id como o código do projeto do Google Cloud. Se você não definir esse campo, a biblioteca de cliente para Python coletará automaticamente esses dados de um servidor de metadados do Google Cloud.

Se você não estiver executando na infraestrutura do Google Cloud, forneça o ID do projeto do Google Cloud ao aplicativo.

Independentemente da sua infraestrutura, quando você não define explicitamente o ID do projeto do Google Cloud, a biblioteca Python google-cloud, invocada pelo OpenCensus, determina automaticamente se a variável de ambiente GOOGLE_CLOUD_PROJECT está definida e, em caso afirmativo, a biblioteca usa o valor de GOOGLE_CLOUD_PROJECT como o ID do projeto do Google Cloud. Para mais informações sobre autenticação ao usar bibliotecas de cliente, consulte Autenticação. Para informações gerais, consulte Primeiros passos com a autenticação.

Para definir a variável de ambiente , realize as seguintes ações:

Linux ou macOS

export GOOGLE_CLOUD_PROJECT=your-project-id

Windows

set GOOGLE_CLOUD_PROJECT=your-project-id

PowerShell:

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

Otimização de desempenho

Para reduzir o impacto no desempenho dos dados de trace de relatórios, envie esses dados por um processo em segundo plano. Para configurar relatórios em segundo plano de dados de trace, inclua transport=AsyncTransport ao inicializar o StackdriverExporter.

Como configurar sua plataforma

Você pode usar o Cloud Trace no Google Cloud e em outras plataformas.

Como executar no Google Cloud

Quando seu aplicativo está em execução no Google Cloud, não é necessário fornecer credenciais de autenticação na forma de uma conta de serviço para a biblioteca de cliente. No entanto, verifique se o escopo de acesso da API Cloud Trace está ativado no Google Cloud Platform.

Para as seguintes configurações, as definições de escopo de acesso padrão ativam a API Cloud Trace:

  • Ambiente flexível do App Engine
  • Ambiente padrão do App Engine

  • Google Kubernetes Engine (GKE)

  • Compute Engine

Se você usar escopos de acesso personalizados, verifique se o escopo de acesso da API Cloud Trace está ativado. Para usuários do gcloud, especifique os escopos de acesso usando a sinalização --scopes e inclua o escopo de acesso da API Cloud Trace trace.append. Por exemplo, para criar um cluster do GKE com apenas a API Cloud Trace ativada, faça o seguinte:

gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append

Execução local e em outro lugar

Se o aplicativo estiver em execução fora do Google Cloud, forneça as credenciais de autenticação na forma de uma conta de serviço para a biblioteca de cliente. A conta de serviço precisa conter o papel de agente do Cloud Trace. Para instruções, consulte Como criar uma conta de serviço.

As bibliotecas de cliente do Google Cloud usam o Application Default Credentials (ADC) para encontrar as credenciais do aplicativo. Forneça essas credenciais definindo a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS:

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"

Exemplo de aplicativo Flask

Para ver um aplicativo Python de amostra que utiliza o Flask, consulte o Guia de início rápido do Trace.

Para detalhes sobre como o aplicativo foi projetado para capturar dados do Trace, consulte Instrumentação.

Como visualizar os traces

Após a implantação, é possível ver os traces no Visualizador de traces do Console do Cloud.

Acesse a página do visualizador do Trace

Resolver problemas

Para informações sobre como solucionar problemas com o Cloud Trace, acesse a página de solução de problemas.

Recursos