Skip to content

Commit

Permalink
Restore NewGRPCHandler method (#4083)
Browse files Browse the repository at this point in the history
  • Loading branch information
vprithvi authored Apr 8, 2023
1 parent 351982a commit 12e44fa
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 14 deletions.
33 changes: 33 additions & 0 deletions cmd/query/app/grpc_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,39 @@ type GRPCHandler struct {
nowFn func() time.Time
}

// GRPCHandlerOptions contains optional members of GRPCHandler.
type GRPCHandlerOptions struct {
Logger *zap.Logger
Tracer opentracing.Tracer
NowFn func() time.Time
}

// NewGRPCHandler returns a GRPCHandler.
func NewGRPCHandler(queryService *querysvc.QueryService,
metricsQueryService querysvc.MetricsQueryService,
options GRPCHandlerOptions,
) *GRPCHandler {
if options.Logger == nil {
options.Logger = zap.NewNop()
}

if options.Tracer == nil {
options.Tracer = opentracing.NoopTracer{}
}

if options.NowFn == nil {
options.NowFn = time.Now
}

return &GRPCHandler{
queryService: queryService,
metricsQueryService: metricsQueryService,
logger: options.Logger,
tracer: options.Tracer,
nowFn: options.NowFn,
}
}

var _ api_v2.QueryServiceServer = (*GRPCHandler)(nil)

// GetTrace is the gRPC handler to fetch traces based on trace-id.
Expand Down
28 changes: 21 additions & 7 deletions cmd/query/app/grpc_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,13 @@ func newGRPCServer(t *testing.T, q *querysvc.QueryService, mq querysvc.MetricsQu
)
}
grpcServer := grpc.NewServer(grpcOpts...)
grpcHandler := &GRPCHandler{
queryService: q,
metricsQueryService: mq,
logger: logger,
tracer: tracer,
nowFn: func() time.Time {
grpcHandler := NewGRPCHandler(q, mq, GRPCHandlerOptions{
Logger: logger,
Tracer: tracer,
NowFn: func() time.Time {
return now
},
}
})
api_v2.RegisterQueryServiceServer(grpcServer, grpcHandler)
metrics.RegisterMetricsQueryServiceServer(grpcServer, grpcHandler)

Expand Down Expand Up @@ -1168,3 +1166,19 @@ func TestTenancyContextFlowGRPC(t *testing.T) {
server.spanReader.AssertExpectations(t)
})
}

func TestNewGRPCHandlerWithEmptyOptions(t *testing.T) {
disabledReader, err := disabled.NewMetricsReader()
require.NoError(t, err)

q := querysvc.NewQueryService(
&spanstoremocks.Reader{},
&depsmocks.Reader{},
querysvc.QueryServiceOptions{})

handler := NewGRPCHandler(q, disabledReader, GRPCHandlerOptions{})

assert.NotNil(t, handler.logger)
assert.NotNil(t, handler.tracer)
assert.NotNil(t, handler.nowFn)
}
11 changes: 4 additions & 7 deletions cmd/query/app/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,10 @@ func createGRPCServer(querySvc *querysvc.QueryService, metricsQuerySvc querysvc.
server := grpc.NewServer(grpcOpts...)
reflection.Register(server)

handler := &GRPCHandler{
queryService: querySvc,
metricsQueryService: metricsQuerySvc,
logger: logger,
tracer: tracer,
nowFn: time.Now,
}
handler := NewGRPCHandler(querySvc, metricsQuerySvc, GRPCHandlerOptions{
Logger: logger,
Tracer: tracer,
})
healthServer := health.NewServer()

api_v2.RegisterQueryServiceServer(server, handler)
Expand Down

0 comments on commit 12e44fa

Please sign in to comment.