问题标签 [distributed-tracing]
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.
java - TraceId 在 Java 中的分布式跟踪中未与 url 一起传递
您好,我实现了分布式跟踪spring-cloud-sleuth-core
,spring-cloud-gcp-starter-trace
我们已经在 Google Kubernetes Engine (GKE) 集群中部署了我们的应用程序。它工作正常,我按预期在日志中获得了 traceId,并且 traceId 也导出到了 GCP Trace Api。但问题是,我们希望 traceId 应该与 url 一起传递。虽然看到 Stackdriver 日志记录,但 traceId 仅存在于信息/错误日志中,但我们希望它与 Url 一起使用。
我该怎么办?
spring - 使用 zipkin 时未为子调用捕获 URL 路径
我正在为微服务应用程序实现分布式跟踪。在 zipkin UI 中,我无法获取子 URL 路径。
对于父调用,整个 URL 被捕获,如“post/cart/create”。但是对于孩子来说,只有“get”和“post”。不显示子呼叫的完整 URL。如何解决这个问题?需要帮忙。
Zipkin_spans 表中的数据如上图所示。
我的呼叫服务代码:
我正在使用的依赖项是
- spring-cloud-starter-sleuth
- spring-cloud-sleuth-zipkin
这个问题似乎不一致。有时它显示整个 URL,有时不显示。经过多次测试,我才知道这一点。我什至用 spring- cloud- starter - zipkin 进行了测试。但它也没有显示出任何有希望的结果。
因此,如果需要整个 URL,那么我根本不应该使用 zipkin 吗?建议使用 spring 的微服务的任何其他跟踪机制。
elasticsearch - 每个请求都在 kibana 中打印重复的消息
我正在使用 Elastic、filebeat 和 kibana 来跟踪我的应用程序的旅程,在我给出的 filebeat 输入中,如下所示来获取我的所有应用程序日志,因为我使用的是微服务架构,所以我有 10 多个日志文件
并且所有日志文件都存储在一个工作节点中,即使在所有工作节点中配置了 filebeat,我也给出了我的应用程序日志存储在一个工作节点中的确切路径,
并且在滚动文件附加程序概念的帮助下,我将输入作为文件中的 json,我还添加了一些自定义字段来使用 ThreadContext 映射我的消息。
我正在 kibana 中接收消息,但正在打印重复的消息,我观察到,对于我在我的应用程序中提出的每个请求,新消息也始终提供相同的 previuos 结果。
附上图像我是如何接收图像的,我不明白是因为我使用的自定义字段还是文件节拍或弹性搜索的问题。
需要帮助
maven - 找不到工件 com.wavefront:wavefront-spring-boot-bom:pom:2.1.1-SNAPSHOT
我正在使用spring-cloud-sleuth-otel-autoconfigure
依赖项进行分布式跟踪。在mvn clean install -X
实际错误消息是Could not find artifact com.wavefront:wavefront-spring-boot-bom:pom:2.1.1-SNAPSHOT in xxxxSnapshots
我正在使用settings.xml
.m2 文件夹中的文件时出现错误。
我试图排除这些wavefront-spring-boot-bom
依赖。但我无法看到mvn dependency:tree
构建失败的 bcs。这是回购链接.. https://repo.grails.org/grails/core/org/springframework/cloud/spring-cloud-sleuth-otel-dependencies/1.0.0-M7/
这正是我添加的.
我该如何解决这个问题?
micronaut - 后端中断一段时间后,未恢复使用 micronaut 的跟踪
我正在将 micronaut 用于应用程序并将跟踪导出到 jaeger 后端。仅当应用程序出现时 jaeger 可用时,跟踪导出才有效。说如果 jaeger 是在 app 之后启动的,或者说如果 jaeger 被重新启动,则不导出痕迹
这是预期的还是要在 micronaut 中进行的任何特定配置。我按照文档中的说明进行操作
go - 通过队列发送哨兵追踪
有两个用 Go 编写的服务。第一个将一些事件写入兔子队列,第二个从这个队列中读取并对消息进行一些处理。
我想跟踪哨兵中每条消息的生命周期。在第一次服务方面,这是基本的。但是我如何通过队列传递跨度?
如果您使用开放式跟踪解决相同的问题,那么一切都很简单:
但是我不明白在使用哨兵的情况下如何创建在第二个服务中继承的对象
micronaut - 后台进程的Open tracking spans如何包含在微服务的main span中
我们在 Micronaut 的微服务架构中使用分布式应用程序。我有服务 A,它公开一个 URL,在调用该 URL 时将请求的有效负载存储在队列中(服务 B)在后台,线程将被分拆,每个线程将在队列上轮询获取有效负载并执行一些操作。我目前能够跟踪直到有效载荷被推送到同一 traceId(Ex:TRACEID_1) 中的队列。也为后台流程添加了跟踪,我可以在不同的跟踪(TRACE_ID2)中看到后台进程的所有跨度。在 jeager 中,当我点击服务时,我可以看到 2 个不同的跟踪(TRACE_ID1,TRACE_ID2)有没有一种方法可以在同一跟踪中包含后台处理的跟踪,以便我可以看到为整个流程调用的整个端到端跨度同一 Trace (TRACE_1) 中的每个请求
java - 如何将多个 OpenTelemetry 跟踪合并为一个原始跟踪?
下面是我们的 SpringBoot 微服务如何与远程区块链应用程序通信的粗略草图,该应用程序根据发送给它的请求触发事件。区块链可以为单个请求生成多个事件,这会触发在自动检测事件侦听服务“ C ”上生成多个跟踪
请建议我们如何将接收端的这些多条跟踪与流程开始时生成的原始跟踪结合起来。关于我们的服务的几点可能会更清楚:
- 在流程开始时,我们会生成一个唯一的 msg-id,用于关联日志,它会流经所有微服务。
- 也许我们在服务“ B ”中序列化上下文,就在到达区块链之前,然后当服务“ C ”接收到来自区块链的事件时,我们使用 msg-id 从 DB/File 获取相关的跨度上下文并创建一个子跨出那个?这会“统一”这些痕迹吗?
node.js - 使用 OpenTelemetry,我们如何将跟踪详细信息自动注入到用 Nodejs / Go 编写的应用程序日志中
在 python 中,有一个选项可以使用环境变量(export OTEL_PYTHON_LOG_CORRELATION=true)将跟踪详细信息(traacid,spanid)注入应用程序日志。Nodejs 或 Go 中是否有类似的东西。我在 Go 中找不到任何用于跟踪的自动仪器(我们可以通过为处理程序创建跨度和包装器来手动检测)。所以我不期待 Go 语言的答案,但可能 Node 可能有一个解决方案