我遇到了Go语言的grpcdebug工具。我正在运行不安全的 grpc java 服务器和客户端(服务器在 localhost:50051 上提供服务)。我按照 “从源代码编译” 步骤进行安装并运行 health 命令
grpcdebug localhost:50051 health
,收到此错误消息 <Overall>: SERVICE_UNKNOWN
,对于 grpcdebug localhost:50051 channelz channels
命令,收到 2024/04/19 17:07:22 failed to fetch top channels: rpc error: code = Unimplemented desc = Method not found: grpc.channelz.v1.Channelz/GetTopChannels
错误消息。
问题:
code = 未实现 desc = 未找到方法:grpc.channelz.v1.Channelz/GetTopChannels
此错误表示您的服务器上没有可用的 Channelz 服务(或者该服务太旧且不支持 GetTopChannels;但这里不太可能出现这种情况)。
AdminInterface
API 添加它,如果您使用 xDS,它会添加 Channelz 以及 CSDS:
import io.grpc.services.AdminInterface;
final Server server = Grpc.newServerBuilderForPort(port, InsecureServerCredentials.create())
.addService(new HostnameGreeter(hostname))
.addServices(AdminInterface.getStandardServices()) // the key add for enabling grpcdebug
您也可以直接添加channelz:
import io.grpc.protobuf.services.ChannelzService;
final Server server = Grpc.newServerBuilderForPort(port, InsecureServerCredentials.create())
.addService(new HostnameGreeter(hostname))
.addServices(ChannelzService.newInstance(100)) // the key add for enabling grpcdebug