為什么需要鏈路追蹤
分布式服務下,請求鏈路信息統計,應用請求分析,和異常信息定位。把每一次分布式的請求變為成可視化觀察的調用鏈路。
作用主要點:
- 異常信息快速定位,微服務下節點故障的定位
- 分析請求鏈路每個階段過程的耗時,便于應用分析和優化。
需要注意問題點(資料 來自GO 夜讀)
- 低損耗: 不能對應用的服務造成太大的影響。
- 應用透明: 程序員無需感知到鏈路追蹤的存在。(減少代碼侵入)
opentracing 簡介
-
opentracing 作用
image.png
- opentracing 幾個核心概念
image.png
Trace :就是指完整鏈路的表達,即一個請求所有經過服務的過程路徑,每一條局部鏈路都有一個全局唯一的traceid來標識請求。
Span :服務跨度,即是表達到達傳遞服務中一個父和子的關系ID,來區別服務調用順序。用對應parent id 和 相關sapn id。
-
通過注入和提取來確認Span之前的關系!通過父子關系確認調用鏈。
image.png
-
當每個Span finish之后
image.png
Jaeger 簡介
- 關于Jaeger
基于opentracing規范的鏈路追蹤工具。 -
關于Jaeger Client
提供對應的一個鏈路中生成相關的trace id 和 span id 。每一個traceid可以設定一些tags和其他一些默認的信息都會被自動的注入。如hostman,ip ,servie name
image.png