Upgrade to Pro — share decks privately, control downloads, hide ads and more …

go-grpc-channelz: a Go based UI for gRPC's chan...

Ran Tavory
November 17, 2019

go-grpc-channelz: a Go based UI for gRPC's channelz

Project here: https://github.com/rantav/go-grpc-channelz

go-grpc-channelz is an open source project in Go providing observability into gRPC’s current state of connections (channels).

gRPC is a robust and highly scalable RPC system. It abstracts actual socket connections through the channel abstraction. Channels represent load-balanced, possibly auto-discovered remote servers. Gaining visibility into the current state of gRPC channels is priceless. Think netstat for your gRPC server/clien. Channelz is a gRPC spec exposing the inner state of gRPC channels. go-grpc-channelz, written in go, is a pluggable UI which uses the channelz gRPC API to query and display the current state of gRPC connections.

Ran Tavory

November 17, 2019

Transcript

24 slides
  1. Channelz service // Channelz is a service exposed by gRPC

    servers that provides detailed debug // information. service Channelz { // Gets all root channels (i.e. channels the application has directly // created). This does not include subchannels nor non-top level channels. rpc GetTopChannels(GetTopChannelsRequest) returns (GetTopChannelsResponse); // Gets all servers that exist in the process. rpc GetServers(GetServersRequest) returns (GetServersResponse); // Returns a single Server, or else a NOT_FOUND code. rpc GetServer(GetServerRequest) returns (GetServerResponse); // Gets all server sockets that exist in the process. rpc GetServerSockets(GetServerSocketsRequest) returns (GetServerSocketsResponse); // Returns a single Channel, or else a NOT_FOUND code. rpc GetChannel(GetChannelRequest) returns (GetChannelResponse); // Returns a single Subchannel, or else a NOT_FOUND code. rpc GetSubchannel(GetSubchannelRequest) returns (GetSubchannelResponse); // Returns a single Socket or else a NOT_FOUND code. rpc GetSocket(GetSocketRequest) returns (GetSocketResponse); }

More Decks by Ran Tavory

Other Decks in Programming