源码地址:https://github.com/davecheney/httpstat
httpstat主要统计dns解析、tcp连接、tls handshake(如果是https)、Server Processing、Content Transfer花费的时间。
httpstat是怎么统计这些过程话费的时间的呢?如下图:
准备好httptrace.ClientTrace trace,然后生成一个新的 ctx = context.WithValue(ctx, xxx, trace),再把ctx赋值给req.ctx
之后http请求中就会去调用trace结构体中的函数,如图:
最后,再统计那些过程的时间
使用:
>go get github.com/davecheney/httpstat
>httpstat https://example.com/
网友评论