3

我正在使用 OpenCensus 比较不同的跟踪后端。我已经有了使用 Zipkin 和 Azure Monitor 运行良好的简单 OpenCensus.io python 示例。

现在我正在尝试使用 GCP 的 Stackdriver 进行测试...

我已经从 Opencensus https://opencensus.io/exporters/supported-exporters/python/stackdriver/设置了测试代码, 如下所示:

#!/usr/bin/env python

import os

from opencensus.common.transports.async_ import AsyncTransport
from opencensus.ext.stackdriver.trace_exporter import StackdriverExporter
from opencensus.trace.tracer import Tracer

def main():
    sde = StackdriverExporter(
        project_id=os.environ.get("GCP_PROJECT_ID"),
        transport=AsyncTransport)

    tracer = Tracer(exporter=sde)
    with tracer.span(name="doingWork") as span:
        for i in range(10):
            pass

if __name__ == "__main__":
    main()

我已经为GCP_PROJECT_ID设置了环境变量,并且还在GOOGLE_APPLICATION_CREDENTIALS中设置了我的服务帐户 JSON 文件的密钥文件路径。

服务帐户具有“云跟踪代理”角色。

我的代码运行无误,但在 GCP 控制台的跟踪信息或监控仪表板中看不到任何信息。

我错过了什么吗?

环境说明:我正在使用 Python 3.7.2 在本地 Windows 机器上进行测试

4

2 回答 2

1

文档中不太清楚的一件事是,默认情况下,对跟踪进行采样(请参阅此处的源文件),因此每次调用都会正确记录,但仅存储 1e-4 跟踪。它有助于降低成本,但它是调试过程中的主要痛点。

如果要记录所有跟踪,可以使用AlwaysOnSampler并将其传递给跟踪器:

import os

from opencensus.common.transports.async_ import AsyncTransport
from opencensus.ext.stackdriver.trace_exporter import StackdriverExporter
from opencensus.trace.tracer import Tracer
from opencensus.trace.samplers import AlwaysOnSampler

def main():
    sde = StackdriverExporter(
        project_id=os.environ.get("GCP_PROJECT_ID"),
        transport=AsyncTransport)

    tracer = Tracer(exporter=sde, sampler=AlwaysOnSampler())
    with tracer.span(name="doingWork") as span:
        for i in range(10):
            pass

if __name__ == "__main__":
    main()

希望它能解决您的问题!

于 2022-01-24T09:13:36.430 回答
1

按照此处提到的步骤,我能够在 GCP 中(在项目的一个实例中)设置 OpenCensus 。

为了快速设置,这里是我在一个全新的 Ubuntu 实例中运行的命令

sudo apt-get install python3
sudo apt install python3-pip
wget https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/opencensus/requirements.txt
pip3 install -r requirements.txt
wget https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/opencensus/metrics_quickstart.py
python3 metrics_quickstart.py
于 2020-07-06T12:42:41.463 回答