Skip to content

Commit 5603b35

Browse files
authored
feat: manager add grpc jaeger (#738)
Signed-off-by: Gaius <[email protected]>
1 parent 098d7c5 commit 5603b35

2 files changed

Lines changed: 27 additions & 19 deletions

File tree

manager/manager.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import (
3333
"d7y.io/dragonfly/v2/manager/service"
3434
"d7y.io/dragonfly/v2/pkg/rpc"
3535
grpc_manager_server "d7y.io/dragonfly/v2/pkg/rpc/manager/server"
36-
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
3736
"google.golang.org/grpc"
3837
)
3938

@@ -104,11 +103,11 @@ func New(cfg *config.Config) (*Server, error) {
104103

105104
// Initialize GRPC server
106105
grpcService := service.NewGRPC(db, cache, searcher)
107-
var opts []grpc.ServerOption
106+
var enableJaeger bool
108107
if cfg.Options.Telemetry.Jaeger != "" {
109-
opts = append(opts, grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()), grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()))
108+
enableJaeger = true
110109
}
111-
grpcServer := grpc_manager_server.New(grpcService, opts...)
110+
grpcServer := grpc_manager_server.New(grpcService, enableJaeger)
112111
s.grpcServer = grpcServer
113112

114113
// Initialize prometheus

pkg/rpc/manager/server/server.go

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,22 @@ import (
2727
grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery"
2828
grpc_validator "github.com/grpc-ecosystem/go-grpc-middleware/validator"
2929
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
30+
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
3031
"google.golang.org/grpc"
3132
)
3233

33-
var defaultServerOptions = []grpc.ServerOption{
34-
grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(
35-
grpc_validator.StreamServerInterceptor(),
36-
grpc_recovery.StreamServerInterceptor(),
37-
grpc_prometheus.StreamServerInterceptor,
38-
grpc_zap.StreamServerInterceptor(logger.GrpcLogger.Desugar()),
39-
)),
40-
grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(
41-
grpc_validator.UnaryServerInterceptor(),
42-
grpc_recovery.UnaryServerInterceptor(),
43-
grpc_prometheus.UnaryServerInterceptor,
44-
grpc_zap.UnaryServerInterceptor(logger.GrpcLogger.Desugar()),
45-
)),
34+
var defaultStreamMiddleWares = []grpc.StreamServerInterceptor{
35+
grpc_validator.StreamServerInterceptor(),
36+
grpc_recovery.StreamServerInterceptor(),
37+
grpc_prometheus.StreamServerInterceptor,
38+
grpc_zap.StreamServerInterceptor(logger.GrpcLogger.Desugar()),
39+
}
40+
41+
var defaultUnaryMiddleWares = []grpc.UnaryServerInterceptor{
42+
grpc_validator.UnaryServerInterceptor(),
43+
grpc_recovery.UnaryServerInterceptor(),
44+
grpc_prometheus.UnaryServerInterceptor,
45+
grpc_zap.UnaryServerInterceptor(logger.GrpcLogger.Desugar()),
4646
}
4747

4848
// ManagerServer is the server API for Manager service.
@@ -66,8 +66,17 @@ type proxy struct {
6666
manager.UnimplementedManagerServer
6767
}
6868

69-
func New(managerServer ManagerServer, opts ...grpc.ServerOption) *grpc.Server {
70-
grpcServer := grpc.NewServer(append(defaultServerOptions, opts...)...)
69+
func New(managerServer ManagerServer, jaeger bool, opts ...grpc.ServerOption) *grpc.Server {
70+
if jaeger {
71+
defaultStreamMiddleWares = append(defaultStreamMiddleWares, otelgrpc.StreamServerInterceptor())
72+
defaultUnaryMiddleWares = append(defaultUnaryMiddleWares, otelgrpc.UnaryServerInterceptor())
73+
}
74+
75+
grpcServer := grpc.NewServer(append([]grpc.ServerOption{
76+
grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(defaultStreamMiddleWares...)),
77+
grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(defaultUnaryMiddleWares...)),
78+
}, opts...)...)
79+
7180
manager.RegisterManagerServer(grpcServer, &proxy{server: managerServer})
7281
return grpcServer
7382
}

0 commit comments

Comments
 (0)