问题标签 [opencensus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
639 浏览

stackdriver - OpenCensus 未在 Stack Driver 中的 Google App Engine 上显示跟踪

我正在使用 Google Cloud 推荐的 OpenCensus 来运行 StackDriver Trace ( https://cloud.google.com/trace/docs/setup/java )。我的配置在 Google App Engine Standard Java 8 上运行。我确保在项目中启用了 API,使用了初始化代码并创建了我试图跟踪的 span。

我只是用

然后用

看起来很简单,但在 Google Cloud Trace 控制台中看不到我的自定义跟踪,只有 Google 跟踪的默认 RPC 调用。然后我尝试使用 Scopes 而不是 Span,使用和不使用项目名称来初始化 StackdriverTraceExporter,但没有任何结果导致创建自定义跟踪。

任何关于在哪里查看的指导或建议将不胜感激,因为这是我第一次使用 OpenCensus。

0 投票
1 回答
157 浏览

python - opencensus 出口商 - 一个全局或每个线程?

我正在使用 Opencensus 在有 10 个工作人员的 grpc 服务器上进行一些监控。我的问题是,在制作 Tracer 时,tracer 的导出器应该是本地的还是全局的。IE

这是服务器:

服务器 = grpc.server(futures.ThreadPoolExecutor(max_workers=10))

我是否这样做:

tracer_module.Tracer(sampler=always_on.AlwaysOnSampler(), exporter=GLOBAL_EXPORTER) 其中: GLOBAL_EXPORTER = stackdriver_exporter.StackdriverExporter(transport=BackgroundThreadTransport)) 或者我做: tracer_module.Tracer(sampler=always_on.AlwaysOnSampler(), exporter=stackdriver_exporter。 StackdriverExporter(transport=BackgroundThreadTransport)))

我都试过了,它们都有效。前者将使用一个更有效的全局导出器(我认为),但聚合似乎有点奇怪(一个调用与另一个调用“聚合”)。另一方面,第二种方式产生了第二个出口商(这是短暂的,因为它只存在于该调用中)并且似乎正确出口。从系统的角度来看,问题更多的是什么更正确。第二个选项的 IE 是否创建 stackdriver_exporter.StackdriverExporter(transport=BackgroundThreadTransport) 使不同的导出器(在不同的线程中创建)无效?

0 投票
1 回答
699 浏览

trace - opencensus - 显式上下文管理

我正在我的(异步)JVM 应用程序中实现开放人口普查跟踪。

但是我不明白上下文是如何传递的。有时它似乎工作正常,有时来自不同请求的跟踪无缘无故地出现嵌套。

我在日志中也出现了这个警告以及堆栈跟踪: SEVERE: Context was not attached when detaching

如何显式创建根跨度,以及如何将父/上下文显式传递给子跨度?

0 投票
1 回答
51 浏览

python - opencensus stats python stackdriver exporter可以在python 2 app engine标准环境下使用吗?

在文档中,它说要安装云客户端库(pip install google-cloud-monitoring)。但是,云客户端库在应用引擎上的 python2 标准环境中不可用,此处描述

要使用 stackdriver 导出器,您是否必须使用 beta python 3 运行时?

0 投票
1 回答
550 浏览

django - Google Kubernetes Engine 上的 Django、Apache2 将 Opencensus Traces 写入 Stackdriver Trace

我有一个从 Apache2 提供的 Django Web 应用程序,其中 mod_wsgi 在 docker 容器中运行,该容器在 Google Cloud Platform 的 Kubernetes 集群上运行,受 Identity-Aware Proxy 保护。一切都很好,但我想为所有请求发送 GCP Stackdriver 跟踪,而不是为我的项目中的每个视图编写一个。我使用 Opencensus 找到了处理这个问题的中间件。我浏览了这个文档StackdriverExporter,并且能够通过指定并将project_id参数作为我的项目的谷歌云平台传递来手动生成导出到我的项目中的 Stackdriver Trace 的跟踪Project Number

现在为了让所有请求都自动完成,我按照说明设置了中间件。在 settings.py 中,我将模块添加到INSTALLED_APPS, MIDDLEWARE,并设置了OPENCENSUS_TRACE选项字典。我还添加了OPENCENSUS_TRACE_PARAMS. 这适用于默认导出器“opencensus.trace.exporters.print_exporter.PrintExporter”,因为我可以在我的 Apache2 Web 服务器日志中看到 Trace 和 Span 信息,包括 Trace ID 和所有详细信息。但是,我想将这些发送到我的 Stackdriver Trace 处理器进行分析。

我尝试将EXPORTER参数设置为opencensus.trace.exporters.stackdriver_exporter.StackdriverExporter,只要您提供项目编号,该参数在从 shell 手动运行时有效。

设置成使用StackdriverExporter时,网页不会响应加载,健康检查开始失败,最终网页返回502错误,说我应该在30秒后重试(我相信Identity-Aware一旦检测到健康检查失败,代理就会产生这个错误),但服务器没有产生错误,并且没有访问日志或 Apache2 错误。

在 settings.py 中有另一个名为 的字典OPENCENSUS_TRACE_PARAMS,我认为需要它来确定导出器应该使用哪个项目编号。该示例已GCP_EXPORTER_PROJECT设置为None,并SERVICE_NAME设置为'my_service'

我需要设置哪些选项才能让导出器发送回 Stackdriver 而不是打印到日志?你知道我该如何设置吗?

设置.py

这是 Apache2 日志设置为使用时的示例(我美化了格式以提高可读性)PrintExporter

提前感谢您提供任何提示、帮助或故障排除建议!

编辑 2019-02-08 下午 6:56 UTC:

我在中间件中找到了这个:

导出器现在命名为StackdriverExporter,而不是GoogleCloudExporter。我在我的应用程序中设置了一个名为GoogleCloudExporterinherits的类StackdriverExporter,并更新了我的 settings.py 以使用GoogleCloudExporter,但它似乎不起作用,我想知道是否还有其他代码引用这些旧命名方案,可能用于传输。我正在搜索源代码中的线索......这至少告诉我我可以摆脱 ZIPKIN 和 JAEGER 参数选项,因为这是在EXPORTER参数上确定的。

编辑 2019-02-08 晚上 11:58 UTC:

我放弃了 Apache2 来隔离问题,只是将我的 docker 映像设置为使用 Django 的内置网络服务器CMD ["python", "/path/to/manage.py", "runserver", "0.0.0.0:80"],它就可以工作了!当我访问该站点时,它会为每个请求将跟踪写入 Stackdriver Trace,Span 名称是正在执行的模块和方法。

不知何故 Apache2 不允许发送这些,但我可以在以 root 身份运行时从 shell 发送这些。我在问题中添加了 Apache2 和 mod-wsgi 标签,因为我有一种有趣的感觉,这与 Apache2 和 mod-WSGI 中的子进程分叉有关。由于 apache2 的子进程是沙盒的,因此无法创建子进程,或者这可能是权限问题?这似乎很奇怪,因为我知道它只是调用 python 模块,没有外部系统操作系统二进制文件。任何其他想法将不胜感激!

0 投票
1 回答
50 浏览

google-cloud-stackdriver - 无法为 Stackdriver Trace 填充方法等

我是新手Stackdriver Trace。如果有人能指出我正确的方向,我不确定我做错了什么。我真的很感激。基本上我无法填充方法等Request

这是我在仪表板视图中看到的。

在此处输入图像描述

我可以看到我的midleware罐头记录。

0 投票
0 回答
1637 浏览

grpc - gRPC Stackdriver 问题

我试图通过 opencensus 记录调用堆栈信息。我已在 google 帐户中启用权限。我正在使用默认凭据方法。已为相应帐号启用 Stackdriver Trace API。和的权限monitoring.viewer也被授予。尽管如此,我们在推送日志时仍面临来自客户端的以下错误。monitoring.editorcloudtrace

0 投票
1 回答
447 浏览

python - 尝试从 `opencensus.ext.stackdriver` 安装和导入 `stats_exporter` 时的故障排除

我尝试使用以下指南安装和使用stats_exporteropencensus.ext.stackdriveropencensus -ext-stackdriver

通过 pip 安装后:

pip install opencensus-ext-stackdriver

我正在尝试导入它并且:

在比较 Git repo 和我的本地venv/lib/python3.7/site-packages/... 时,似乎 pip 版本与 Github 不兼容,所以我尝试通过克隆安装它,并使用setup.py

这给了我以下错误:

这种类型的类似错误表明我需要升级setuptools,也尝试过:(

这篇文章表明它可能与我正在使用 python3 的事实有关,version尽管我确实需要在我的 python3 venv 上安装这个包,但它是不可完成的。

关于这个问题的任何帮助都会很棒!

0 投票
0 回答
149 浏览

php - 如何在 PHP 上使用 PECL 安装 OpenCensus 扩展

按照说明(此处:https ://github.com/census-instrumentation/opencensus-php )我无法使用 PECL 安装 PHP 的 OpenCensus 扩展。

我尝试安装其他 PECL 扩展,效果很好。

我也尝试过通过 VPN 执行此操作。

我尝试的安装步骤是:


  1. 使用 composer 安装 opencensus/opencensus 包:
  1. 从 PECL 安装 opencensus 扩展:

我得到的错误是:

没有可用于软件包“pecl.php.net/opencensus”的版本安装失败”

另见:https ://prnt.sc/nnt5er

0 投票
1 回答
221 浏览

java - 追踪二代java应用引擎

我正在尝试将一些自定义跟踪和 Firestore 跟踪添加到第二代应用程序引擎 java 应用程序中。

开箱即用,我已经可以看到我的 WebServlet 被调用并调用了我的云控制台中的任务客户端库。

但是添加新的痕迹是行不通的,而且我也没有看到关于 firestore 的痕迹。

我尝试根据googleopencencus文档添加新的痕迹

当我注册时StackdriverTraceExporter.createAndRegister(),我收到一条错误消息,告诉我它已经配置。这是有道理的,因为我已经看到了码头 HttpServlet 的踪迹。但我找不到自己的踪迹。

此外,当我检查firestore 客户端库源时,它也按预期添加了跟踪,但它们没有出现在云控制台中。

任何人都知道我错过了什么或在哪里获得帮助?