forked from TrueCloudLab/frostfs-node
[#93] Add gRPC Reflection service
Added gRPC Reflection service that can be enabled by settings `grpc.enable_reflect_service`. Read more about at https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md Signed-off-by: Evgeniy Kulikov <kim@nspcc.ru>
This commit is contained in:
parent
1332a6d3a8
commit
53f7b58130
2 changed files with 15 additions and 4 deletions
|
@ -52,6 +52,7 @@ const (
|
|||
// config keys for cfgGRPC
|
||||
cfgListenAddress = "grpc.endpoint"
|
||||
cfgMaxMsgSize = "grpc.maxmessagesize"
|
||||
cfgReflectService = "grpc.enable_reflect_service"
|
||||
|
||||
// config keys for cfgMorph
|
||||
cfgMorphRPCAddress = "morph.endpoint"
|
||||
|
@ -124,6 +125,8 @@ type cfgGRPC struct {
|
|||
maxChunkSize uint64
|
||||
|
||||
maxAddrAmount uint64
|
||||
|
||||
enableReflectService bool
|
||||
}
|
||||
|
||||
type cfgMorph struct {
|
||||
|
@ -236,6 +239,7 @@ func initCfg(path string) *cfg {
|
|||
cfgGRPC: cfgGRPC{
|
||||
maxChunkSize: maxChunkSize,
|
||||
maxAddrAmount: maxAddrAmount,
|
||||
enableReflectService: viperCfg.GetBool(cfgReflectService),
|
||||
},
|
||||
localAddr: netAddr,
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"net"
|
||||
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/reflection"
|
||||
)
|
||||
|
||||
func initGRPC(c *cfg) {
|
||||
|
@ -25,6 +26,12 @@ func serveGRPC(c *cfg) {
|
|||
c.wg.Done()
|
||||
}()
|
||||
|
||||
// read more about reflect service at
|
||||
// https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md
|
||||
if c.cfgGRPC.enableReflectService {
|
||||
reflection.Register(c.cfgGRPC.server)
|
||||
}
|
||||
|
||||
if err := c.cfgGRPC.server.Serve(c.cfgGRPC.listener); err != nil {
|
||||
fmt.Println("gRPC server error", err)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue