全部產品
Search
文件中心

Managed Service for OpenTelemetry:Log ServiceSLS關聯調用鏈

更新時間:Aug 20, 2026

Log ServiceSLS的事件配置功能可以關聯日誌與調用鏈的TraceID,在應用出現問題時,即可通過業務日誌中寫入的traceId快速關聯到調用鏈,及時定位分析、解決問題。本文介紹如何在Log ServiceSLS中關聯調用鏈的TraceID。

前提條件

  • 應用已接入Managed Service for OpenTelemetry。具體操作,請參見接入指南。

  • 應用日誌已接入Log ServiceSLS,並且日誌中已寫入traceId(或spanId)。具體操作,請參見使用LoongCollector採集並分析ECS文本日誌和如何將traceId自動寫入日誌。

  • 業務自訂欄位(如 trans-id)需由應用程式層通過 SDK 或日誌架構寫入日誌,Log Service SLS 不會自動產生此類欄位。如需作為獨立欄位使用,可通過 Logtail 正則解析外掛程式從日誌內容中提取。自訂欄位只能寫入 message 中,thread 等系統欄位不可修改。

步驟一:提取traceId欄位

  • 如果您上報的日誌中的traceId已經是單獨的欄位,請跳過當前步驟。

  • 如果採集的日誌中,traceId是某個欄位(例如content欄位)的一部分,則需要從該欄位(content欄位)中提取出traceId作為單獨的欄位。

  1. 登入Log Service控制台。

  2. 選擇應用日誌所在的Project和Logstore。

  3. 使用Logtail正則解析外掛程式,提取日誌中的traceId作為單獨的欄位。

    1. 選擇資料接入 > Logtail配置,然後單擊管理Logtail配置。

    2. 單擊編輯進入編輯模式,在資料處理設定項中新增類型為提取欄位(正則模式)的處理外掛程式。

      假設Logstore中某個日誌的content欄位內容如下,要從content欄位中提取traceId(或spanId)。

      2024-05-06 12:12:49.685 [http-nio-9190-exec-3] DEBUG io.lettuce.core.protocol.DefaultEndpoint - traceId:ea1a00002d17150191696858089d0007 - [channel=0x5d069239, /10.0.0.45:49614 -> redis/192.168.216.80:6379, epid=0x1] write() done

      將基礎配置中的原始欄位設定為content,Regex可以設定為traceId:([a-zA-Z0-9]+),在結果欄位名中添加traceId(或spanId)。更多資訊請參見原生外掛程式:正則解析。

      配置完成後,成功提取traceId的日誌內容如下。

      __tag__:_cluster_id_: xxx
      __tag__:_node_ip_: xxx.xxx.xxx.7
      __tag__:_node_name_: cn-hangzhou.xxx.xxx.7
      _container_ip_: xxx.xxx.xxx 40
      _container_name_: adservice
      _image_name_: ghcr.io/open-telemetry/demo:1.4.0-adservice
      _namespace_: otel-demo
      _pod_name_: opentelemetry-demo-adservice-xxx
      _pod_uid_: xxx
      _source_: stdout
      _time_: 2024-05-07T10:36:48.078285414+08:00
      content: 2024-05-07 02:36:48 - oteldemo.AdService - Targeted ad request received for [accessories] trace_id=xxx span_id=xxx trace_flags=01
      span_id: xxx
      traceId: xxx

步驟二:配置跳轉事件

  1. 單擊某條日誌中traceId(或spanId)的值,然後在彈出的視窗中單擊前往配置。

  2. 在彈出的進階事件配置視窗中,為traceId(或spanId)欄位添加事件,然後單擊確認。

    • 配置名稱:自訂名稱,例如開啟調用鏈分析。

    • 事件行為:選擇自訂HTTP連結。

    • 協議:選擇自訂,並設定為https。

    • 連結地址:

      • 如果要用traceId過濾調用鏈,連結地址格式為trace.console.alibabacloud.com/#/${regionId}/tracing-explorer?source=XTRACE&filters=traceId="${traceId}",需要將${regionId}修改為您的應用接入Managed Service for OpenTelemetry的地區。

        例如應用接入到杭州地區,需要將${regionId}替換為cn-hangzhou。完整連結地址為trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}"。

      • 如果要用spanId過濾調用鏈,需要將spanId提取為單獨的欄位,並將連結中的${traceId}替換為${spanId}。如果您希望同時對traceId和spanId進行過濾,完整連結地址為trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}" AND spanId="${spanId}" 。

      • 如果您希望使用自訂的屬性(Attributes和Resources)過濾調用鏈,連結地址格式為trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=${調用鏈中自訂屬性的名稱}="${SLS日誌中的欄位名}"。

        例如當您希望過濾某個命名空間的調用鏈時,SLS日誌中有一個表示命名空間的namespace欄位,並且調用鏈的Resources中包含k8s.namespace.name屬性,那麼完整連結地址為trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=resources.k8s.namespace.name="${namespace}" 。

  3. 跳轉事件配置完成後,再次單擊traceId(或spanId)欄位值,在彈出的視窗單擊開啟調用鏈分析,跳轉至Managed Service for OpenTelemetry的調用鏈分析頁面。

    在調用鏈分析頁面,您可以查詢traceId對應的調用鏈。更多資訊,請參見調用鏈分析。

    在調用鏈分析頁面,可通過左側快捷篩選區域按狀態、耗時、應用程式名稱、介面名稱、主機地址等維度篩選調用鏈。右側上方展示調用次數、HTTP 錯誤數、耗時百分位等統計圖表,下方列表展示每條 Trace 記錄的 TraceId、介面名稱、應用程式名稱、耗時、狀態、開始時間、主機地址等資訊。