您可以在Golang應用的業務日誌中關聯調用鏈的TraceId資訊,從而在應用出現問題時,能夠通過調用鏈的TraceId快速關聯到業務日誌,及時定位、分析並解決問題。
前提條件
-
您已將應用通過Golang探針編譯並部署上線。
-
已通過Log ServiceSLS完成日誌採集,具體操作,請參見資料擷取概述。
背景資訊
ARMS在Golang微服務的業務日誌中關聯調用鏈TraceId的功能基於對日誌架構的埋點,目前支援的日誌架構如下:
|
組件 |
倉庫地址 |
低版本 |
高版本 |
|
Zerolog |
v1.10.0 |
v1.33.0 |
|
|
Zap |
v1.20.0 |
v1.27.0 |
|
|
Logrus |
v1.5.0 |
v1.9.3 |
|
|
Log |
v1.21 |
無限制 |
|
|
Slog |
v1.21 |
無限制 |
開啟關聯業務日誌與TraceId開關
登入ARMS控制台,在左側導覽列選擇。
在應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。
說明語言列的表徵圖含義如下:
:接入應用監控的Java應用。
:接入應用監控的Golang應用。
:接入應用監控的Python應用。-:接入Managed Service for OpenTelemetry的應用。
-
在上方導覽列選擇。
-
在自定义配置頁簽的應用日誌關聯配置地區,選擇日誌源為Log ServiceSLS,開啟關聯業務日誌與TraceId開關,選擇Log Service所在地區,然後綁定Project和Logstore。
選擇關聯類別型為日誌庫(Logstore)或資料集(StoreView),設定關聯索引為全文索引或指定欄位索引,然後單擊儲存。
-
如果應用的業務日誌中成功列印出TraceId資訊,則說明業務日誌關聯調用鏈的TraceId關聯成功,如下所示。
2024/12/09 11:14:39 trace_id=0c74ce6d96528xxx2 span_id=ae73xxx cedbrequest to mongon server $$$$$$$$$$$$$$ map[Content-Length:[20] Content-Type:[text/plain; charset=utf-8] Date:[Mon, 09 Dec 2024 03:14:39 GMT] Eagleeye-Traceid:[0c74ce6d96528cxxx2]] $$$$$$$$$$$$$$ -
(可選)配置SLS日誌採集接入,將應用日誌上傳至上述步驟綁定的Project和Logstore中。
ARMS預設不會採集應用日誌。
1 12-09 10:43:38 @ 10.36.45.83 cn-hangzhou.xxx.83 1733712219 k8s-group-c7ab2784bd...d17fa c7ab2784bd8a84020b05...d17fa xxx.101 ad-recommend-server registry.cn-hangzhou...erver insights xxx.83 cn-hangzhou.xxx.83 ad-recommend-server-...bc6xn 65c79c55-9e04-469f-9...9d636 _source_: stderr _time_: 2024-12-09T10:43:38.366744191+08:00 content: 2024/12/09 10:43:38 trace_id=cf6281bdde61f7xxx7dd span_id=7fc65xxx72e [grpc] SayHello message:"Hello Hello"