埋点
Hertz 支持灵活启用基本埋点和细粒度埋点
埋点粒度
参数 | 介绍 | 启用策略 |
---|---|---|
LevelDisabled | 禁用埋点 | 无 tracer 时,默认启用 |
LevelBase | 仅启用基本埋点 | |
LevelDetailed | 启用基本埋点和细粒度埋点 | 有 tracer 时,默认启用 |
埋点粒度控制
package main
import (
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/cloudwego/hertz/pkg/common/tracer/stats"
)
func main() {
h := server.Default(server.WithTraceLevel(stats.LevelBase))
h.Spin()
}
埋点说明
基本埋点
HTTPStart
: 请求开始HTTPFinish
: 请求结束
细粒度埋点
ReadHeaderStart
:读取 header 开始ReadHeaderFinish
:读取 header 结束ReadBodyStart
:读取 body 开始ReadBodyFinish
:读取 body 结束ServerHandleStart
:业务 handler 开始ServerHandleFinish
:业务 handler 结束WriteStart
:写 response 开始WriteFinish
:写 response 结束
如果不希望记录这些信息,可以不注册任何 tracer 或者将埋点策略设置为
LevelDisabled
,则框架不会记录这些信息。将链路中某节点埋点策略设置为
LevelDisabled
或者不注册任何 tracer,会导致本节点 span/metrics 丢失,同时也会导致链路中断。
时序图
最后修改
July 29, 2024
: docs(hertz): unified `app.HandlerFunc` style (#1112) (451f476)