当前位置: 首页 > 知识库问答 >
问题:

Spring cloud sleuth 2.x自定义跟踪id

侯和惬
2023-03-14

我目前正在使用spring cloud sleuth依赖项进行spring webflux项目。

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
        <version>2.2.8.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <version>2.5.1</version>
    </dependency>

我正在开发一组API,这些API可以获得包含3个字符串的请求负载。我想连接这3个字符串作为我的自定义跟踪id。我还想达到以下要求。

  1. 这个自定义跟踪id应该能够添加到每个日志中。(我们通过在log4j.xml文件中添加%X{traceId}以打印所有日志中的traceId来获取日志中的sleuth跟踪id)

注意,spring sleuth已经完成了上述3件事。我想为跟踪id设置自定义值。有人能为我的用例提供帮助或建议吗

共有1个答案

孙昂然
2023-03-14

Spring Boot 2.5. x与Spring Cloud Hoxton(Sleuth 2.2. x)不兼容。您需要使用Spring Cloud 2020.0. x又名Ilford(Sleuth 3.0. x)。

您可以设置spring.sleuth.propagation。键入到自定义并实现您自己的传播和传播。工厂,请参阅文档:如何更改上下文传播机制?。

这应该有助于你实现上面的目标,但是也有一些缺点。这主要是我的意见,请随意忽略它,做你想做的任何事情:

  • B3、W3C和AWS传播类型是支持其他项目/工具的标准
  • 您正在尝试创建一个没有任何东西(但可能由内部系统)支持的第4个“标准”
  • 您需要为每个新组件添加对这种自定义传播类型的支持,以便他们也理解这个“标准”
  • 有时值得考虑迁移到通用标准而不是使用自定义标准,即使它背后有一个遗留系统
 类似资料:
  • 我正在使用侦探2.0.x,我想添加我自己的跟踪ID,除了它自己的。 我正在浏览给定的链接 https://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.0.0.RC2/single/spring-cloud-sleuth.html#_propagation 我想修改跟踪如下代码:-公共静态最终字符串TAG _ NAME = "

  • 我对以更详细的方式记录跟踪信息感兴趣。对于每个日志语句,我都希望以JSON格式发出zipkin跟踪--非常接近于这里描述的内容:https://zipkin.io/pages/data_model.html 在《侦探》中完成这一点的最佳方法是什么?

  • 我是codiva的开发者。io是面向学生的java ide。我正在使用codemirror编辑器。我想跟踪编辑(特别是上次编辑后的暂停或超时)。我以前使用过谷歌分析,对于事件,我们将使用。现在我正在使用Google标签管理器,对于点击和其他事件,我们似乎可以使用标签管理器ui本身进行配置。使用tag manager,我无法找到如何对此实施跟踪。 Codemirror生成一个on Change事件。

  • 我原以为这是一件简单的事情,但我不太确定该如何去做这件事。

  • 我使用的是JBossAS7。我已经知道如何使用自己的错误页处理HTTP错误(例如404、500、...)--这不是问题。但出于调试的原因,我需要查看错误stacktrace。如何访问默认显示的消息并将其嵌入到错误页面中?

  • 所以我有一个问题,实现一个自定义跟踪代码,拉在订单信息。 这是我到目前为止在functions.php文件中得到的,虽然当我购买时,它实际上没有显示任何信息。 当我尝试使用此代码拉订单数据时: 我得到以下错误: 致命错误:未捕获错误:在/home/feratino/www/REMOVED/wp content/themes/REMOVED/functions.php:28堆栈跟踪:0/home/f