问题标签 [google-cloud-trace]

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 回答
60 浏览

google-cloud-trace - 使用 REST api 创建不同的颜色范围

我看过一些跟踪截图,其中不同的跨度有不同的颜色(https://rakyll.org/grpc-trace/)。

我尝试使用 v2 rest api 跟踪我的代码,并且所有生成的跨度都是统一的蓝色阴影。

这些颜色是如何确定的?我在 v2 rest api 中没有看到明确的颜色属性。颜色是从其他属性推断出来的吗?它是被放弃的旧功能吗?

0 投票
0 回答
89 浏览

google-cloud-trace - 在 UI 中查看 stackTrace?

当我尝试将 stackTrace 添加到我的跨度时,我得到以下结果:

  1. 将 stackTrace 添加到父 span 会导致 UI 中出现空的“Callstack”部分(父 stackTrace
  2. 将 stackTrace 添加到子跨度会导致 UI 中出现“/stackTrace”属性。属性值是一个非常难以阅读的未格式化的 json 转储(子 stackTrace

这是错误调用 API 的结果,还是我应该从这个功能中得到的结果?

0 投票
1 回答
76 浏览

google-cloud-trace - 如何让谷歌跟踪直观地指示有错误的跨度

向谷歌跟踪报告的一些跨度表示以错误结束的方法调用。有没有办法让谷歌跟踪以视觉方式将这些跨度与成功跨度分开(不同的颜色,类似于 AWS xray 的错误图标......)?

我尝试设置这些属性,但在视觉上它们没有区别:

  • 跨度状态
  • /错误/消息属性
  • /error/name 属性
  • /http/status_code 属性
0 投票
1 回答
467 浏览

node.js - 谷歌云跟踪自定义跟踪只工作几次

我已经使用 nodejs & express 激活了 Google Cloud Tracer,在自动模式下运行良好,正确注册了对 api 的调用。

我尝试手动创建跟踪,以了解中间步骤的执行时间。

但 Google Cloud Trace 仅列出 1 或 2 个调用,而自动生成的调用显示数千个 API 调用。

我还阅读了文档以尝试获取 express.js 中间件的上下文,但我没有找到获取上下文的方法。

来自:谷歌云跟踪

每当收到传入请求时,都会自动启动根跨度(换句话说,所有中间件都已在根跨度内运行)。

更新基于@kjin评论:

在快递的控制器内你只需要

tracer.createChildSpan({name: 'name'})

0 投票
0 回答
61 浏览

google-cloud-trace - 允许的最大 span.status.message 大小是多少?

在尝试使用 v2 batchWrite API 时,我能够写入长达 5KB 的状态消息。谷歌是否强制执行最大值?其他所有跟踪字段似乎都非常严格地限制为 128B/256B。

0 投票
0 回答
328 浏览

node.js - 跟踪代理不接收 pubsub 订阅消息

我们正在尝试跨多个 node.js 微服务设置跟踪。

服务获得了 http 端点和 pubsub 集成。所有服务都通过 pubsub 相互通信。

Trace-agent 正确获取 http 请求和所有其他跟踪(即 mysql 和 pubsub.publish)。

但是,当服务在 pubsub 订阅上收到消息时,trace-agent 什么也看不到。

其他跟踪(mysql 和 pubsub.publishing)在第一次通过 pubsub.subscription 发出请求时也不会被拾取。

我们正在使用正在侦听消息的请求订阅: subscription.on('message', processMessage);

如何启用 trace-agent 来获取那些通过 pubsub 订阅进行的跟踪?

更新 1: 启用日志以包含调试消息,start({ logLevel: 4 }); 发现有很多跟踪消息,但未附加到根跨度:'Creating phantom child span because there is no root span.'

0 投票
1 回答
54 浏览

google-cloud-platform - 安装和使用 google cloud trace api 客户端版本 1 for python

我正在尝试编写一个脚本来提取 Stackdriver Trace 信息以加载到大查询中,但我在安装 python 客户端库时遇到了问题。我需要版本 1 的库来访问数据,但是当我安装 google-cloud-trace 时,它​​默认为版本 2。

https://googleapis.github.io/google-cloud-python/latest/trace/index.html上的说明建议我应该安装一个名为 gapic-google-cloud-trace-v1 的包,但这似乎没有存在。

有没有办法通过客户端访问版本1,是否有另一个包或者我应该放弃并直接使用http?

0 投票
1 回答
809 浏览

java - 如何使用 Stackdriver Trace 在 App Engine Standard 中创建自定义 Span?

我尝试将自定义跨度和注释添加到 AppEngine 标准应用程序。在 GCP 控制台的 Traces 页面中,我看到了默认跨度,但没有看到我添加的自定义跨度。

我遵循文档:https : //cloud.google.com/trace/docs/setup/java 我使用最新版本的 opencensus-api 0.23.0

Stackdrive Trace API 已启用,我在 API 的指标页面中看到应用程序成功google.devtools.cloudtrace.v2.TraceService.BatchWriteSpans调用。

我基于重现此问题的官方helloworld应用程序创建了一个示例应用程序。

有趣的部分:

你可以在这里看到完整的代码


我发现了我的错误。这是我打开问题时看到的: 跟踪列表 问题是选择了服务和版本。

这些自定义跨度看起来像一个单独的请求,我需要选择所有服务,否则它们会被隐藏。 子跨度

所以至少我可以看到这在某种程度上是有效的,但这不是我想要的。我想实现这样的目标:组合跟踪

如何将我的自定义跨度附加到为请求显示的根跨度?

0 投票
2 回答
743 浏览

c# - 来自文件的 C# Stackdriver Trace 凭据

我使用带有 C#(dotnet 核心)的 Google Cloud Stackdriver Trace API 并根据本文工作。

我已经添加了所有需要的代码并想在本地尝试(在我的开发机器上)。由于我不是从 GCP 云运行,因此我创建了一个具有所需权限的新服务帐户。谷歌在文章中说:

GCP 客户端库使用应用程序默认凭据 (ADC) 来查找应用程序的凭据。您可以通过设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量来提供这些凭据:

现在我的代码在达到这一点时失败了:

随着消息:

System.InvalidOperationException:'从位置 C:******.json 读取凭据文件时出错:找不到文件。请检查环境变量 GOOGLE_APPLICATION_CREDENTIALS' 的值

由于许多原因,我不想使用名为GOOGLE_APPLICATION_CREDENTIALS. 相反,我正在寻找一种方法来为其提供实际文件路径,而不使用环境变量。

我该怎么做?

0 投票
1 回答
300 浏览

go - 如何通过端到端的微服务链跟踪请求?

我在 Go 中使用 OpenCensus 将跟踪数据推送到 Stackdriver 以进行涉及 2 个或更多微服务链的调用,我注意到我得到了许多跟踪,其中包含仅针对某些服务的跨度,而不是整个端到端调用。

目前,我将此归因于并非所有调用都被跟踪(仅某个样本)并且每个服务都决定是否跟踪其当前跨度这一事实。

这是它的工作方式吗?有什么方法可以确保在对跟踪进行采样时,调用链中的所有服务都会这样做?