设置 Python 版 Cloud Trace

您可以使用 OpenCensus 为 Python 应用启用 Cloud Trace。OpenCensus 是一组用于收集兼容多个后端的跟踪记录数据和指标数据的插桩库。有关适用于 Python 的 OpenCensus 的最新详细信息以及其他文档和示例,请参阅 census-instrumentation/opencensus-python

安装和配置

使用 pip 安装 OpenCensus 软件包:

pip install opencensus
pip install opencensus-ext-stackdriver

更新您的应用以导入 Stackdriver 导出器和 OpenCensus 跟踪器的软件包。您的应用还必须实例化 StackdriverExporterTracer 对象:

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

如需详细了解导出器,请参阅 OpenCensus 跟踪记录

如果您是在 Google Cloud 基础架构上运行,则无需将 project_id 设置为您的 Google Cloud 项目 ID。如果您未设置此字段,则 Python 版客户端库会自动从 Google Cloud 元数据服务器收集此数据。

如果您未在 Google Cloud 基础架构上运行,则必须向应用提供 Google Cloud 项目 ID。

无论您的基础架构是什么,当您未明确设置 Google Cloud 项目 ID 时,OpenCensus 调用的 google-cloud Python 库都会自动确定是否设置了环境变量 GOOGLE_CLOUD_PROJECT;如果已设置,则该库会将 GOOGLE_CLOUD_PROJECT 的值用作您的 Google Cloud 项目 ID。如需详细了解使用客户端库时的身份验证,请参阅身份验证。有关一般信息,请参阅身份验证使用入门

如需设置此环境变量,请执行以下操作:

Linux 或 macOS

export GOOGLE_CLOUD_PROJECT=your-project-id

Windows

set GOOGLE_CLOUD_PROJECT=your-project-id

PowerShell:

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

性能优化

为了降低报告跟踪记录数据对性能的影响,请在后台进程中发送此数据。如需配置跟踪记录数据的后台报告,请在初始化 StackdriverExporter 时添加 transport=AsyncTransport

配置您的平台

您可以在 Google Cloud 和其他平台上使用 Cloud Trace。

在 Google Cloud 上运行

当您的应用在 Google Cloud 上运行时,您无需向客户端库提供服务帐号形式的身份验证凭据。但是,您需要确保 Google Cloud Platform 已启用 Cloud Trace API 访问权限范围

对于以下配置,默认的访问权限范围设置会启用 Cloud Trace API:

  • App Engine 柔性环境
  • App Engine 标准环境

  • Google Kubernetes Engine (GKE)

  • Compute Engine

如果您使用自定义访问权限范围,则必须确保已启用 Cloud Trace API 访问权限范围。对于 gcloud 用户,请使用 --scopes 标志指定访问权限范围,并添加 trace.append Cloud Trace API 访问权限范围。例如,如需创建仅启用了 Cloud Trace API 的 GKE 集群,请执行以下操作:

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

在本地和其他位置运行

如果您的应用在 Google Cloud 之外运行,则必须向客户端库提供服务帐号形式的身份验证凭据。该服务帐号必须包含 Cloud Trace Agent 角色。如需查看说明,请参阅创建服务帐号

Google Cloud 客户端库会使用应用默认凭据 (ADC) 查找应用的凭据。您可以通过设置 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"

示例 Flask 应用

如需查看使用 Flask 的示例 Python 应用,请参阅 Trace 快速入门

如需详细了解如何对应用进行插桩处理以捕获 Trace 数据,请参阅插桩

查看跟踪记录

部署后,您可以在 Cloud Console 跟踪记录查看器中查看跟踪记录。

转到“跟踪记录查看器”页面

问题排查

如需了解如何排查 Cloud Trace 的问题,请转到“问题排查”页面

资源