全部產品
Search
文件中心

Server Load Balancer:鏈路追蹤實現全鏈路分析

更新時間:Jul 28, 2026

ALB支援鏈路追蹤功能。開啟該功能後,ALB會在轉寄請求時自動注入追蹤頭部,協助使用者獲得完整的請求追蹤資料,包括請求來源、經過的節點、回應時間等資訊,從而快速定位和解決分布式架構下的效能瓶頸。

背景資訊

鏈路追蹤為分布式應用的開發人員提供了完整的調用鏈路還原、調用請求量統計、鏈路拓撲以及應用依賴分析等工具,可以協助開發人員快速分析和診斷分布式應用架構下的效能瓶頸。

一條鏈路資料對應一條調用鏈(Trace)。在廣義上,一個調用鏈代表一個事務或者流程在分布式系統中的執行過程,由多個Span組成的一個有向非循環圖(DAG),每個Span代表調用鏈中被命名並計時的連續性執行片段。

開啟ALB鏈路追蹤功能後,ALB會在轉寄請求時自動注入或更新HTTP追蹤頭部,追蹤資料上報至阿里雲可觀測鏈路 OpenTelemetry 版。支援OpenTelemetry和Zipkin兩種鏈路追蹤方式。

鏈路追蹤方式

OpenTelemetry

當ALB開啟鏈路追蹤功能且選擇OpenTelemetry類型時,ALB會在將請求轉寄到後端伺服器之前,添加或更新HTTP頭部中的traceparent欄位。traceparent欄位的格式為:{version}-{traceid}-{parentid}-{traceflags}。各部分含義如下表所示。

欄位

含義

格式

version

使用的OpenTelemetry版本

始終為00

traceid

標識本次追蹤的ID

32位十六進位數字

parentid

標識追蹤鏈路上本節點的ID

16位十六進位數字

traceflags

標識對本次請求是否進行採樣

00(不採樣)或01(採樣),由配置的採樣率決定

情境一:請求不攜帶traceparent

當用戶端發送的要求標頭部不攜帶traceparent欄位時,ALB會產生完整的traceparent欄位並插入HTTP頭部。

情境二:請求已攜帶traceparent

當上遊服務已在要求標頭中攜帶traceparent欄位時,ALB會繼承versiontraceidtraceflags,僅產生新的parentid

欄位值的變化對照:

部分

上遊請求值

ALB轉寄值

處理方式

version

00

00

繼承

traceid

7a3f91c4d8e26b5f9f3a7c1d6b4e8a25

7a3f91c4d8e26b5f9f3a7c1d6b4e8a25

繼承

parentid

1d9b4e70a6cf3288

c8e14b7a2d95f360

新產生

traceflags

00

00

繼承

Zipkin

當ALB開啟鏈路追蹤功能且選擇Zipkin類型時,ALB會在將請求轉寄到後端伺服器之前,添加或更新HTTP頭部中的X-B3-*欄位。各欄位含義如下表所示。

欄位名

含義

格式

X-B3-TraceId

標識本次追蹤的ID

16位十六進位數字

X-B3-SpanId

標識追蹤鏈路上本節點的ID

16位十六進位數字

X-B3-ParentSpanId

標識追蹤鏈路上前一個節點的ID

16位十六進位數字

X-B3-Sampled

標識對本次請求是否進行採樣

0(不採樣)或1(採樣),由配置的採樣率決定

情境一:請求不攜帶追蹤頭部

當用戶端發送的要求標頭部不攜帶X-B3-*欄位時,ALB會作為追蹤鏈路的起始節點,產生X-B3-TraceIdX-B3-SpanIdX-B3-Sampled三個欄位並插入HTTP頭部。由於鏈路上沒有上遊節點,轉寄請求中不包含X-B3-ParentSpanId欄位。

情境二:請求已攜帶追蹤頭部

當上遊服務已在要求標頭中攜帶完整的X-B3-*欄位時,ALB會繼承X-B3-TraceIdX-B3-Sampled的值,產生新的X-B3-SpanId,並將上遊請求中的X-B3-SpanId作為X-B3-ParentSpanId傳遞給後端伺服器。

欄位值的變化對照:

欄位

上遊請求值

ALB轉寄值

處理方式

X-B3-TraceId

7a3f91c4d8e26b5f

7a3f91c4d8e26b5f

繼承

X-B3-SpanId

1d9b4e70a6cf3288

9f3a7c1d6b4e8a25

新產生

X-B3-ParentSpanId

e45c2a9f7b10d36e

1d9b4e70a6cf3288

取上遊的SpanId

X-B3-Sampled

1

1

繼承

適用範圍

步驟一:開啟鏈路追蹤

  1. 登入ALB控制台,選擇執行個體所屬的地區,找到目標執行個體並單擊執行個體ID。

  2. 單擊監聽頁簽,找到目標監聽,單擊監聽ID。

  3. 監聽詳情頁簽的鏈路追蹤地區,開啟鏈路追蹤開關。

  4. 開啟鏈路追蹤對話方塊,完成以下配置,單擊儲存

    • 開通服務

      • 開通可觀測鏈路OpenTelemetry版:首次使用需勾選服務合約確認開通。

    • 建立訪問日誌(若目標ALB執行個體未建立)

      • 項目Project:Log Service中的資源嵌入式管理單元,用於資源隔離和控制。

        • 選擇現有 Project:在下拉框中選擇一個Project。

        • 建立 Project:在文字框中輸入建立Project名稱。

      • 日誌庫Logstore:Log Service中日誌資料的採集、儲存和查詢單元。

        • 選擇現有 Logstore:在下拉框中選擇一個Logstore。

        • 建立 Logstore:在文字框中輸入建立Logstore名稱。Project選擇建立時,Logstore也需選擇建立。

    • 配置鏈路追蹤

      • 鏈路追蹤類型:支援選擇OpenTelemetry(W3C)Zipkin(B3)

      • 採樣率:取值範圍1~100,預設值為100。通過設定採樣率來調整鏈路上報量。

    • 服務關聯角色建立須知:執行此操作時,系統將自動建立服務關聯角色。

步驟二:查看鏈路資料

  1. 登入用戶端終端,測試與後端伺服器的連通性。可參考ALB快速實現IPv4服務的負載平衡

  2. 登入ALB控制台,選擇執行個體所屬的地區,找到目標執行個體並單擊執行個體ID。

  3. 單擊監聽頁簽,找到目標監聽,單擊監聽ID。

  4. 監聽詳情頁簽的鏈路追蹤地區,單擊調用鏈分析右側的查看,前往可觀測鏈路 OpenTelemetry版控制台查看鏈路資料

    頁面頂部查詢欄自動帶入 attributes.app_lb_idattributes.slb_vport 篩選條件,左側快捷篩選區域支援按狀態、耗時範圍和應用程式名稱進行過濾。

更多資訊

關閉鏈路追蹤

  • 鏈路追蹤依賴訪問日誌,關閉訪問日誌會導致鏈路追蹤不可用,請謹慎關閉。關閉鏈路追蹤後,訪問日誌仍保持開啟,如無須使用請手動關閉。

  • 執行個體下所有監聽的鏈路追蹤均關閉後,將停止向可觀測鏈路 OpenTelemetry 版投遞調用鏈資料。

計費說明

使用鏈路追蹤功能,會預設開通阿里雲可觀測鏈路 OpenTelemetry 版服務和訪問日誌服務。開通使用後,會產生資料上報、鏈路儲存以及Log Service等費用。

ALB鏈路追蹤支援的地區

公用雲端支援的地區

地區

地區

中國

華東1(杭州)、華東2(上海)、華南1(深圳)、西南1(成都)、華北1(青島)、華北2(北京)、華北3(張家口)、華北6(烏蘭察布)、中國香港、華南3(廣州)、華南2(河源)

亞太地區

新加坡、馬來西亞(吉隆坡)、日本(東京)、印尼(雅加達)

歐美地區

英國(倫敦)、德國(法蘭克福)、美國(維吉尼亞)、美國(矽谷)