Log ServiceSLS的事件配置功能可以關聯日誌與調用鏈的TraceID,在應用出現問題時,即可通過業務日誌中寫入的traceId快速關聯到調用鏈,及時定位分析、解決問題。本文介紹如何在Log ServiceSLS中關聯調用鏈的TraceID。
前提條件
應用已接入Managed Service for OpenTelemetry。具體操作,請參見接入指南。
應用日誌已接入Log ServiceSLS,並且日誌中已寫入traceId(或spanId)。具體操作,請參見快速入門和如何將traceId自動寫入日誌。
步驟一:提取traceId欄位
如果您上報的日誌中的traceId已經是單獨的欄位,請跳過當前步驟。
如果採集的日誌中,traceId是某個欄位(例如content欄位)的一部分,則需要從該欄位(content欄位)中提取出traceId作為單獨的欄位。
選擇應用日誌所在的Project和Logstore。
使用Logtail正則解析外掛程式,提取日誌中的traceId作為單獨的欄位。
選擇
,然後單擊管理Logtail配置。單擊編輯進入編輯模式,在資料處理設定項中新增類型為提取欄位(正則模式)的處理外掛程式。
假設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的日誌內容如下。
步驟二:配置跳轉事件
單擊某條日誌中traceId(或spanId)的值,然後在彈出的視窗中單擊前往配置。
在彈出的進階事件配置視窗中,為traceId(或spanId)欄位添加事件,然後單擊確認。
配置名稱:自訂名稱,例如
開啟調用鏈分析
。事件行為:選擇自訂HTTP連結。
協議:選擇自訂,並設定為
https
。連結地址:
如果要用traceId過濾調用鏈,連結地址格式為
trace.console.aliyun.com/#/${regionId}/tracing-explorer?source=XTRACE&filters=traceId="${traceId}"
,需要將${regionId}
修改為您的應用接入Managed Service for OpenTelemetry的地區。例如應用接入到杭州地區,需要將
${regionId}
替換為cn-hangzhou
。完整連結地址為trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}"
。如果要用spanId過濾調用鏈,需要將spanId提取為單獨的欄位,並將連結中的
${traceId}
替換為${spanId}
。如果您希望同時對traceId和spanId進行過濾,完整連結地址為trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}" AND spanId="${spanId}"
。如果您希望使用自訂的屬性(Attributes和Resources)過濾調用鏈,連結地址格式為
trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=${調用鏈中自訂屬性的名稱}="${SLS日誌中的欄位名}"
。例如當您希望過濾某個命名空間的調用鏈時,SLS日誌中有一個表示命名空間的
namespace
欄位,並且調用鏈的Resources中包含k8s.namespace.name屬性,那麼完整連結地址為trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=resources.k8s.namespace.name="${namespace}"
。
跳轉事件配置完成後,再次單擊traceId(或spanId)欄位值,在彈出的視窗單擊開啟調用鏈分析,跳轉至Managed Service for OpenTelemetry的調用鏈分析頁面。
在調用鏈分析頁面,您可以查詢traceId對應的調用鏈。更多資訊,請參見調用鏈分析。