学科分类
目录
Spring Cloud

在Zipkin链路中添加自定义数据

在实际开发中,Zipkin默认展示的链路数据有时无法满足我们想要获取的数据,比如,无法在Zipkin的UI界面中看到请求发送人的名称, 这时,可以使用Zipkin添加自定义链路数据,将请求发送人的名称添加在链路数据中。在本案例中,我们在gateway-service网关服务中添加Zipkin自定义链路数据实现在Zipkin的UI界面中看到请求发送人的名称,具体步骤如下所示。

(1)在gateway-service项目中创建Filter类。新建filter包,并在该包下创建一个LoggerFilter类,具体代码如例1所示。

例1 gateway-service\src\main\java\com\itheima\gatewayservice\filter\LoggerFilter.java

 1     import brave.Tracer;
 2     import com.netflix.zuul.ZuulFilter;
 3     import com.netflix.zuul.exception.ZuulException;
 4     import org.springframework.beans.factory.annotation.Autowired;
 5     import
 6     org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
 7     import org.springframework.stereotype.Component;
 8     @Component
 9     public class LoggerFilter extends ZuulFilter {
 10         @Autowired
 11         Tracer tracer;
 12         @Override
 13         public String filterType() {
 14             return FilterConstants.POST_TYPE;
 15         }
 16         @Override
 17         public int filterOrder() {
 18             return 900;
 19         }
 20         @Override
 21         public boolean shouldFilter() {
 22             return true;
 23         }
 24         @Override
 25         public Object run() throws ZuulException {
 26             System.out.print(tracer.currentSpan().tag("name","forezp"));
 27             return null;
 28         }
 29     }

(2)启动测试。依次启动eureka-server、zipkin-server、eureka-provider、eureka-consumer、gateway-service。使用浏览器访问http://localhost:9410/eureka-provider/service1,查看效果。

访问成功后,使用浏览器访问http://localhost:9411/,页面会显示 Zipkin服务端的UI界面。在Service Name下拉框选择gateway-service,单击 “Find Trances”按钮,可以看到我们这次请求的节点信息,双击gateway-service服务的节点信息,可以查看gateway-service项目链路的详细信息。如图1所示。

图1 Zipkin添加自定义Span效果图

从图1中,我们在gateway-service项目链路的详细信息中可以看到自定义的请求用户的name是“forezp”,说明在Zipkin链路中添加自定义数据成功。

点击此处
隐藏目录