【问题标题】:Make Zipkin (or any open-tracing framework) work with existing "trace id"使 Zipkin(或任何开放式跟踪框架)与现有的“跟踪 id”一起工作
【发布时间】:2021-03-24 09:03:03
【问题描述】:

一点背景:

我们有大约 10 个 Spring Boot 微服务,它们通过 kafka 相互通信。每个微服务的日志都会发送到 Kibana,如果出现错误,我们必须对 Kibana 日志进行筛选。

好消息是:在任何流程开始时,我们的一个微服务都会生成一个消息 ID,并将其作为消息传输的一部分传播给所有其他微服务(其中通过 kafka 发生),因此我们可以在日志中搜索 message-id,我们可以看到该流在我们所有微服务中的足迹。

不好的部分:必须筛选大量的日志才能大致了解发生故障的位置和原因。

现在的问题:

所以我想知道我们是否可以实现一些分布式跟踪,也许通过 Zipkin(或其他一些开放跟踪框架)可以使用我们的生态系统已经产生的消息 ID,而不是生成一个新的?

感谢您的宝贵时间:)

【问题讨论】:

    标签: spring-boot microservices zipkin opentracing distributed-tracing


    【解决方案1】:

    我不完全确定这是否是您的意思,但您可以使用 Jeager https://www.jaegertracing.io/ 检查调用元数据中是否已存在跟踪 ID,并在其中生成子跟踪 ID。根据所有跟踪 id 生成调用图

    【讨论】:

    • 您能否详细说明一些链接或示例,以进一步说明如何在 jaegar 中执行此操作?我对此完全陌生
    • 几周前,我创建了共享库,它为 jeager github.com/oncors/microservices-utils/tree/master/trace-util 构建 trace-id,您可以在本地构建此库并将其注入您的依赖项,然后按照 README.md 进行操作;)
    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2019-12-02
    • 2023-03-27
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多