问题标签 [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.
google-cloud-stackdriver - 如何获取跟踪的调用次数
我添加了跟踪以测量在 GCP 上运行的某些代码的执行情况。跟踪出现在 StackDriver 页面的跟踪列表中,我可以看到它们的持续时间。我找不到的是发出到达跟踪的次数。这个数字出现在哪里?
google-cloud-platform - 在适用于 Express.js 的 Google Cloud Tracer 代理中查找未跟踪时间
我将 Google Cloud 的Stackdriver Trace Agent与 Express.js 插件一起使用。
我注意到有一些路线有大量的“未追踪”时间。我可以使用什么策略来查找并开始测量这些未跟踪的路径,为什么它不会拾取某些代码路径?
python - Stackdriver Strace 使用 python 为一个请求嵌入跟踪
我正在使用 Stackdriver Trace 监控一些微服务的延迟,但是在将所有往返行程显示为一个请求时遇到了一些问题。
假设我有两个服务(为了简单起见)。为了从它们中获取跟踪,我需要在这两个服务中安装客户端库。现在在我做的第一个服务中说:
在我的第二次服务中,我会:
第二个服务对数据库进行查询,对结果进行 gts,然后将它们发送到第一个服务,该服务显示内容。
现在,当然我必须开始计算两个微服务的延迟,因为我想知道从第一个服务到第二个服务需要多长时间。而且我还必须开始计算第二个服务,因为我想知道从数据库中检索内容需要多长时间。
但是当我在 GCP 控制台上获得跟踪时,我看到了这个:
第一个跟踪来自数据库,第二个跟踪都是(从第一个服务到第二个 + 数据库)。
我想知道如何将第二个跟踪嵌入到 python 的第一个跟踪中。我一直在检查opencensus
python 的文档,我发现了这个:
类 opencensus.trace.span.Span(name, parent_span=None,...)
跨度是形成跟踪树节点的单个定时事件。每个跨度都有其名称、跨度 ID 和父 ID。父 id 指示单个分布式跟踪中各个跨度之间的因果关系。没有父 ID 的 Span 称为根 Span。与特定跟踪关联的所有跨度也共享一个公共跟踪 ID。跨度不需要是连续的,两个跨度之间可以有间隙。
所以,我想,我必须将span_id
第一个请求的请求连同请求一起发送到第二个微服务?这里还有一个问题,这似乎需要用这些参数初始化跟踪器,但是我在第二个微服务上的跟踪器已经初始化了。发送请求时我无法初始化它,因为它已经无法正确计算延迟。
我需要问这个,因为要进行测试,我必须创建图像,将其上传到 docker hub,然后在 k8s 上进行测试。在这里盲目地做太多的工作。
Stackdriver 跟踪的 Python 客户端库处于 alpha 阶段,因此在 GCP 站点上也没有太多关于此的文档。
编辑
由于没有响应,我实际上尝试传递span_context
信息,即:
...初始化时到第二个微服务,但它不起作用。当它开始计算第二个微服务上的跟踪时,它会自动生成新的trace_id
并span_id
忽略span_context
第一个微服务。在这一点上,我没有想法。
编辑2
我想要的是整个跟踪(微服务 1 -> 微服务 2 -> 数据库)出现在同一跟踪下,具有不同的跨度。与此类似的东西:
stackdriver - Spring-Cloud-Gateway 创建的初始 Trace 都命名为“/”,无论路径如何
我已将 sleuth 集成到我的应用程序网关及其背后的服务中。Stackdriver (GKE) 中的跟踪看起来不错,但根跨度始终命名为“/”。例如:
第二个跨度也是由网关创建的,并且具有更好的名称。
如何在我的网关服务中配置 sleuth 以使用不同的命名或修复导致两个跨度的任何原因?
编辑1:
我使用 spring-gateway、sleuth 和 gcp 创建了一个最小项目,并编写了一个 LoggingReporter 来打印所有报告的跨度,同时让 GCP 自动配置工作。
StackdriverHttpClientParser
名称跨度基于请求 uri。第二个跨度由 TraceWebFilter 基于具有完整 uri 的请求创建。第一个跨度是由HttpClientBeanPostProcessor
基于 uri "/" 创建的。
我认为这不是 gcp 问题。这可能是spring-gateway的问题。有趣的是,首先创建了 TraceWebFilter 跨度,但 PostProcessor 仍然是父级。
EDIT2:我在 spring sleuth https://github.com/spring-cloud/spring-cloud-sleuth/issues/1535中创建了一个问题
java - Cloud Run 上的 Cloud Trace 有什么限制吗?
我正在使用 Java 在 Cloud Run 上构建微服务。所以,我想为这些服务使用 CloudTrace。但它并没有像我预期的那样工作。ADeadlineExceededException
被提升。
我可以在本地 PC 上运行相同的服务。而在那个时候,它是没有问题的。我可以在 CloudTrace 上确认跟踪。但是当我将它们部署在 Cloud Run 上时,Tracing 不起作用……你知道吗?
代码如下。我使用 OpenCensus 库。
错误如下。
我尝试了可扩展服务代理。有用。但我想将跟踪作为应用程序的一部分。
java - 在 Google Cloud Trace 中添加详细的请求信息
我正在构建一个部署在 Google App Engine 上的 Spring Boot 应用程序。为了找出一些奇怪的延迟问题的原因,我想我应该启用 Google Cloud Trace 来查看详细的延迟报告。
添加基本跟踪非常简单,因为 GAE 本身就支持这一点。但是,我很难为任何单独的跟踪添加细节。
例如; 以下代码:
我认为在 Cloud Trace UI 中,这将显示一条单独的小延迟线,以便我可以看到总请求时间的哪一部分用于数据库通信。但是,我看不到此类信息:
我已经确保通过在它周围添加一些日志条目来调用这个确切的方法。所有日志条目(甚至是try
块内的条目)都显示在我的日志中。
我通过将以下内容添加到我的中,将采样率设置为 100% application.yml
:spring.sleuth.sampler.probability: 1.0
基本上,我希望在 Cloud Trace UI 上看到的是主要请求下方的第二个栏。像这样:
这在 Cloud Trace 中是否可行?我希望它会是因为图表太高了,在我看来,它似乎有空间容纳额外的条形图。如果是,我做错了什么?
谢谢。
python - 谷歌云跟踪 + Gcloud 登录日志查看器
我一直在使用谷歌云 kubernetes 遇到谷歌云日志记录和谷歌云跟踪问题
我有使用 gcloud pubsub 主题的应用程序,我想统一日志以跟踪每个 pubsub 消息句柄 func 调用
我的 Gcloud 日志记录处理程序代码
我使用与 gcloud 跟踪和日志记录的 opensensus 集成,因此我可以获取 traceId 和 spanId 并将其传递到 gcloud 日志传输,它工作正常,并且日志查看器中的 LogEntry 包含正确的 traceId 和 spanId
我使用 gcloud trace 的代码看起来像
所以,我可以在 Logs Viewer 中查看这些日志,但它们不会在一个跟踪中找到,但是如果我使用 gcloud trace viewer 并通过 traceId 搜索,我会找到这个带有连接日志的跟踪。问:有什么方法可以在日志查看器中显示跟踪,因为它在任何 appengine 服务中显示为 appengine.googleapis.com/Frequest_log?
spring-boot - Google Cloud Trace 不使用 Sleuth 关联来自 Spring Boot 应用程序的日志
我最近将我的应用程序升级到 Spring Boot 2.4.2、Cloud 2020.0.0,按照迁移指南更改 Spring Cloud GCP 依赖项:https ://googlecloudplatform.github.io/spring-cloud-gcp/2.0.0/reference /html/index.html#migration-guide-from-spring-cloud-gcp-1-x-to-2-x
关于应用程序,一切似乎都运行良好。我可以看到传播 trace-id 标头的微服务之间的调用:
网关:
服务1:
在 Google Cloud Trace 控制台中,我可以看到跟踪 ID 0bc6b9664e6604e2
(
但是请注意消息“找不到此跟踪的日志”。
此外,跟踪日志查看链接投诉:
如果我打开链接,它只是按时间戳查看,而不是使用相关跟踪 ID。
有趣的是,如果我直接在 GCP Logging 视图中查找日志语句,跟踪 id 就在那里:
然后我可以运行 GCP Logging 查询以正确查找所有日志:
显然一切似乎都很好。您能说出为什么 GCP Trace 无法与 GCP Logging 相关联吗?
node.js - 如何像跟踪 HTTP 请求一样跟踪 gcp pubsub?
我有多个用 nodejs 编写的应用程序。
我正在尝试使用google-trace监控应用程序。我能够成功获取 HTTP 请求的跟踪。但是我有一些应用程序正在从 pubsub 订阅中提取事件,所以这超出了 HTTP 请求响应。我还有一些由 firestore 集合触发的云功能,即使这些执行没有被跟踪。
google-trace 包不会自动跟踪 pubsub 的东西。它在这里说。
我想要做的是以这种方式在我的 pubsub-subscription-worker 中添加一个自定义跨度
是否可以使用 google-trace 跟踪 pubsub 事件?如果是,我错过了什么?
如果没有,是否可以通过任何其他监控/APM 来做到这一点?