zipkin是一个用于跟踪请求以及跟踪服务处理请求在多服务项目中有用的时间跨度的工具,它不需要花费太多精力来设置你只需要在服务中添加zipkin依赖项。定义一个采样器bean。
在项目中添加以下依赖项
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-zipkin', version: '1.3.2.RELEASE'
在你的项目中添加sampler bean
` @Value("${spring.sleuth.sampler.percentage}")
String percentage;
@Bean
public PercentageBasedSampler defaultSampler() {
SamplerProperties configuration= new SamplerProperties();
configuration.setPercentage(Float.parseFloat(percentage));
return new PercentageBasedSampler(configuration);
}
`
当你想要只有一部分你的请求跟踪发送给zipkin时,添加上面的bean,否则定义一个bean
` @Bean
public AlwaysSampler defaultSampler() { return new AlwaysSampler();
}
`
添加
在ur属性文件中spring.zipkin.base-url=localhost:9411
并在上面定义的同一端口上托管zipkin服务器。
但如果你使用api-gateway访问zipkin(如果在云端部署)或在代理内部你可能会遇到在通过网关访问网关时损坏的ui元素的问题,我使用zuul with propertis as:
zuul.routes.zipkin.path=/zipkin/*
zuul.routes.zipkin.url=http://localhost:9411
答案 0 :(得分:0)
我找到的最简单的解决方案,用于解决zipkin通过网关损坏的ui问题 是通过更改zipkin服务器内的zipkin-server-shared.yml文件的以下属性
zipkin:
ui:
base-path: /zipkin
将上述属性更改为
zipkin:
ui:
base-path: /api/tracing/zipkin
并将ur zuul路径更改为以下内容
zuul.routes.zipkin.path=/api/tracing/*
并使用follwing url
访问zipkin https://gatewayhost:port/api/tracing/zipkin/
注意配置中的小细节,不要忘记放尾" /"在url中的zipkin之后