如何检查连接到GRPC服务器的客户端

pme*_*son 6 python-3.x grpc grpc-python

为了为我的GRPC服务器/客户端设置提供更好的调试信息,我试图找到一个API,grpc.server该API 可让我检查哪些客户端连接到服务器。

我发现的最有希望的问题是问题,它为如何在Java GRPC中执行此操作提供了一个起点。但是,Python GRPC实现中不存在Java API。

到目前为止,我使用中的context.peer()方法跟踪唯一的对等项grpc.ServicerContext。如果对等端在一段时间内未发送请求(超时设置为2秒),则认为客户端已断开连接。

我已经开始查看python-grpc源代码,但没有取得任何进展。

如果有人知道我可以使用python中的类似API,将不胜感激!即使是内部API也足以满足这些调试需求。

小智 2

我发现了一些有关channelz的更多文档和示例,其他人一直在建议它,它看起来就像你想要的。

这是一个拉取请求,给出了使用 Channelz 的示例。它仅使用 GetServer Channelz API,因此您必须对其进行调整。

这是一个使用channelz的单元测试,它测试可能与GetTopChannels API相关的API。