日志服務SLS的事件配置功能可以關聯日志與調用鏈的TraceID,在應用出現問題時,即可通過業務日志中寫入的traceId快速關聯到調用鏈,及時定位分析、解決問題。本文介紹如何在日志服務SLS中關聯調用鏈的TraceID。
前提條件
應用已接入可觀測鏈路 OpenTelemetry 版。具體操作,請參見接入指南。
應用日志已接入日志服務SLS,并且日志中已寫入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,正則表達式可以設置為
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}
修改為您的應用接入可觀測鏈路 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)字段值,在彈出的窗口單擊打開調用鏈分析,跳轉至可觀測鏈路 OpenTelemetry 版的調用鏈分析頁面。
在調用鏈分析頁面,您可以查詢traceId對應的調用鏈。更多信息,請參見調用鏈分析。