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

添加自定义“带有字母数字值的跟踪id并在应用程序日志中显示”

归俊
2023-03-14

我正在使用Sleuth 2.1.3。我想添加一个自定义“跟踪ID”作为带有字母数字值的“相关ID”,并想在带有spanid和父ID的日志中吐出。如果我使用下面的实现创建新的自定义跟踪ID。它是否会打印在日志中?

我尝试了以下实现,但在日志中未看到任何自定义跟踪https://github.com/openzipkin/zipkin-aws/blob/release-0.11.2/brave-propagation-aws/src/main/java/brave/propagation/aws/AWSPropagation.java

Tracing.newBuilder().propagationFactory(
  ExtraFieldPropagation.newFactoryBuilder(B3Propagation.FACTORY)
                       .addField("x-vcap-request-id")
                       .addPrefixedFields("x-baggage-", Arrays.asList("country-code", "user-id"))
                       .build()
);

我尝试了上面的代码https://cloud.spring.io/spring-cloud-sleuth/reference/html/#propagation但在日志中未看到任何自定义跟踪id

共有2个答案

刘博雅
2023-03-14

对我有效的方法之一是使用ExtraFieldPropagation,并将这些密钥添加到sleuth属性中的“传播密钥”和“白名单密钥”下

示例代码'@自动配电示踪剂示踪剂;

Span currentSpan = tracer.nextSpan().start();
ExtraFieldPropagation.set(
      "customkey", "customvalue");
sleuth:
    log:
      slf4j:
        whitelisted-mdc-key : customkey
propagation:
      tag:
        enabled: true
    propagation-keys : customkey '
史默
2023-03-14

您已经传入了B3传播。工厂作为传播工厂的实现,因此您明确表示需要默认的B3头。您已经说过,希望还传播其他字母数字字段。然后,在日志解析工具中,可以定义要使用自定义字段作为跟踪id,但这并不意味着将更改deafolt X-B3-TraceId字段。如果希望使用自定义字段作为Sleuth理解的跟踪id,则需要更改日志记录格式并实现不同的传播工厂bean。

 类似资料:
  • 我正在使用侦探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 在《侦探》中完成这一点的最佳方法是什么?

  • Google App Engine现在通过新的第二代标准环境支持Go 1.11。在将较旧的标准环境应用程序转换为第二代应用程序时,如何将来自应用程序引擎基础结构的跟踪信息与我使用OpenCensus添加到应用程序中的自定义跟踪相结合并不明显。 尽管我已经创建了一个堆栈驱动程序导出器并注册了跟踪,但我没有在附加到入站请求的堆栈驱动程序控制台中看到自定义跟踪信息。

  • 问题内容: 我正在尝试在SQL Server 2005下编码用户定义的函数,该函数会将字母数字值的整数部分加1。例如, 应返回“ A000300”。到目前为止,这是我所做的; 但是如您所见,它仅适用于最后一位数字。我需要将其置于循环下,以便它可用于A002999等。有任何想法吗? 编辑:给定值的Alpha前缀可能超过一个字符,或者根本没有。 问题答案: 现在可以使用任何长度的前缀和数字部分(每个最

  • Spring Boot(mvc)中是否有一种方法可以记录一个自定义异常,并在日志文件中不可见其堆栈跟踪的情况下抛出它?但对于任何其他异常,仍请参见堆栈跟踪。 现在的问题是,我不仅看到了日志条目,还看到了自定义异常的堆栈跟踪,而且找不到防止这种情况的方法。我想问题是再扔一次引起的。一个可能的解决方案是为exception创建一个自定义类,我将返回它,但我不喜欢这个想法,因为异常编组似乎工作得很好。

  • 大家好,希望有人能帮助我,我正在尝试获得一个非常基本的zipkin实现,以掌握分布式跟踪。我正在使用Spring靴来做这件事,但似乎不能使它工作。当我尝试为我的服务查找跟踪时,zipkin UI中不会显示任何内容。 我有两个部署如下: 我想要登录的spring boot应用程序: 我得完整日志: 我部署的第二个应用程序是我的zipkin客户机/UI Pom.xml