博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Golang gRPC实践 连载六 内置Trace
阅读量:6305 次
发布时间:2019-06-22

本文共 1732 字,大约阅读时间需要 5 分钟。

hot3.png

内置Trace

grpc默认提供了客户端和服务端的trace日志,可惜没有提供自定义接口,当前只能查看基本的事件日志和请求日志,对于基本的请求状态查看也是很有帮助的,客户端与服务端基本一致,这里已服务端开启trace为例,修改hello项目的server代码:

server/main.go

package mainimport (    "net"    "net/http"    pb "git.vodjk.com/go-grpc/example/proto" // 引入编译生成的包    "golang.org/x/net/context"    "golang.org/x/net/trace"  // 引入trace包    "google.golang.org/grpc"    "google.golang.org/grpc/grpclog")const (    // Address gRPC服务地址    Address = "127.0.0.1:50052")// 定义helloService并实现约定的接口type helloService struct{}// HelloService ...var HelloService = helloService{}func (h helloService) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {    resp := new(pb.HelloReply)    resp.Message = "Hello " + in.Name + "."    return resp, nil}func main() {    listen, err := net.Listen("tcp", Address)    if err != nil {        grpclog.Fatalf("failed to listen: %v", err)    }    // 实例化grpc Server    s := grpc.NewServer()    // 注册HelloService    pb.RegisterHelloServer(s, HelloService)    // 开启trace    go startTrace()    grpclog.Println("Listen on " + Address)    s.Serve(listen)}func startTrace() {    trace.AuthRequest = func(req *http.Request) (any, sensitive bool) {        return true, true    }    go http.ListenAndServe(":50051", nil)    grpclog.Println("Trace listen on 50051")}

这里我们开启一个http服务监听50051端口,用来查看grpc请求的trace信息

运行:

go run main.goListen on 127.0.0.1:50052                                                       Trace listen on 50051// 进入client目录执行一次客户端请求

服务端事件查看

访问:localhost:50051/debug/events,结果如图:

bVH54y?w=1956&h=627

可以看到服务端注册的服务和服务正常启动的事件信息,默认trace中只有这一个事件

请求日志信息查看

访问:localhost:50051/debug/requests,结果如图:

bVH54B?w=1768&h=715

这里可以显示最近的请求状态,包括请求的服务、参数、耗时、响应,对于简单的状态查看还是很方便的,默认值显示最近10条记录,不可以修改。

参考

本系列示例代码

转载于:https://my.oschina.net/ifraincoat/blog/879548

你可能感兴趣的文章
IE8调用window.open导出EXCEL文件题目
查看>>
python之 列表常用方法
查看>>
vue-cli脚手架的搭建
查看>>
在网页中加入百度搜索框实例代码
查看>>
在Flex中动态设置icon属性
查看>>
采集音频和摄像头视频并实时H264编码及AAC编码
查看>>
3星|《三联生活周刊》2017年39期:英国皇家助产士学会于2017年5月悄悄修改了政策,不再鼓励孕妇自然分娩了...
查看>>
linux查看命令是由哪个软件包提供的
查看>>
高级Linux工程师常用软件清单
查看>>
堆排序算法
查看>>
folders.cgi占用系统大量资源
查看>>
路由器ospf动态路由配置
查看>>
zabbix监控安装与配置
查看>>
python 异常
查看>>
last_insert_id()获取mysql最后一条记录ID
查看>>
可执行程序找不到lib库地址的处理方法
查看>>
bash数组
查看>>
Richard M. Stallman 给《自由开源软件本地化》写的前言
查看>>
oracle数据库密码过期报错
查看>>
修改mysql数据库的默认编码方式 .
查看>>