Skip to content

Commit 8420480

Browse files
sbin64afzal442
authored andcommitted
Refactor opentracing.Tracer interface
Signed-off-by: afzal442 <afzal442@gmail.com>
1 parent c582d89 commit 8420480

File tree

12 files changed

+104
-38
lines changed

12 files changed

+104
-38
lines changed

cmd/all-in-one/main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import (
4545
"github.com/jaegertracing/jaeger/internal/metrics/fork"
4646
"github.com/jaegertracing/jaeger/internal/metrics/jlibadapter"
4747
"github.com/jaegertracing/jaeger/pkg/config"
48+
"github.com/jaegertracing/jaeger/pkg/jtracer"
4849
"github.com/jaegertracing/jaeger/pkg/metrics"
4950
"github.com/jaegertracing/jaeger/pkg/tenancy"
5051
"github.com/jaegertracing/jaeger/pkg/version"
@@ -273,7 +274,8 @@ func startQuery(
273274
) *queryApp.Server {
274275
spanReader = storageMetrics.NewReadMetricsDecorator(spanReader, baseFactory.Namespace(metrics.NSOptions{Name: "query"}))
275276
qs := querysvc.NewQueryService(spanReader, depReader, *queryOpts)
276-
server, err := queryApp.NewServer(svc.Logger, qs, metricsQueryService, qOpts, tm, opentracing.GlobalTracer())
277+
jtracer := jtracer.OT(opentracing.GlobalTracer())
278+
server, err := queryApp.NewServer(svc.Logger, qs, metricsQueryService, qOpts, tm, jtracer)
277279
if err != nil {
278280
svc.Logger.Fatal("Could not start jaeger-query service", zap.Error(err))
279281
}

cmd/query/app/grpc_handler.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ import (
1919
"errors"
2020
"time"
2121

22-
"github.com/opentracing/opentracing-go"
2322
"go.uber.org/zap"
2423
"google.golang.org/grpc/codes"
2524
"google.golang.org/grpc/status"
2625

2726
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
2827
"github.com/jaegertracing/jaeger/model"
2928
_ "github.com/jaegertracing/jaeger/pkg/gogocodec" // force gogo codec registration
29+
"github.com/jaegertracing/jaeger/pkg/jtracer"
3030
"github.com/jaegertracing/jaeger/plugin/metrics/disabled"
3131
"github.com/jaegertracing/jaeger/proto-gen/api_v2"
3232
"github.com/jaegertracing/jaeger/proto-gen/api_v2/metrics"
@@ -53,14 +53,14 @@ type GRPCHandler struct {
5353
queryService *querysvc.QueryService
5454
metricsQueryService querysvc.MetricsQueryService
5555
logger *zap.Logger
56-
tracer opentracing.Tracer
56+
tracer jtracer.JTracer
5757
nowFn func() time.Time
5858
}
5959

6060
// GRPCHandlerOptions contains optional members of GRPCHandler.
6161
type GRPCHandlerOptions struct {
6262
Logger *zap.Logger
63-
Tracer opentracing.Tracer
63+
Tracer jtracer.JTracer
6464
NowFn func() time.Time
6565
}
6666

@@ -73,8 +73,8 @@ func NewGRPCHandler(queryService *querysvc.QueryService,
7373
options.Logger = zap.NewNop()
7474
}
7575

76-
if options.Tracer == nil {
77-
options.Tracer = opentracing.NoopTracer{}
76+
if options.Tracer.OT == nil {
77+
options.Tracer = jtracer.NoOp()
7878
}
7979

8080
if options.NowFn == nil {

cmd/query/app/grpc_handler_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"testing"
2424
"time"
2525

26-
"github.com/opentracing/opentracing-go"
2726
"github.com/stretchr/testify/assert"
2827
"github.com/stretchr/testify/mock"
2928
"github.com/stretchr/testify/require"
@@ -36,6 +35,7 @@ import (
3635

3736
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
3837
"github.com/jaegertracing/jaeger/model"
38+
"github.com/jaegertracing/jaeger/pkg/jtracer"
3939
"github.com/jaegertracing/jaeger/pkg/tenancy"
4040
"github.com/jaegertracing/jaeger/plugin/metrics/disabled"
4141
"github.com/jaegertracing/jaeger/proto-gen/api_v2"
@@ -145,7 +145,7 @@ type grpcClient struct {
145145
conn *grpc.ClientConn
146146
}
147147

148-
func newGRPCServer(t *testing.T, q *querysvc.QueryService, mq querysvc.MetricsQueryService, logger *zap.Logger, tracer opentracing.Tracer, tenancyMgr *tenancy.Manager) (*grpc.Server, net.Addr) {
148+
func newGRPCServer(t *testing.T, q *querysvc.QueryService, mq querysvc.MetricsQueryService, logger *zap.Logger, tracer jtracer.JTracer, tenancyMgr *tenancy.Manager) (*grpc.Server, net.Addr) {
149149
lis, _ := net.Listen("tcp", ":0")
150150
var grpcOpts []grpc.ServerOption
151151
if tenancyMgr.Enabled {
@@ -925,7 +925,7 @@ func initializeTenantedTestServerGRPCWithOptions(t *testing.T, tm *tenancy.Manag
925925
}
926926

927927
logger := zap.NewNop()
928-
tracer := opentracing.NoopTracer{}
928+
tracer := jtracer.NoOp()
929929

930930
server, addr := newGRPCServer(t, q, tqs.metricsQueryService, logger, tracer, tm)
931931

cmd/query/app/handler_options.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ package app
1818
import (
1919
"time"
2020

21-
"github.com/opentracing/opentracing-go"
2221
"go.uber.org/zap"
2322

2423
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
24+
"github.com/jaegertracing/jaeger/pkg/jtracer"
2525
)
2626

2727
// HandlerOption is a function that sets some option on the APIHandler
@@ -62,7 +62,7 @@ func (handlerOptions) QueryLookbackDuration(queryLookbackDuration time.Duration)
6262
}
6363

6464
// Tracer creates a HandlerOption that initializes OpenTracing tracer
65-
func (handlerOptions) Tracer(tracer opentracing.Tracer) HandlerOption {
65+
func (handlerOptions) Tracer(tracer jtracer.JTracer) HandlerOption {
6666
return func(apiHandler *APIHandler) {
6767
apiHandler.tracer = tracer
6868
}

cmd/query/app/http_handler.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ import (
2828
"github.com/gogo/protobuf/proto"
2929
"github.com/gorilla/mux"
3030
"github.com/opentracing-contrib/go-stdlib/nethttp"
31-
"github.com/opentracing/opentracing-go"
3231
"go.uber.org/zap"
3332

3433
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
3534
"github.com/jaegertracing/jaeger/model"
3635
uiconv "github.com/jaegertracing/jaeger/model/converter/json"
3736
ui "github.com/jaegertracing/jaeger/model/json"
37+
"github.com/jaegertracing/jaeger/pkg/jtracer"
3838
"github.com/jaegertracing/jaeger/pkg/tenancy"
3939
"github.com/jaegertracing/jaeger/plugin/metrics/disabled"
4040
"github.com/jaegertracing/jaeger/proto-gen/api_v2/metrics"
@@ -88,7 +88,7 @@ type APIHandler struct {
8888
basePath string
8989
apiPrefix string
9090
logger *zap.Logger
91-
tracer opentracing.Tracer
91+
tracer jtracer.JTracer
9292
}
9393

9494
// NewAPIHandler returns an APIHandler
@@ -111,8 +111,8 @@ func NewAPIHandler(queryService *querysvc.QueryService, tm *tenancy.Manager, opt
111111
if aH.logger == nil {
112112
aH.logger = zap.NewNop()
113113
}
114-
if aH.tracer == nil {
115-
aH.tracer = opentracing.NoopTracer{}
114+
if aH.tracer.OT == nil {
115+
aH.tracer = jtracer.NoOp()
116116
}
117117
return aH
118118
}
@@ -147,7 +147,7 @@ func (aH *APIHandler) handleFunc(
147147
handler = tenancy.ExtractTenantHTTPHandler(aH.tenancyMgr, handler)
148148
}
149149
traceMiddleware := nethttp.Middleware(
150-
aH.tracer,
150+
aH.tracer.OT,
151151
handler,
152152
nethttp.OperationNameFunc(func(r *http.Request) string {
153153
return route

cmd/query/app/http_handler_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import (
4343
"github.com/jaegertracing/jaeger/model"
4444
"github.com/jaegertracing/jaeger/model/adjuster"
4545
ui "github.com/jaegertracing/jaeger/model/json"
46+
"github.com/jaegertracing/jaeger/pkg/jtracer"
4647
"github.com/jaegertracing/jaeger/pkg/tenancy"
4748
"github.com/jaegertracing/jaeger/plugin/metrics/disabled"
4849
"github.com/jaegertracing/jaeger/proto-gen/api_v2/metrics"
@@ -304,9 +305,10 @@ func TestGetTrace(t *testing.T) {
304305
t.Run(testCase.suffix, func(t *testing.T) {
305306
reporter := jaeger.NewInMemoryReporter()
306307
jaegerTracer, jaegerCloser := jaeger.NewTracer("test", jaeger.NewConstSampler(true), reporter)
308+
jTracer := jtracer.OT(jaegerTracer)
307309
defer jaegerCloser.Close()
308310

309-
ts := initializeTestServer(HandlerOptions.Tracer(jaegerTracer))
311+
ts := initializeTestServer(HandlerOptions.Tracer(jTracer))
310312
defer ts.server.Close()
311313

312314
ts.spanReader.On("GetTrace", mock.AnythingOfType("*context.valueCtx"), model.NewTraceID(0, 0x123456abc)).

cmd/query/app/server.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"time"
2424

2525
"github.com/gorilla/handlers"
26-
"github.com/opentracing/opentracing-go"
2726
"github.com/soheilhy/cmux"
2827
"go.uber.org/zap"
2928
"go.uber.org/zap/zapcore"
@@ -37,6 +36,7 @@ import (
3736
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
3837
"github.com/jaegertracing/jaeger/pkg/bearertoken"
3938
"github.com/jaegertracing/jaeger/pkg/healthcheck"
39+
"github.com/jaegertracing/jaeger/pkg/jtracer"
4040
"github.com/jaegertracing/jaeger/pkg/netutils"
4141
"github.com/jaegertracing/jaeger/pkg/recoveryhandler"
4242
"github.com/jaegertracing/jaeger/pkg/tenancy"
@@ -51,7 +51,7 @@ type Server struct {
5151
querySvc *querysvc.QueryService
5252
queryOptions *QueryOptions
5353

54-
tracer opentracing.Tracer // TODO make part of flags.Service
54+
tracer jtracer.JTracer // TODO make part of flags.Service
5555

5656
conn net.Listener
5757
grpcConn net.Listener
@@ -65,7 +65,7 @@ type Server struct {
6565
}
6666

6767
// NewServer creates and initializes Server
68-
func NewServer(logger *zap.Logger, querySvc *querysvc.QueryService, metricsQuerySvc querysvc.MetricsQueryService, options *QueryOptions, tm *tenancy.Manager, tracer opentracing.Tracer) (*Server, error) {
68+
func NewServer(logger *zap.Logger, querySvc *querysvc.QueryService, metricsQuerySvc querysvc.MetricsQueryService, options *QueryOptions, tm *tenancy.Manager, tracer jtracer.JTracer) (*Server, error) {
6969
_, httpPort, err := net.SplitHostPort(options.HTTPHostPort)
7070
if err != nil {
7171
return nil, err
@@ -107,7 +107,7 @@ func (s Server) HealthCheckStatus() chan healthcheck.Status {
107107
return s.unavailableChannel
108108
}
109109

110-
func createGRPCServer(querySvc *querysvc.QueryService, metricsQuerySvc querysvc.MetricsQueryService, options *QueryOptions, tm *tenancy.Manager, logger *zap.Logger, tracer opentracing.Tracer) (*grpc.Server, error) {
110+
func createGRPCServer(querySvc *querysvc.QueryService, metricsQuerySvc querysvc.MetricsQueryService, options *QueryOptions, tm *tenancy.Manager, logger *zap.Logger, tracer jtracer.JTracer) (*grpc.Server, error) {
111111
var grpcOpts []grpc.ServerOption
112112

113113
if options.TLSGRPC.Enabled {
@@ -148,7 +148,7 @@ func createGRPCServer(querySvc *querysvc.QueryService, metricsQuerySvc querysvc.
148148
return server, nil
149149
}
150150

151-
func createHTTPServer(querySvc *querysvc.QueryService, metricsQuerySvc querysvc.MetricsQueryService, queryOpts *QueryOptions, tm *tenancy.Manager, tracer opentracing.Tracer, logger *zap.Logger) (*http.Server, context.CancelFunc, error) {
151+
func createHTTPServer(querySvc *querysvc.QueryService, metricsQuerySvc querysvc.MetricsQueryService, queryOpts *QueryOptions, tm *tenancy.Manager, tracer jtracer.JTracer, logger *zap.Logger) (*http.Server, context.CancelFunc, error) {
152152
apiHandlerOptions := []HandlerOption{
153153
HandlerOptions.Logger(logger),
154154
HandlerOptions.Tracer(tracer),

cmd/query/app/server_test.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"testing"
2525
"time"
2626

27-
"github.com/opentracing/opentracing-go"
2827
"github.com/stretchr/testify/assert"
2928
"github.com/stretchr/testify/mock"
3029
"github.com/stretchr/testify/require"
@@ -40,6 +39,7 @@ import (
4039
"github.com/jaegertracing/jaeger/model"
4140
"github.com/jaegertracing/jaeger/pkg/config/tlscfg"
4241
"github.com/jaegertracing/jaeger/pkg/healthcheck"
42+
"github.com/jaegertracing/jaeger/pkg/jtracer"
4343
"github.com/jaegertracing/jaeger/pkg/tenancy"
4444
"github.com/jaegertracing/jaeger/ports"
4545
"github.com/jaegertracing/jaeger/proto-gen/api_v2"
@@ -69,7 +69,7 @@ func TestCreateTLSServerSinglePortError(t *testing.T) {
6969

7070
_, err := NewServer(zap.NewNop(), &querysvc.QueryService{}, nil,
7171
&QueryOptions{HTTPHostPort: ":8080", GRPCHostPort: ":8080", TLSGRPC: tlsCfg, TLSHTTP: tlsCfg},
72-
tenancy.NewManager(&tenancy.Options{}), opentracing.NoopTracer{})
72+
tenancy.NewManager(&tenancy.Options{}), jtracer.NoOp())
7373
assert.NotNil(t, err)
7474
}
7575

@@ -83,7 +83,7 @@ func TestCreateTLSGrpcServerError(t *testing.T) {
8383

8484
_, err := NewServer(zap.NewNop(), &querysvc.QueryService{}, nil,
8585
&QueryOptions{HTTPHostPort: ":8080", GRPCHostPort: ":8081", TLSGRPC: tlsCfg},
86-
tenancy.NewManager(&tenancy.Options{}), opentracing.NoopTracer{})
86+
tenancy.NewManager(&tenancy.Options{}), jtracer.NoOp())
8787
assert.NotNil(t, err)
8888
}
8989

@@ -97,7 +97,7 @@ func TestCreateTLSHttpServerError(t *testing.T) {
9797

9898
_, err := NewServer(zap.NewNop(), &querysvc.QueryService{}, nil,
9999
&QueryOptions{HTTPHostPort: ":8080", GRPCHostPort: ":8081", TLSHTTP: tlsCfg},
100-
tenancy.NewManager(&tenancy.Options{}), opentracing.NoopTracer{})
100+
tenancy.NewManager(&tenancy.Options{}), jtracer.NoOp())
101101
assert.NotNil(t, err)
102102
}
103103

@@ -340,7 +340,7 @@ func TestServerHTTPTLS(t *testing.T) {
340340
querySvc := querysvc.NewQueryService(spanReader, dependencyReader, querysvc.QueryServiceOptions{})
341341
server, err := NewServer(flagsSvc.Logger, querySvc, nil,
342342
serverOptions, tenancy.NewManager(&tenancy.Options{}),
343-
opentracing.NoopTracer{})
343+
jtracer.NoOp())
344344
assert.Nil(t, err)
345345
assert.NoError(t, server.Start())
346346

@@ -500,7 +500,7 @@ func TestServerGRPCTLS(t *testing.T) {
500500
querySvc := querysvc.NewQueryService(spanReader, dependencyReader, querysvc.QueryServiceOptions{})
501501
server, err := NewServer(flagsSvc.Logger, querySvc, nil,
502502
serverOptions, tenancy.NewManager(&tenancy.Options{}),
503-
opentracing.NoopTracer{})
503+
jtracer.NoOp())
504504
assert.Nil(t, err)
505505
assert.NoError(t, server.Start())
506506

@@ -555,13 +555,13 @@ func TestServerBadHostPort(t *testing.T) {
555555
_, err := NewServer(zap.NewNop(), &querysvc.QueryService{}, nil,
556556
&QueryOptions{HTTPHostPort: "8080", GRPCHostPort: "127.0.0.1:8081", BearerTokenPropagation: true},
557557
tenancy.NewManager(&tenancy.Options{}),
558-
opentracing.NoopTracer{})
558+
jtracer.NoOp())
559559

560560
assert.NotNil(t, err)
561561
_, err = NewServer(zap.NewNop(), &querysvc.QueryService{}, nil,
562562
&QueryOptions{HTTPHostPort: "127.0.0.1:8081", GRPCHostPort: "9123", BearerTokenPropagation: true},
563563
tenancy.NewManager(&tenancy.Options{}),
564-
opentracing.NoopTracer{})
564+
jtracer.NoOp())
565565

566566
assert.NotNil(t, err)
567567
}
@@ -592,7 +592,7 @@ func TestServerInUseHostPort(t *testing.T) {
592592
BearerTokenPropagation: true,
593593
},
594594
tenancy.NewManager(&tenancy.Options{}),
595-
opentracing.NoopTracer{},
595+
jtracer.NoOp(),
596596
)
597597
assert.NoError(t, err)
598598

@@ -622,7 +622,7 @@ func TestServerSinglePort(t *testing.T) {
622622
server, err := NewServer(flagsSvc.Logger, querySvc, nil,
623623
&QueryOptions{GRPCHostPort: hostPort, HTTPHostPort: hostPort, BearerTokenPropagation: true},
624624
tenancy.NewManager(&tenancy.Options{}),
625-
opentracing.NoopTracer{})
625+
jtracer.NoOp())
626626
assert.Nil(t, err)
627627
assert.NoError(t, server.Start())
628628

@@ -668,7 +668,7 @@ func TestServerGracefulExit(t *testing.T) {
668668
hostPort := ports.PortToHostPort(ports.QueryAdminHTTP)
669669

670670
querySvc := &querysvc.QueryService{}
671-
tracer := opentracing.NoopTracer{}
671+
tracer := jtracer.NoOp()
672672

673673
server, err := NewServer(flagsSvc.Logger, querySvc, nil, &QueryOptions{GRPCHostPort: hostPort, HTTPHostPort: hostPort},
674674
tenancy.NewManager(&tenancy.Options{}), tracer)
@@ -697,7 +697,7 @@ func TestServerHandlesPortZero(t *testing.T) {
697697
flagsSvc.Logger = zap.New(zapCore)
698698

699699
querySvc := &querysvc.QueryService{}
700-
tracer := opentracing.NoopTracer{}
700+
tracer := jtracer.NoOp()
701701
server, err := NewServer(flagsSvc.Logger, querySvc, nil,
702702
&QueryOptions{GRPCHostPort: ":0", HTTPHostPort: ":0"},
703703
tenancy.NewManager(&tenancy.Options{}),
@@ -759,7 +759,7 @@ func TestServerHTTPTenancy(t *testing.T) {
759759
querySvc := querysvc.NewQueryService(spanReader, dependencyReader, querysvc.QueryServiceOptions{})
760760
server, err := NewServer(zap.NewNop(), querySvc, nil,
761761
serverOptions, tenancyMgr,
762-
opentracing.NoopTracer{})
762+
jtracer.NoOp())
763763
require.Nil(t, err)
764764
require.NoError(t, server.Start())
765765

cmd/query/app/token_propagation_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"testing"
2323

2424
"github.com/olivere/elastic"
25-
"github.com/opentracing/opentracing-go"
2625
"github.com/stretchr/testify/assert"
2726
"github.com/stretchr/testify/require"
2827
"go.uber.org/zap/zaptest"
@@ -31,6 +30,7 @@ import (
3130
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
3231
"github.com/jaegertracing/jaeger/pkg/bearertoken"
3332
"github.com/jaegertracing/jaeger/pkg/config"
33+
"github.com/jaegertracing/jaeger/pkg/jtracer"
3434
"github.com/jaegertracing/jaeger/pkg/metrics"
3535
"github.com/jaegertracing/jaeger/pkg/tenancy"
3636
"github.com/jaegertracing/jaeger/plugin/storage/es"
@@ -93,7 +93,7 @@ func runQueryService(t *testing.T, esURL string) *Server {
9393
server, err := NewServer(flagsSvc.Logger, querySvc, nil,
9494
&QueryOptions{GRPCHostPort: ":0", HTTPHostPort: ":0", BearerTokenPropagation: true},
9595
tenancy.NewManager(&tenancy.Options{}),
96-
opentracing.NoopTracer{},
96+
jtracer.NoOp(),
9797
)
9898
require.NoError(t, err)
9999
require.NoError(t, server.Start())

0 commit comments

Comments
 (0)