埋点粒度
Kitex 支持灵活启用基本埋点和细粒度埋点。
埋点粒度:
- LevelDisabled 禁用埋点
- LevelBase 仅启用基本埋点
- LevelDetailed 启用基本埋点和细粒度埋点
埋点策略 & 埋点粒度控制
默认埋点策略:
- 无 tracer 时,默认 LevelDisabled
- 有 tracer 时,默认 LevelDetailed
客户端埋点粒度控制:
import "github.com/cloudwego/kitex/client"
import "github.com/cloudwego/kitex/pkg/stats"
...
baseStats := client.WithStatsLevel(stats.LevelBase)
client, err := echo.NewClient("echo", baseStats)
if err != nil {
log.Fatal(err)
}
服务端埋点粒度控制:
import "github.com/cloudwego/kitex/server"
import "github.com/cloudwego/kitex/pkg/stats"
...
baseStats := server.WithStatsLevel(stats.LevelBase)
svr, err := echo.NewServer(baseStats)
if err := svr.Run(); err != nil {
log.Println("server stopped with error:", err)
} else {
log.Println("server stopped")
}
埋点说明
基本埋点:
- RPCStart,(客户端 / 服务端)RPC 调用开始
- RPCFinish,(客户端 / 服务端)RPC 调用结束
细粒度埋点(客户端):
- ClientConnStart,连接建立开始
- ClientConnFinish,连接建立结束
- WriteStart,请求发送(含编码)开始
- WriteFinish,请求发送(含编码)结束
- ReadStart,响应接收(含解码)开始
- WaitReadStart,响应二进制读取开始(仅适用于
Fast Codec
) - WaitReadFinish,响应二进制读取完毕(仅适用于
Fast Codec
) - ReadFinish,响应接收(含解码)完毕
细粒度埋点(服务端):
- ReadStart,请求接收(含解码)开始
- WaitReadStart,请求二进制读取开始(仅适用于
Fast Codec
) - WaitReadFinish,请求二进制读取完毕(仅适用于
Fast Codec
) - ReadFinish,请求接收(含解码)完毕
- ServerHandleStart,handler 处理开始
- ServerHandleFinish,handler 处理完毕
- WriteStart,响应发送(含编码)开始
- WriteFinish,响应发送(含编码)结束
时序图:
客户端埋点时序图
服务端埋点时序图
最后修改
July 5, 2023
: Update request.md (9938889)