Categorygithub.com/YiuTerran/go-common/apm
modulepackage
1.0.1
Repository: https://github.com/yiuterran/go-common.git
Documentation: pkg.go.dev

# README

分布式链路追踪基础库

这里为常用的库增加了分布式链路追踪的注入,包括:

  1. 初始化全局trace provider
  2. gin对应的http服务,以及req库对应的http客户端,这些都比较常用

redis相关包如下(避免依赖污染):

package example

// HookRedis from github.com/go-redis/redis/extra/redisotel/v8
func HookRedis(conn redis.UniversalClient) {
	conn.AddHook(redisotel.NewTracingHook())
}

MQ一般通过header注入,可以参考gb28181里面的ExtractKafkaTraceCxtInjectKafkaTraceCxt

# Functions

No description provided by the author
No description provided by the author
ExtractPureContext 移除掉context的cancel和timeout等配置,仅保留trace信息.
ExtractW3CBinaryTraceParent 从w3c trace-context-binary 格式中解析trace parent [link](https://github.com/w3c/trace-context-binary/blob/571cafae56360d99c1f233e7df7d0009b44201fe/spec/20-binary-format.md).
ExtractW3CBinaryTraceState 从w3c trace-context-binary 格式中解析trace state 对应的字符串格式是k1=v1,k2=k2.
No description provided by the author
No description provided by the author
GrpcClientOpts 是grpc客户端dial时的注入参数.
GrpcServerOpts 是GRPC服务端创建时注入的参数 在服务端函数里可以根据需求创建span.
No description provided by the author
InitProvider 初始化并返回provider.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
NewSpanContextFromParent 通过已有的traceId和父spanId来创建一个spanContext.
No description provided by the author
SetReqClientTracer 为req的http客户端添加tracer.
ToW3CBinary 序列化成w3c二进制.
No description provided by the author

# Constants

No description provided by the author
* * @author tryao * @date 2022/12/07 16:52 **/.
* * @author tryao * @date 2022/12/07 16:52 **/.

# Structs

No description provided by the author