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

将因斯塔纳 traceId 添加到Spring启动日志记录

宋洲
2023-03-14

我有一个应用程序环境,我们使用Instana代理来监控和跟踪应用程序。为了能够将应用程序日志与跟踪相关联,我想将Instana中的traceId添加到我们的日志中。现在我尝试添加sping-cloud d-sleuth,我在日志中看到了一些traceId和spanIds,但这些不是Instana的。跟踪和范围包含在带有x-instana-tx-instana-s的请求的标头中。但是我看不出有什么方法可以将这些标头注入sping-cloud d-sleuth。

我已经按照文档中的描述阅读并尝试了,但显然标头可以是空的,导致在尝试使用十六进制编解码器时产生NPE。

简而言之,我如何才能让sleuth使用instana跟踪头?

共有1个答案

雷硕
2023-03-14

>

  • InstanaJava跟踪器会将instana.trace.id添加到支持框架的日志中。请参考:https://www.ibm.com/docs/en/instana-observability/current?topic=technologies-monitoring-java-virtual-machine#logging

    要从受监控的应用程序获取当前的 spanId 和跟踪 Id,您可以使用英思坦纳跟踪 SDK。参考资料:https://www.ibm.com/docs/en/instana-observability/current?topic=references-java-trace-sdk

    使用本指南配置sdk-https://www.ibm.com/docs/en/instana-observability/current?topic=references-java-trace-sdk#using-the-instana-java-sdk

    配置sdk后,可以使用下面两个API来获取Ids String traceId = span support . traceId();string spanId = span support . spanId();

    如果正在处理活动请求,您将获得ID。

  •  类似资料:
    • 我刚刚为我们的微服务环境在前端创建了简单的Zuul代理,但现在我想将所有条目记录到通过代理的日志文件中。 做任何我需要做的事情。

    • 我正在尝试通过使用spring-cloud d-gcp-starter-log将SpringBootApplication(微服务)与StackdriverLogging集成。我能够在GCP中看到日志,但在日志中traceId和SPANId丢失。为此,我也尝试使用Spring-cloud d-sleuth,但由于我在我的微服务中使用apache kafka,因此侦探无法正常工作。有人能帮我吗我如何

    • 我使用的是,我想配置将不同的内容异步记录到不同的日志文件中。 我创建了log4j2文件,但是仍然使用Spring Boot默认日志记录。如何切换日志记录?

    • 我目前正在我们的项目中实现Spring Cloud Sleuth。我需要将traceId添加到响应标头。有没有办法实现这一点? 谢谢, Anoop

    • spring的侦探增加了MDC的X-B3-SpanId和SpanID。(TraceId相同) “x-b3-”前缀值与非前缀值相同。 如果其中一个值是多余的,我倾向于删除它。(减少日志的冗长) X-B3-SpanId和SPANID有什么区别吗?(X-B3-TraceId和Traceid) 是否有充分的理由将两者都记录下来? spring文档https://cloud.spring.io/spring

    • 我正在使用这些依赖项: 是否有可能将当前活动配置文件添加到每条日志行?这样就可以根据splunk/elk/... 所以不是 它应该记录下来 编辑:基于Marcin的回答,我实现如下: application.yml ProfileLogger.java logconfig.java 这将打印如下所示的日志: 这已经很好了,但还不完全是我想要的。我想从一开始就添加概要文件->即使是“启动的应用程序”