Open-Telemetry的第三方软件包合集 包括了多个社区中常用库的OpenTelemetry支持。随着 OpenTelemetry的不断迭代,相信整个链路追踪的生态也会越发完善。

zap日志库是业务开发中常用的日志库,要在记录日志中记录 traceID,可以直接使用 uptrace 提供的otelzap

下载依赖

go get github.com/uptrace/opentelemetry-go-extra/otelzap

使用方法

package main

import (
	"context"

	"github.com/uptrace/opentelemetry-go-extra/otelzap"
	"go.uber.org/zap"
)

// zap 链路追踪

func main() {
	// 创建 logger
	logger := otelzap.New(
		zap.NewExample(),                    // zap实例,按需配置
		otelzap.WithMinLevel(zap.InfoLevel), // 指定日志级别
		otelzap.WithTraceIDField(true),      // 在日志中记录 traceID
	)
	defer logger.Sync()

	// 替换全局的logger
	undo := otelzap.ReplaceGlobals(logger)
	defer undo()

	otelzap.L().Info("replaced zap's global loggers")        // 记录日志
	otelzap.Ctx(context.TODO()).Info("... and with context") // 从ctx中获取traceID并记录
}

其他常用库的OTel相关内容


扫码关注微信公众号