mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
GRPC Server: Move reflection to a separate gRPC service (#55872)
This commit is contained in:
parent
e8ac52ba0f
commit
a281c26580
@ -51,6 +51,7 @@ func ProvideBackgroundServiceRegistry(
|
||||
_ serviceaccounts.Service, _ *guardian.Provider,
|
||||
_ *plugindashboardsservice.DashboardUpdater, _ *sanitizer.Provider,
|
||||
_ *grpcserver.HealthService,
|
||||
_ *grpcserver.ReflectionService,
|
||||
) *BackgroundServiceRegistry {
|
||||
return NewBackgroundServiceRegistry(
|
||||
httpServer,
|
||||
|
@ -344,6 +344,7 @@ var wireBasicSet = wire.NewSet(
|
||||
orgimpl.ProvideService,
|
||||
grpcserver.ProvideService,
|
||||
grpcserver.ProvideHealthService,
|
||||
grpcserver.ProvideReflectionService,
|
||||
teamimpl.ProvideService,
|
||||
tempuserimpl.ProvideService,
|
||||
loginattemptimpl.ProvideService,
|
||||
|
35
pkg/services/grpcserver/reflection.go
Normal file
35
pkg/services/grpcserver/reflection.go
Normal file
@ -0,0 +1,35 @@
|
||||
package grpcserver
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
|
||||
"google.golang.org/grpc/reflection"
|
||||
"google.golang.org/grpc/reflection/grpc_reflection_v1alpha"
|
||||
)
|
||||
|
||||
// ReflectionService implements the gRPC Server Reflection Protocol:
|
||||
// https://github.com/grpc/grpc/blob/master/doc/server-reflection.md
|
||||
type ReflectionService struct {
|
||||
cfg *setting.Cfg
|
||||
reflectionServer *reflectionServer
|
||||
}
|
||||
|
||||
type reflectionServer struct {
|
||||
grpc_reflection_v1alpha.ServerReflectionServer
|
||||
}
|
||||
|
||||
// AuthFuncOverride no auth for reflection service.
|
||||
func (s *reflectionServer) AuthFuncOverride(ctx context.Context, _ string) (context.Context, error) {
|
||||
return ctx, nil
|
||||
}
|
||||
|
||||
func ProvideReflectionService(cfg *setting.Cfg, grpcServerProvider Provider) (*ReflectionService, error) {
|
||||
re := &reflectionServer{reflection.NewServer(reflection.ServerOptions{Services: grpcServerProvider.GetServer()})}
|
||||
grpc_reflection_v1alpha.RegisterServerReflectionServer(grpcServerProvider.GetServer(), re)
|
||||
return &ReflectionService{
|
||||
cfg: cfg,
|
||||
reflectionServer: re,
|
||||
}, nil
|
||||
}
|
@ -16,7 +16,6 @@ import (
|
||||
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials"
|
||||
"google.golang.org/grpc/reflection"
|
||||
)
|
||||
|
||||
type Provider interface {
|
||||
@ -51,9 +50,7 @@ func ProvideService(cfg *setting.Cfg, apiKey apikey.Service, userService user.Se
|
||||
opts = append(opts, grpc.Creds(credentials.NewTLS(cfg.GRPCServerTLSConfig)))
|
||||
}
|
||||
|
||||
grpcServer := grpc.NewServer(opts...)
|
||||
reflection.Register(grpcServer)
|
||||
s.server = grpcServer
|
||||
s.server = grpc.NewServer(opts...)
|
||||
return s, nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user