spring-cloud-sleuth链路信息中增加自定义属性

需求说明:

我要实现的需求是前端会将页面的pageId放到request heander中,后端会将pageId保存到链路信息中,这样以后就可以查看某个页面上有多少个请求了(链路展示端没用到zipkin,是自定义前端页面)。

实现方式:

通过研究sleuth的源码,发现sleuth已经提供了这样的方法了,我们只需要配置一下就好了,配置方法如下:

1,配置文件:红色部分

spring:
    zipkin:
        sender: 
            type: kafka
        enabled: true
        kafka:
            topic: zipkin
    sleuth:
        propagation:
            tag:
              whitelisted-keys:
                - page-id
        propagation-keys:
            - page-id
 
      sampler:
            #percentage: 1.0
            rate: 100
            #probability: 1.0
    kafka:
        bootstrap-servers: localhost:9092

2:代码更改

在SleuthTagPropagationAutoConfiguration中打个断点,如图:

spring-cloud-sleuth链路信息中增加自定义属性_第1张图片

启动时看看能进来不,我本地进不来,所有又在自己的工程中新建了一个类似的Configuration,如下图,把上面的注解去掉了

spring-cloud-sleuth链路信息中增加自定义属性_第2张图片

 

这样就配置好了,请求一下试试:

spring-cloud-sleuth链路信息中增加自定义属性_第3张图片

会发现产生的链路跟踪信息都包含了page-id,如下图:

spring-cloud-sleuth链路信息中增加自定义属性_第4张图片

你可能感兴趣的:(spring,cloud,sleuth,java)