Spring-Cloud-Sleuth是Spring Cloud的組成部分之一迁匠,為SpringCloud應(yīng)用實(shí)現(xiàn)了一種分布式追蹤解決方案,其兼容了Zipkin, HTrace和log-based追蹤
Span:基本工作單元箱亿,例如逛犹,在一個(gè)新建的span中發(fā)送一個(gè)RPC等同于發(fā)送一個(gè)回應(yīng)請(qǐng)求給RPC气笙,span通過(guò)一個(gè)64位ID唯一標(biāo)識(shí),trace以另一個(gè)64位ID表示醋火,span還有其他數(shù)據(jù)信息悠汽,比如摘要箱吕、時(shí)間戳事件、關(guān)鍵值注釋(tags)柿冲、span的ID殖氏、以及進(jìn)度ID(通常是IP地址)
span在不斷的啟動(dòng)和停止,同時(shí)記錄了時(shí)間信息姻采,當(dāng)你創(chuàng)建了一個(gè)span雅采,你必須在未來(lái)的某個(gè)時(shí)刻停止它。
Trace:一系列spans組成的一個(gè)樹(shù)狀結(jié)構(gòu)慨亲,例如婚瓜,如果你正在跑一個(gè)分布式大數(shù)據(jù)工程,你可能需要?jiǎng)?chuàng)建一個(gè)trace刑棵。
Annotation:用來(lái)及時(shí)記錄一個(gè)事件的存在巴刻,一些核心annotations用來(lái)定義一個(gè)請(qǐng)求的開(kāi)始和結(jié)束
cs - Client Sent -客戶端發(fā)起一個(gè)請(qǐng)求,這個(gè)annotion描述了這個(gè)span的開(kāi)始
sr - Server Received -服務(wù)端獲得請(qǐng)求并準(zhǔn)備開(kāi)始處理它蛉签,如果將其sr減去cs時(shí)間戳便可得到網(wǎng)絡(luò)延遲
ss - Server Sent -注解表明請(qǐng)求處理的完成(當(dāng)請(qǐng)求返回客戶端)胡陪,如果ss減去sr時(shí)間戳便可得到服務(wù)端需要的處理請(qǐng)求時(shí)間
cr - Client Received -表明span的結(jié)束,客戶端成功接收到服務(wù)端的回復(fù)碍舍,如果cr減去cs時(shí)間戳便可得到客戶端從服務(wù)端獲取回復(fù)的所有所需時(shí)間
Paste_Image.png
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>