怎么解决java的sleuthTraceFeignClientSpanName问题
本篇内容主要讲解“怎么解决java的sleuth TraceFeignClient SpanName问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决java的sleuth TraceFeignClient SpanName问题”吧!
在武定等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、做网站 网站设计制作定制设计,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站,成都外贸网站建设公司,武定网站建设费用合理。
@Override public Response execute(Request request, Request.Options options) throws IOException { String spanName = getSpanName(request); Span span = getTracer().createSpan(spanName); if (log.isDebugEnabled()) { log.debug("Created new Feign span " + span); } try { AtomicReferencefeignRequest = new AtomicReference<>(request); this.spanInjector.inject(span, feignRequest); span.logEvent(Span.CLIENT_SEND); addRequestTags(request); Request modifiedRequest = feignRequest.get(); if (log.isDebugEnabled()) { log.debug("The modified request equals " + modifiedRequest); } Response response = this.delegate.execute(modifiedRequest, options); logCr(); return response; } catch (RuntimeException | IOException e) { logError(e); throw e; } finally { closeSpan(span); } } private String getSpanName(Request request) { URI uri = URI.create(request.url()); return uriScheme(uri) + ":" + uri.getPath(); }
默认是根据uri生成spanName.如果是restful风格的话,/getuser/1 /getuser/2 就是2个span.
span一般是一个操作。比如getuser. 参数啊1. tag应该1.
如果要修改默认uri为span。
方案1:
1. 通过直接在请求上,或者在类上添加Headers的注解
@Headers({"Content-Type: application/json","Accept: application/json",Accept {contentType}}) @PostMapping(value = "/card-blank/batch-create") Response batchCreateCard(@RequestBody CreateCardBlankDTO condition,@Param("contentType") String type);
2.重写getspan方法,从请求头获取spanName
方案二:
能够得知当前feign调用的feignclient java方法,获取方法名称为spanName
重写getspan方法,从请求头获取spanName
到此,相信大家对“怎么解决java的sleuth TraceFeignClient SpanName问题”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
网站题目:怎么解决java的sleuthTraceFeignClientSpanName问题
文章源于:http://scgulin.cn/article/jopshj.html