Spring Cloud Sleuth 中id的使用

Spring Cloud Sleuth采用的是Google的開源項目Dapper的專業術語。

  • Span:基本工作單元,發送一個遠程調度任務 就會產生一個Span,Span是一個64位ID唯一標識的,Trace是用另一個64位ID唯一標識的,Span還有其他數據信息,比如摘要、時間戳事件、Span的ID、以及進度ID。
  • Trace:一系列Span組成的一個樹狀結構。請求一個微服務系統的API接口,這個API接口,需要調用多個微服務,調用每個微服務都會產生一個新的Span,所有由這個請求產生的Span組成了這個Trace。
  • Annotation:用來及時記錄一個事件的,一些核心注解用來定義一個請求的開始和結束 。這些注解包括以下:?
    • cs - Client Sent -客戶端發送一個請求,這個注解描述了這個Span的開始
    • sr - Server Received -服務端獲得請求并準備開始處理它,如果將其sr減去cs時間戳便可得到網絡傳輸的時間。
    • ss - Server Sent (服務端發送響應)–該注解表明請求處理的完成(當請求返回客戶端),如果ss的時間戳減去sr時間戳,就可以得到服務器請求的時間。
    • cr - Client Received (客戶端接收響應)-此時Span的結束,如果cr的時間戳減去cs時間戳便可以得到整個請求所消耗的時間。

簡單使用:Trace將一次請求的日志全部串起來;

在日志中配置

%X{X-B3-TraceId:-}-%X{X-B3-SpanId:-} 
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{X-B3-TraceId:-}-%X{X-B3-SpanId:-} %level ${LOG_SYSTEM} [%logger{100}_%M] - %msg%n</pattern>

在日志中會顯示Traceid;

在程序中獲取Traceid:

    @Autowiredprivate Tracer tracer; // 默認注入的是DefaultTracer
.........tracer.getCurrentSpan().traceIdString()
traceId對日志查詢會有極大幫助

?

轉載于:https://www.cnblogs.com/chenglc/p/9294911.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249983.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249983.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249983.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件項目管理(五)

在get到成本計劃后&#xff0c;我們便要著手開始對項目的進度進行計劃&#xff0c;即這次的核心計劃之一進度計劃。 進度計劃的重要性&#xff1a;按時完成項目是項目經理最大的挑戰之一&#xff0c;時間是項目規劃中靈活性最小的因素&#xff0c;進度問題是項目沖突的主要原因…

BZOJ2301: [HAOI2011]Problem b(莫比烏斯反演)

Description 對于給出的n個詢問&#xff0c;每次求有多少個數對(x,y)&#xff0c;滿足a≤x≤b&#xff0c;c≤y≤d&#xff0c;且gcd(x,y) k&#xff0c;gcd(x,y)函數為x和y的最大公約數。Input 第一行一個整數n&#xff0c;接下來n行每行五個整數&#xff0c;分別表示a、b、c…

Js正則表達式數字或者帶小數點的數字

function chk() {var patrn /^\d(\.\d)?$/;var result true;$("input[typetext]").each(function () {if (!patrn.exec(this.value)) {alert("請輸入正確的數字&#xff01;");result false;}})return result;}轉載于:https://www.cnblogs.com/smzd/p/…

FastJson/spring boot: json輸出

1.引入FastJson依賴包 <!-- FastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency>pom.xml參考 <project xmlns"http://maven.apa…

safari 調試iPhone web頁面

safari設置-打開Safari偏好者設置&#xff0c;選中“高級菜單”&#xff0c;在頁面最下方看到“在菜單中顯示開發菜單”的復選框&#xff0c;在復選框內打鉤&#xff0c;這樣設置完畢就能在Safari菜單中看到開發菜單了iPhone 設置-打開iPhone手機設置app 選擇Safari&#xff0c…

new函數

使用new函數是另一種創建變量的方式。創建一個未命名的T類型變量&#xff0c;初始化為T類型的零值&#xff0c;并返回其地址。例如&#xff1a; p : new(int)使用new函數創建變量和取其地址的普通局部變量沒有不同&#xff0c;只是不需要引入聲明時的一個名字&#xff0c;有語法…

軟件項目管理

目 錄 前言 2 如何做業務調研&#xff1f; 2.1 調研工作如何組織&#xff1f; 2.2 調研準備階段容易犯哪些錯誤&#xff1f; 2.3 調研準備階段容易犯哪些錯誤&#xff1f;) 2.4 調研準備階段容易犯哪些錯誤&#xff1f; 2.5 現場調研階段容易犯哪些錯誤&#xff1f; 2.…

Python 列表元組字典集合

列表&#xff08;list&#xff09; 有序性&#xff0c;可存儲任意類型的值通過偏移存取&#xff0c;支持索引來讀取元素&#xff0c;第一個索引為0 &#xff0c;倒數第一個索引為-1可變性 &#xff0c;支持切片、合并、刪除等操作可通過索引來向指定位置插入元素可通過pop()方法…

ios兼容問題

滑動卡頓&#xff1a; -webkit-overflow-scrolling:touch; 轉載于:https://www.cnblogs.com/smzd/p/7891722.html

postgresql 高可用 etcd + patroni 之二 patroni

os: centos 7.4 postgresql: 9.6.9 etcd: 3.2.18 patroni: 1.4.4 patroni etcd 是在一個postgrsql 開源大會上 亞信的一個哥們講解的高可用方案。 依然是基于 postgreql stream replication。 ip規劃 192.168.56.101 node1 master 192.168.56.102 node2 slave 192.168.56.103 …

vue對象偵測

http://blog.csdn.net/yihanzhi/article/details/74200618 數組&#xff1a;this.$set(this.arr,index,value) 轉載于:https://www.cnblogs.com/smzd/p/8390626.html

Laravel 5.4 migrate時報錯: Specified key was too long error

Laravel 5.4默認使用utf8mb4字符編碼&#xff0c;而不是之前的utf8編碼。因此運行php artisan migrate 會出現如下錯誤&#xff1a; [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key leng…

springboot工具類

ClassPathResource 在類路徑下讀取資源 public final String getPath() public boolean exists() public InputStream getInputStream() WebUtils 獲取web資源工具類 public static String getRealPath(ServletContext servletContext, String path) public static Object g…

MySQL中事物的詳解

1. 事物的定義及特性 事務是一組操作數據庫的SQL語句組成的工作單元&#xff0c;該工作單元中所有操作要么同時成功&#xff0c;要么同時失敗。事物有如下四個特性&#xff0c;ACID簡稱“酸性”。 1&#xff09;原子性&#xff1a;工作單元中所有的操作要么都成功&#xff0c;要…

記了老是忘記那就寫下來吧宏任務微任務

宏任務&#xff1a;script 定時器 微任務&#xff1a;promiss process.nexttick new Promise(function(resolve){console.log(3);//此為同步程序resolve();//同步 是否異步 由內部函數決定console.log(4); }).then(function(){ //。then 異步console.log(5); });async function…

SPRING自定義注入CONTROLLER變量

問題描述 在SpringMVC中默認可以注入Model&#xff0c;ModelAndView&#xff0c;RequestParam&#xff0c;PathVariable 等&#xff0c;那么這個是怎么實現的&#xff0c;以及怎么注入一個自定義的參數呢 HandlerMethodArgumentResolver 在SpringMVC中有一個接口HandlerMethod…

進程,線程

import os, timeif __name__ __main__:print(the calling process id:%d % os.getpid())# 創建進程pid os.fork()if pid 0:# 子進程print(the child pid is %d % os.getpid())time.sleep(3)elif pid > 0:# 父進程os.wait() # 等待子進程終止print([%d]bye-bye % os.getpi…

livebos--iframe使用

新建一個方法。建一個參數&#xff0c;iframe控件&#xff0c;虛擬列。然后使用以下信息 <% livebos languagejavascript %>var url LB_ObjURI("Lb_lbOrganization",0,[],["NoTitle"]);var v {"edit" : "url ", "view"…

單行溢出 和多行溢出

/*單行溢出*/.one_txt_cut{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.txt_cut{overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}轉載于:https://www.cnblogs.com/smzd/p/8491583…