.. | ||
proto | ||
BUILD | ||
CHANGELOG.md | ||
config_test.go | ||
config.go | ||
const.go | ||
context_test.go | ||
context.go | ||
CONTRIBUTORS.md | ||
dapper_test.go | ||
dapper.go | ||
marshal_test.go | ||
marshal.go | ||
noop.go | ||
option.go | ||
OWNERS | ||
propagation.go | ||
README.md | ||
report_test.go | ||
report.go | ||
sample_test.go | ||
sample.go | ||
span_test.go | ||
span.go | ||
tag_test.go | ||
tag.go | ||
tracer.go | ||
util_test.go | ||
util.go |
go-common/net/trace
项目简介
- 提供Trace的接口规范
- 提供 trace 对Tracer接口的实现,供业务接入使用
编译环境
- 请只用golang v1.7.x以上版本编译执行。
依赖包
- 无
编译执行
- 启动接入示例 if conf.Conf.Common.Trace { trace.Init(conf.Conf.tracer) }
- 配置参考 [tracer] proto = "unixgram" addr = "/var/run/dapper-collect/dapper-collect.sock" family = "account-service"
测试
- 执行当前目录下所有测试文件,测试所有功能
特别说明
- trace 需要在conf.common配置family 和设置trace = true 应用才能接入
trace sdk serviceName, operationName, tag 规范
注: serviceName 及之前的 family 字段, operationName 及之前的 title 字段
serviceName 使用 APP_ID 可以通过 caster 上 APP_ID 环境变量获取
全局 Tag
名称 | 类型 | 备注 |
---|---|---|
hostname | string | 主机名 |
ip | string | caster上使用 POD_IP 环境变量,其他环境取第一个外网IP |
zone | string | zone caster 使用 ZONE 环境变量 e.g. sh |
region | string | region caster 使用 REGION 环境变量 e.g. region |
HTTP
HTTP server && client 共同 tag
名称 | 类型 | 备注 |
---|---|---|
http.method | string | GET、POST ... |
http.url | string | http 完整 URL,包含 query |
http.status_code | int | http 状态码 |
HTTP server
operationName 设置:
- 非 restful API 的应用使用 URL path 部分 例如 URL http://api.bilibili.co/x/internal/user/info?mid=123 operationName 为 /x/internal/user/info
- restful API 的使用路由定义,使用 {} 代替可变部分, 例如 URL http://api.bilibili.co/x/internal/user/info/123 其中 123 为 mid,则 operationName 设置为 /x/internal/user/info/{mid}
名称 | 类型 | 备注 |
---|---|---|
span.kind | string | 固定值 server |
component | string | 组件名称 e.g. library/net/http/baldemaster |
HTTP client
operationName 设置:
- 请求内部非 restful 的应用可以直接设置为 URL 的 path 部分
- 请求的三方的服务或者 restful API operationName 可以直接设置为 HTTP:{Method} e.g. HTTP:GET
名称 | 类型 | 备注 |
---|---|---|
span.kind | string | 固定值 client |
component | string | 组件名称 e.g. library/net/http 或者 net/http |
peer.service | string | 请求的服务APP_ID,例如请求 account-service 则应该设置为 main.account.account-service |
_peer.sign | string | URL 的 path 部分不包含 query |
注: peer.service 不知道可以不设置,_peer.sign 用于自定探测 peer.service
gRPC
gRPC server && client 共同 tag
gRPC server
operationName 设置:
名称 | 类型 | 备注 |
---|---|---|
span.kind | string | 固定值 server |
component | string | 固定值 gRPC |
gRPC client
operationName 设置:
名称 | 类型 | 备注 |
---|---|---|
span.kind | string | 固定值 client |
component | string | 固定值 gRPC |
peer.service | string | 请求的服务APP_ID,例如请求 account-service 则应该设置为 main.account.account-service |
_peer.sign | string | gRPC FullMethod |
goRPC
TODO
Memcache
TODO
Redis
TODO
MySQL
TODO
Databus
TODO
HBase
TODO
ElasticSearch
TODO