首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenTracing+Jaeger语言不可知论

OpenTracing+Jaeger语言不可知论
EN

Stack Overflow用户
提问于 2019-07-31 03:43:01
回答 1查看 91关注 0票数 0

我有三个服务A、B和C,它们的通信方式如下

代码语言:javascript
复制
       HTTP       HTTP
   A +------> B +------> C
nodejs      nodejs      java

我正在使用OpenTracing和Jaeger进行分布式跟踪。问题是这些服务使用不同的语言,但我仍然试图传播A是父span的信息,以便生成树看起来像这样。

代码语言:javascript
复制
A +----------------+
B +-------+
C         +--------+

现在,A、B和C被报告为没有因果关系的单独痕迹。我见过的所有示例都涉及在相同语言和相同项目构建中的不同微服务之间传播因果关系。没有一个涉及完全独立的服务。

EN

回答 1

Stack Overflow用户

发布于 2019-08-01 00:41:54

您的单个微服务是用哪种语言编写的并不重要,您应该在相同的跟踪中看到它们。假设您看到的是三个轨迹,而不是具有三个跨度的一个轨迹,则上下文传播似乎不起作用。在您的nodejs服务中检查您的HTTP客户端,它们应该执行"inject" operation。然后,您的服务"B“和"C”应该执行“提取”操作。

如果您还没有,请查看Yuri Shkuro's OpenTracing Tutorial。第3课是关于上下文传播的,包括插入和提取操作。

我不太确定它在NodeJS世界中是如何工作的,但在Java语言中,在类路径中拥有opentracing-contrib/java-web-servlet-filter仪表库就足够了,因为它将在正确的钩子中注册必要的部分,并使跟踪上下文可用于每个传入的HTTP请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57278976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档