2 Star 0 Fork 0

toniz / trace

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

封装多种trace协议

目的是让GO记录trace日志变得和使用glog一样简单高效。

  • 支持OpenTelemetry协议。封装了OpenTelemetry-Go.
  • 支持zipkin协议。

协议切换

  • 默认使用:OpenTelemetry协议
  • 如果需要切换协议,如切换到zipkin协议, 则在main文件头加上如下引用即可:
_ https://github.com/toniz/trace/zipkin

使用步骤(以sls-demo为例子):

  1. 引入
improt tracelog "github.com/toniz/trace"
  1. 初始化trace, 指定日志写到哪里:
err := tracelog.SetGrpcExport(ctx, "trace_config.json", "OrderService", "v0.3.10")
  1. 对http服务设置hook。这个http请求会被trace捕捉并上报
http.Handle("/hello", tracelog.NewHandler(http.HandlerFunc(helloHandler), "Hello"))
  1. 在被调用的函数里面创建span,添加该函数关键属性或事件(可选):
// 追踪的函数需要带上context来传递上下文信息。
func call_level_3(ctx context.Context) {
    // 继承函数调用的context, 创建子的span
    ctxc, _ := tracelog.NewSpan(ctx, "call_level_3", tracelog.OtelSpanKindProducer)

    // 添加关键属性:可选
    tracelog.AddSpanAttribute(ctxc, map[string]string{"user_id": "1000098"})

    // 添加关键事件:可选
    tracelog.AddSpanEvent(ctxc, "UPDATE", map[string]string{"a":"1", "b":"2", "c":"3"})

    // 设置span状态, 错误就调用 tracelog.SetSpanError(ctxc, err)
    tracelog.SetSpanOK(ctxc, "Successssssss.")
    // 标记该子span结束
    tracelog.EndSpan(ctxc)

    return
}

其它文档:

api文档
阿里云SLS服务接入例子
阿里云链路追踪服务接入例子

etc..

空文件

简介

目的是让GO记录trace日志变得和使用glog一样简单高效。 展开 收起
Go
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/toniz/trace.git
git@gitee.com:toniz/trace.git
toniz
trace
trace
master

搜索帮助