全部產品
Search
文件中心

Platform For AI:EAS中開啟LLM應用鏈路追蹤(Tracing)

更新時間:Nov 26, 2025

本文為您介紹如何在部署服務時增加鏈路追蹤功能。

背景資訊

隨著大語言模型(LLM)技術的廣泛應用,企業在構建基於LLM的應用時,面臨諸多挑戰,例如輸出不可預測、調用鏈路複雜、效能瓶頸難以發現以及缺乏細粒度的可觀測性等。為應對這些挑戰,EAS服務支援啟用鏈路追蹤功能。

鏈路追蹤功能的核心目標是提升應用可觀測性,協助您更好地評估LLM應用。啟用鏈路追蹤功能後,EAS服務會自動接入阿里雲的ARMS(應用即時監控服務),以實現以下功能:

  • 調用鏈可視化:提供清晰的調用鏈日誌,協助您直觀瞭解請求的完整路徑。

  • 效能監控:跟蹤關鍵效能指標(如回應時間、Token消耗和錯誤數等),及時發現效能瓶頸。

  • 問題定位與根因分析:通過Trace ID快速定位問題,並結合上下文進行根因分析。

  • 評估工具:基於調用鏈資料提供評估工具,用於驗證LLM應用輸出結果的準確性和可靠性。

基本概念

  • 調用鏈(Trace)

    調用鏈是分布式系統中一次事務或請求的完整執行路徑,記錄了請求在各個服務或模組中的流轉過程。調用鏈由多個Span組成。通過調用鏈,可以直觀地瞭解請求的流轉路徑,快速定位效能瓶頸或錯誤來源。TraceID是調用鏈的唯一識別碼。通過TraceID,可查詢具體調用的詳情和日誌。

  • 跨度(Span)

    Span是調用鏈中的一個基本單元,表示某個具體操作的執行片段,用於記錄每個操作的詳細資料,包括操作名稱、起始時間、結束時間等。

  • Python探針

    Python 探針是一種工具,用於自動採集 Python 應用的調用鏈資料和效能指標。在部署 EAS 服務時,通過安裝 Python 探針啟用鏈路追蹤功能。

  • 評估

    針對使用者提出的問題及LLM應用產生的答案,從多個維度進行綜合評價。具體的評估維度名稱可聯絡您的商務經理進行確認。

使用限制

本方案僅支援基於LangChain、Llama-index或Dashscope開發的Python版本LLM應用類型。

前提條件

步驟一:準備工作

為完整說明從服務部署、服務調用到鏈路查看的全流程,本方案提供了一個簡單的預測服務樣本。

該代碼是基於Dashscope API開發的一個簡單預測服務。它使用了Flask架構來構建一個Web服務,並通過Dashscope的Generation.call方法調用模型來進行文本產生。在首次使用Dashscope前,請先完成開通流程並擷取API-KEY,詳情請參見首次調用通義千問API。隨後,在部署服務時,將DASHSCOPE_API_KEY設定為環境變數,以便正確訪問API服務。其代碼檔案app.py樣本內容如下:

import os
import json
import flask
import dashscope

app = flask.Flask(__name__)

def run_query(query):
    """run a query."""

    response = dashscope.Generation.call(
        api_key=os.getenv('DASHSCOPE_API_KEY'),
        model="qwen-plus",
        messages=[
            {'role': 'system', 'content': 'You are a helpful assistant.'},
            {'role': 'user', 'content': query}
        ],
        result_format='message'
    )
    return response


@app.route('/api/trace_demo', methods=['POST'])
def query():
    """
    post data example:
    {
        "query": "capital of china"
    }
    """
    data = flask.request.get_data("utf-8")
    query = json.loads(data).get('query', '')
    response = run_query(query)
    return response.output.choices[0].message.content


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)  

步驟二:開啟鏈路追蹤

在部署EAS服務時,可在服務功能地區通過開啟鏈路追蹤開關來啟用鏈路追蹤功能,並根據提示資訊判斷所用鏡像是否內建鏈路追蹤採集組件,按需配置安裝探針和使用ARMS Python探針啟動應用的相關命令。如需瞭解更多配置詳情,請參見手動安裝Python探針

  • 選擇已內建鏈路追蹤採集組件的鏡像:開啟鏈路追蹤開關後,即可一鍵啟用鏈路追蹤功能,無需額外配置參數。

  • 選擇未內建鏈路追蹤採集組件的鏡像:開啟鏈路追蹤開關後,需根據提示資訊配置三方庫和運行命令:

    參數

    描述

    運行命令

    增加aliyun-bootstrap -a install && aliyun-instrument python app.py。該命令用於安裝探針和使用ARMS Python探針啟動應用,其中app.py是鏡像裡配置的用於提供預測服務的主檔案。三方庫配置需增加aliyun-bootstrap,用於從PyPI倉庫下載探針安裝器。

    三方庫配置

    增加aliyun-bootstrap,用於從PyPI倉庫下載探針安裝器。

image

本方案以使用未內建鏈路追蹤採集組件的鏡像,並以運行範例程式碼為例進行說明。以下是自訂部署EAS服務時的關鍵參數配置說明,具體操作,請參見通過控制台部署。服務部署成功後,您可以:

參數

描述

環境資訊

部署方式

選擇鏡像部署

鏡像配置

本方案選擇預設的官方鏡像 > python-inference:3.9-ubuntu2004

您也可以在鏡像地址頁簽,輸入已準備的自訂鏡像。

直接掛載

因未將範例程式碼檔案整合到鏡像中,需將其掛載到服務執行個體中。以OSS掛載為例,單擊OSS,並配置以下參數:

  • Uri:選擇範例程式碼檔案所在的OSS目錄。如何將代碼檔案上傳到Object Storage Service目錄中,請參見控制台快速入門

  • 掛載路徑:配置為/mnt/data/。後續將從該路徑讀取代碼檔案。

如果您使用自訂鏡像,並已在鏡像中配置了提供預測服務的主檔案,則可以忽略該配置。

運行命令

本方案配置為aliyun-bootstrap -a install && aliyun-instrument python /mnt/data/app.py

其中/mnt/data/app.py為已掛載的範例程式碼檔案。

環境變數

因範例程式碼會調用Dashscope API,需單擊添加按鈕,配置如下環境變數:

三方庫配置

將三方庫配置為aliyun-bootstrap flask dashscope

服務接入

Virtual Private Cloud

使用鏈路追蹤功能必須配置專用網路,請選擇該地區下的Virtual Private Cloud交換器安全性群組

因EAS服務預設不通公網,運行範例程式碼需要調用Dashscope API,則需為EAS服務配置具備公網訪問能力的專用網路,以確保其能夠正常訪問公網。具體操作,請參見EAS訪問公網或內網資源

交換器

安全性群組名稱

服務功能

鏈路追蹤

開啟鏈路追蹤開關,並在環境資訊地區,配置三方庫和運行命令。

步驟三:查看鏈路追蹤

基於Trace鏈路提供評估工具,可以協助開發人員驗證LLM應用輸出結果的準確性和可靠性。具體操作步驟如下:

調用EAS服務

以線上調試為例,您也可以通過API調用EAS服務,詳情請參見API調用

  1. 模型線上服務(EAS)頁面,單擊目標服務作業列下的image>線上調試

  2. Body頁簽中,根據您定義的預測服務,向指定地址發送請求資料。

    本方案使用範例程式碼檔案app.py中定義的服務介面,樣本結果如下:

    image

查看鏈路資訊

說明

Trace資料自產生時間開始,預設壽命為30天。如果需要延長,請聯絡ARMS團隊定製配置。

  1. 切換到鏈路追蹤頁簽的鏈路查詢Tab頁,查看Trace鏈路資訊。image

  2. 單擊目標Trace操作列下的查看鏈路,進入Trace詳情頁面。

    該頁面提供的Trace資料支援您查看服務的輸入、輸出及相關日誌資訊。

    注意:如果您使用RAM使用者或RAM角色,請在使用該功能前,為其授予AliyunARMSReadOnlyAccess許可權。

    image

  3. 如需分享該條Trace詳情資料,可單擊下圖所示表徵圖產生一次性地址。

    注意:如果您使用RAM使用者或RAM角色,請在使用該功能前,為其授予cms:CreateTicket許可權。

    20251120115955

步驟四:評估應用效果

EAS基於Trace鏈路提供了評估工具,用於驗證LLM應用輸出結果的準確性和可靠性。支援以下兩種評估方法:

  • 方法一:單條Trace評估:手動選擇EAS服務中的某條鏈路資料進行評估。適用於開發或測試階段,對特定鏈路進行單獨調試,以確保其邏輯正確性和效能符合預期。

  • 方法二:批量Trace線上評估:對EAS服務在運行中產生的鏈路資料,進行週期性、採樣形式的評估操作。適用於大規模效能測試或功能驗證情境,協助您全面瞭解系統整體運行狀態和鏈路協同效果。

說明

Trace資料自產生時間開始,預設壽命為30天。如果需要延長,請聯絡ARMS團隊定製配置。

方法一:單條Trace評估

  1. 鏈路追蹤頁簽的鏈路查詢Tab頁,單擊目標Trace操作列下的評估,然後在評估配置面板中,配置以下參數。image

    • 評估指標:為固定配置,暫不支援更改。從以下維度進行評估。

      評估指標

      描述

      正確性

      判斷答案是否根據輸入和參考文本正確回答問題。

      真實性

      判斷答案是否基於輸入和參考文本產生,是否存在幻覺。

      檢索相關性

      判斷檢索結果是否與輸入問題相關。包含如下4個指標:

      • nDCG:Normalized Discounted Cumulative Gain(歸一化折損累計增益)

      • Hit Rate(命中率)

      • Precision@K(精確度@K)

      • MRR:Mean Reciprocal Rank(平均倒數排名)

    • 模型配置:評估Trace鏈路使用的大語言模型(LLM)。初始設定後,再次評估時將預設回填。

      參數

      描述

      模型選擇

      支援使用以下兩種模型:

      • PAI球證模型

      • qwen-max(百鍊模型)

        說明

      模型Token

      根據選擇的模型,填寫相應的Token:

    • 提取配置:分別在Query提取配置Answer提取配置Context提取配置地區通過配置下表參數來提取相應內容:

      • Query提取配置:提取使用者查詢內容(input)。

      • Answer提取配置:提取系統產生的回答資訊(output)。

      • Context提取配置:提取提供給系統的文本或背景資訊(documents)。

      參數

      描述

      SpanName

      用於尋找與SpanName匹配的span。

      JsonPathInSpan

      格式為a.b.c,不允許為空白。表示從已經匹配的span的指定元素上提取值。

      JsonPathInSpanValue

      格式為a.b.c,允許為空白。表示在找到與JsonPathInSpan對應的元素後,如果該元素內容是JSON字串格式,則進一步使用JsonPathInSpanValue來提取對應的值。

      您可以單擊操作列下的查看鏈路,從Trace詳情頁面擷取配置內容。配置樣本如下表所示:

      提取配置

      如何擷取

      樣本值

      Query提取配置

      本方案樣本為JsonPathInSpanValue無值情況:

      image

      JsonPathInSpanValue有值情況,請參考下圖樣本

      image

      • JsonPathInSpanValue無值

        • SpanName:LLM

        • JsonPathInSpan:attributes.input.value

        • JsonPathInSpanValue:因JsonPathInSpan元素內容非JSON字串格式,此處為空白。

      • JsonPathInSpanValue有值

        • SpanName:LLM

        • JsonPathInSpanattributes.input.value

        • JsonPathInSpanValue:因JsonPathInSpan元素內容為JSON字串格式,此處填寫text[0]

      Answer提取配置

      image

      • SpanName:LLM

      • JsonPathInSpanattributes.output.value

      • JsonPathInSpanValue:此處為空白。

      Context提取配置

      本方案樣本服務不包含Context提取配置。有關Context提取配置的樣本,請參考下圖:

      image

      • SpanName:retrieve

      • JsonPathInSpanattributes.retrieval.documents[*].document.content

        重要

        僅Context配置支援使用星號(*)。

      • JsonPathInSpanValue:因JsonPathInSpan元素內容非JSON字串格式,此處為空白。

  2. 參數配置完成後,單擊確定

    評估結果列出現如下圖樣本結果時,表明評估成功,您可以單擊評估結果查看詳情。image

方法二:批量Trace線上評估

  1. 鏈路追蹤頁簽的線上評估Tab頁,單擊建立評估

  2. 建立評估任務頁面,配置以下參數,然後單擊確定

    參數

    描述

    基礎配置

    任務名稱

    參考介面提示,自訂配置任務名稱。

    評估配置

    評估指標

    為固定配置,暫不支援更改。從以下維度進行評估:

    • 正確性:判斷答案是否根據輸入和參考文本正確回答問題。

    • 真實性:判斷答案是否基於輸入和參考文本產生,是否存在幻覺。

    • 檢索相關性:判斷檢索內容是否與輸入問題相關。包含如下4個指標:

      • nDCG:Normalized Discounted Cumulative Gain(歸一化折損累計增益)

      • Hit Rate(命中率)

      • Precision@K(精確度@K)

      • MRR:Mean Reciprocal Rank(平均倒數排名)

    模型選擇

    支援使用以下兩種模型:

    • PAI球證模型

    • qwen-max(百鍊模型)

      說明

    模型Token

    根據選擇的模型,填寫相應的Token:

    採樣起止時間

    選擇採樣的起始日期和結束日期。

    採樣策略

    支援以下兩種採樣策略:

    • 按時間視窗採樣:每隔x分鐘採樣一條Trace。

    • 按機率採樣:隨機抽取指定百分比的Trace鏈路條數進行採樣。

    QCA提取配置:鏈路資料是JSON格式的字串,QCA提取配置用於指定QCA在鏈路資料JSON字串中的路徑(path),路徑對應的值即為QCA的具體內容。

    Query提取配置

    • Query提取配置:提取使用者查詢內容(input)。

    • Answer提取配置:提取系統產生的回答資訊(output)。

    • Context提取配置:提取提供給系統的文本或背景資訊(documents)。

    通過配置SpanNameJsonPathInSpanJsonPathInSpanValue參數來提取相應內容。關於參數的具體配置方法,請參見提取配置

    Answer提取配置

    Context提取配置

    當評估任務狀態已完成時,表明所有的採樣評估操作都已經結束,任務不會再產生任何新的採樣評估結果。

  3. 評估完成後,您可以在評估任務的評估結果列,查看評估結果。也可以單擊任務名稱,查看任務詳情。

    • 查看評估結果:系統將動態計算並展示基於成功的鏈路資料評估結果的平均值。數值越接近1,表示相關性越強。image

    • 查看評估詳情:image

後續,您可以對評估任務執行一些管理操作,包括更新、停止、刪除以及複製(僅複製任務配置,建立一個新的評估任務)等。image