您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么解決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 { AtomicReference<Request> feignRequest = 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:
@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問題”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。