您可以在Golang应用的业务日志中关联调用链的TraceId信息,从而在应用出现问题时,能够通过调用链的TraceId快速关联到业务日志,及时定位、分析并解决问题。
前提条件
-
您已将应用通过Golang探针编译并部署上线。
-
已通过日志服务SLS完成日志采集,具体操作,请参见数据采集概述。
背景信息
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应用。-:接入可观测链路 OpenTelemetry 版的应用。
-
在上方导航栏选择。
-
在自定义配置页签的应用日志关联配置区域,选择日志源为日志服务SLS,打开关联业务日志与TraceId开关,选择日志服务所在地域,然后绑定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"
该文章对您有帮助吗?