埋點(diǎn)粒度
埋點(diǎn)粒度:
- LevelDisabled 禁用埋點(diǎn)
- LevelBase 僅啟用基本埋點(diǎn)
- LevelDetailed 啟用基本埋點(diǎn)和細(xì)粒度埋點(diǎn)
默認(rèn)埋點(diǎn)策略:
- 無(wú) tracer 時(shí),默認(rèn) LevelDisabled
- 有 tracer 時(shí),默認(rèn) LevelDetailed
客戶端埋點(diǎn)粒度控制:
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)
}
服務(wù)端埋點(diǎn)粒度控制:
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")
}
埋點(diǎn)說(shuō)明
基本埋點(diǎn):
- RPCStart,(客戶端 / 服務(wù)端)RPC 調(diào)用開始
- RPCFinish,(客戶端 / 服務(wù)端)RPC 調(diào)用結(jié)束
細(xì)粒度埋點(diǎn)(客戶端):
- ClientConnStart,連接建立開始
- ClientConnFinish,連接建立結(jié)束
- WriteStart,請(qǐng)求發(fā)送(含編碼)開始
- WriteFinish,請(qǐng)求發(fā)送(含編碼)結(jié)束
- ReadStart,響應(yīng)接收(含解碼)開始
- WaitReadStart,響應(yīng)二進(jìn)制讀取開始(僅適用于 Fast Codec)
- WaitReadFinish,響應(yīng)二進(jìn)制讀取完畢(僅適用于 Fast Codec)
- ReadFinish,響應(yīng)接收(含解碼)完畢
細(xì)粒度埋點(diǎn)(服務(wù)端):
- ReadStart,請(qǐng)求接收(含解碼)開始
- WaitReadStart,請(qǐng)求二進(jìn)制讀取開始(僅適用于 Fast Codec)
- WaitReadFinish,請(qǐng)求二進(jìn)制讀取完畢(僅適用于 Fast Codec)
- ReadFinish,請(qǐng)求接收(含解碼)完畢
- ServerHandleStart,handler 處理開始
- ServerHandleFinish,handler 處理完畢
- WriteStart,響應(yīng)發(fā)送(含編碼)開始
WriteFinish,響應(yīng)發(fā)送(含編碼)結(jié)束
時(shí)序圖:
客戶端埋點(diǎn)時(shí)序圖

服務(wù)端埋點(diǎn)時(shí)序圖

更多建議: