Como configurar o Stackdriver Trace para Python

O suporte Python do Trace é fornecido pelo OpenCensus, um conjunto de bibliotecas de instrumentação de métricas de aplicação e rastreamento que trabalham com vários back-ends. Veja os detalhes mais recentes sobre o OpenCensus para Python, além de documentação e exemplos adicionais na página do GitHub.

Instalação e configuração

Para coletar traces, é necessário importar o exportador do Stackdriver e os pacotes do rastreador do OpenCensus. Seu aplicativo também precisa instanciar um exportador do Stackdriver e um rastreador.

O exportador do Stackdriver usa o Application Default Credentials para autenticação. É possível omitir o código do projeto se ele for executado no Google Cloud Platform (GCP):

from opencensus.trace.exporters import 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)

    return tracer

Como executar no Google Cloud Platform

Não será preciso fornecer credenciais de autenticação para instâncias em execução no Google Cloud Platform se o escopo de acesso da API Stackdriver Trace estiver ativado nessa instância. No entanto, recomendamos configurar o escopo de acesso mais amplo possível para sua instância e, em seguida, usar o Cloud Identity e o Access Management para restringir o acesso.

Ambiente flexível do App Engine

No ambiente flexível do App Engine, o escopo de acesso da API Stackdriver Trace é ativado por padrão. Além disso, a biblioteca de cliente OpenCensus pode ser usada sem a necessidade de fornecer credenciais ou um código de projeto.

Ambiente padrão do App Engine

No ambiente padrão do App Engine, o escopo de acesso da API Stackdriver Trace é ativado por padrão. Além disso, e a biblioteca de cliente do OpenCensus pode ser usada sem fornecer credenciais ou um código de projeto.

Google Kubernetes Engine

Para usar o Trace no GKE, adicione o escopo de acesso do OAuth trace.append ao criar um cluster.

Para criar um cluster usando o gcloud, faça o seguinte:

  1. Atualize o gcloud para a versão mais recente:
    gcloud components update
  2. Defina o código do projeto padrão:
    gcloud config set project [PROJECT_ID]
  3. Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
    gcloud config set compute/zone [COMPUTE_ZONE]
  4. Se você estiver trabalhando com clusters regionais, defina a zona de computação padrão:
    gcloud config set compute/region [COMPUTE_REGION]
  5. Execute o comando "create":
    gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/trace.append

Para informações mais detalhadas sobre como criar um cluster, consulte Como criar um cluster.

Compute Engine

Para as instâncias do Compute Engine, é preciso ativar explicitamente o escopo de acesso trace.append da API Stackdriver Trace para cada instância de VM. Ao criar uma nova instância por meio do Console do Google Cloud Platform, selecione os seguintes valores na seção Identidade e acesso à API do painel Criar uma instância:

  1. Selecione a Conta de serviço padrão do Compute Engine como a Conta de serviço
  2. Selecione Permitir acesso completo a todas as APIs do Cloud em Escopos de acesso.

Para usar algo diferente da conta de serviço padrão do Compute Engine, consulte as seções Como criar e ativar contas de serviços para instâncias e Como executar localmente e em outro local. O importante é que a conta de serviço que você usa tenha o papel de agente do Cloud Trace.

Como executar localmente e em outro local

Para executar o Stackdriver Trace fora do GCP, é necessário fornecer seu código de projeto do GCP e credenciais da conta de serviço apropriadas diretamente para a biblioteca de cliente do OpenCensus. Sua conta de serviço precisa conter o papel de agente do Cloud Trace. Para mais instruções, consulte Como criar uma conta de serviço.

Código do projeto

Forneça um código de projeto para o OpenCensus, conforme mostrado em Instalação e configuração. Recomendamos que você defina a variável de ambiente GOOGLE_CLOUD_PROJECT como seu código de projeto e modifique seu aplicativo para ler essa variável. 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"

Credenciais

As bibliotecas de cliente do GCP usam o Application Default Credentials (ADC) para localizar as credenciais do seu aplicativo. Você fornece credenciais à biblioteca de cliente do OpenCensus ao definir 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"

Aplicativo do Trace de amostra para Python

@app.route('/index.html', methods=['GET'])
def index():
    tracer = app.config['TRACER']
    tracer.start_span(name='index')

    # Add up to 1 sec delay, weighted toward zero
    time.sleep(random.random() ** 2)
    result = "Tracing requests"

    tracer.end_span()
    return result

Como visualizar os traces

Após a implantação, você pode consultar os traces no visualizador de traces do console do GCP.

Acessar a página do visualizador de traces

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.