https://grpc.io/blog/a-short-introduction-to-channelz/
Channelz is a tool that provides comprehensive runtime info about connections at different levels in gRPC. It is designed to help debug live programs, which may be suffering from network, performance, configuration issues, etc.
Channelz是一个工具,可提供有关gRPC中不同级别的连接的全面运行时信息。它旨在帮助调试可能受到网络,性能,配置问题等困扰的实时程序 。gRFC提供有关channelz设计的详细说明,并且是跨语言的所有channelz实现的规范参考。本博客的目的是使读者熟悉channelz服务以及如何使用它解决调试问题。这篇文章的上下文是在 gRPC-Go中设置的,但总体思路应适用于多种语言。在撰写本文时,channelz可用于 gRPC-Go和 gRPC-Java。支持 C ++ 包装语言即将推出。
让我们通过一个简单的示例来学习channelz,该示例使用channelz来帮助调试问题。的 HelloWorld的 我们的仓库中的示例进行了稍微修改以设置越野车场景。您可以在此处找到完整的源代码: 客户端, 服务器。
客户端设置: 客户端将使100个SayHello RPC到达指定的目标,并使用循环策略负载均衡工作负载。每个呼叫都有150毫秒的超时时间。记录RPC响应和错误是为了进行调试。
运行该程序,我们在日志中注意到存在间歇性错误,错误代码为DeadlineExceeded,如图1所示。
但是,没有什么原因导致超出期限的错误,并且存在很多可能性:
网络问题,例如:连接丢失
代理问题,例如:中间的请求/响应被丢弃
服务器问题,例如:请求丢失或响应缓慢
https://www.cnblogs.com/a00ium/p/14158585.html
https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md#grpc-cli
https://github.com/fullstorydev/grpcurl