Golang应用业务日志关联调用链TraceId

您可以在Golang应用的业务日志中关联调用链的TraceId信息,从而在应用出现问题时,能够通过调用链的TraceId快速关联到业务日志,及时定位、分析并解决问题。

前提条件

  • 您已将应用通过Golang探针编译并部署上线。

  • 已通过日志服务SLS完成日志采集,具体操作,请参见数据采集概述

背景信息

ARMSGolang微服务的业务日志中关联调用链TraceId的功能基于对日志框架的埋点,目前支持的日志框架如下:

组件

仓库地址

低版本

高版本

Zerolog

https://github.com/rs/zerolog

v1.10.0

v1.33.0

Zap

https://github.com/uber-go/zap

v1.20.0

v1.27.0

Logrus

https://github.com/sirupsen/logrus

v1.5.0

v1.9.3

Log

https://pkg.go.dev/log

v1.18

v1.23

Slog

https://pkg.go.dev/log/slog

v1.18

v1.23

开启关联业务日志与TraceId开关

  1. 登录ARMS控制台,在左侧导航栏选择应用监控 > 应用列表

  2. 应用列表页面顶部选择目标地域,然后单击目标应用名称。

    说明

    语言列的图标含义如下:

    Java图标:接入应用监控的Java应用。

    image:接入应用监控的Golang应用。

    image:接入应用监控的Python应用。

    -:接入可观测链路 OpenTelemetry 版的应用。

  3. 在上方导航栏选择应用配置 > 自定义配置

  4. 自定义配置页签的应用日志关联配置区域,选择日志源为日志服务SLS,打开关联业务日志与TraceId开关,选择日志服务所在地域,然后绑定ProjectLogstore。

    image.png

  5. 如果应用的业务日志中成功打印出TraceId信息,则说明业务日志关联调用链的TraceId关联成功,如下图所示。2024-12-17_10-00-08

  6. (可选)配置SLS日志采集接入,将应用日志上传至上述步骤绑定的ProjectLogstore中。

    ARMS默认不会采集应用日志。

    2024-12-17_10-43-30