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.

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 uma lista de ambientes do Google Cloud compatíveis, consulte Suporte ao ambiente.

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

  • Cloud Run

Se você usar escopos de acesso personalizados, verifique se o escopo de acesso da API Cloud Trace está ativado:

  • Para informações sobre como configurar os escopos de acesso para o ambiente usando o Console do Google Cloud, consulte Como configurar o projeto do Google Cloud.

  • Para usuários gcloud, especifique os escopos de acesso usando a sinalização --scopes e inclua o escopo de acesso trace.append da API Cloud Trace. 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 instrumentado 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

Solução de problemas

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

Recursos