istio-jaeger-spring boot調用鏈配置
雖然,istio ingress controller已經生成了jaeger 記錄所需要的信息,但是多個分布式之間沒法清晰記錄相互之間的依賴關系。所以相關的項目還需要加入特殊配置。
如:有四個服務 portal、service-a、service-b、service-c,它們之間的關系如下
portal調用服務service-a和service-c,service-a調用service-b
服務加入特殊處理前Jaeger ui記錄的結果為:
服務特殊處理后:
1.實現request header信息傳遞
寫子類實現 HttpSpanInjector、HttpSpanExtractor實現分布式調用鏈http header信息的傳遞(spanid,traceid,span-parentid....)
2.服務啟動類注入類
@Bean
HttpSpanInjector istioHttpSpanInjector() {
return new IstioHttpSpanInjector();
}
@Bean
HttpSpanExtractor istioHttpSpanExtractor() {
return new IstioHttpSpanExtractor();
}
3.具體配置參考項目
https://github.com/jiuchongxiao/istio-sample-springboot-jaeger-v0.3