Skip to content

Commit 8841860

Browse files
mahadzaryab1amol-verma-allen
authored andcommitted
[refactor] Consolidate v1/v2 reader factory adapter functionality (jaegertracing#7019)
## Which problem is this PR solving? - Towards jaegertracing#6979 ## Description of the changes - This PR consolidates the v1/v2 reader adapter functionality by combining `GetV1Reader` with `NewSpanReader` ## How was this change tested? - CI ## Checklist - [x] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md - [x] I have signed all commits - [x] I have added unit tests for the new functionality - [x] I have run lint and test steps successfully - for `jaeger`: `make lint test` - for `jaeger-ui`: `npm run lint` and `npm run test` --------- Signed-off-by: Mahad Zaryab <[email protected]>
1 parent 4f79e9c commit 8841860

File tree

7 files changed

+51
-53
lines changed

7 files changed

+51
-53
lines changed

cmd/jaeger/internal/extension/jaegerquery/server.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,7 @@ func getV1Adapters(
185185
reader tracestore.Reader,
186186
writer tracestore.Writer,
187187
) (spanstore.Reader, spanstore.Writer) {
188-
v1Reader, ok := v1adapter.GetV1Reader(reader)
189-
if !ok {
190-
v1Reader = v1adapter.NewSpanReader(reader)
191-
}
192-
188+
v1Reader := v1adapter.GetV1Reader(reader)
193189
v1Writer, ok := v1adapter.GetV1Writer(writer)
194190
if !ok {
195191
v1Writer = v1adapter.NewSpanWriter(writer)

cmd/jaeger/internal/extension/jaegerquery/server_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ func TestGetV1Adapters(t *testing.T) {
356356
name: "native tracestore.Reader and tracestore.Writer",
357357
reader: &tracestoremocks.Reader{},
358358
writer: &tracestoremocks.Writer{},
359-
expectedReader: v1adapter.NewSpanReader(&tracestoremocks.Reader{}),
359+
expectedReader: &v1adapter.SpanReader{},
360360
expectedWriter: v1adapter.NewSpanWriter(&tracestoremocks.Writer{}),
361361
},
362362
{
@@ -371,7 +371,7 @@ func TestGetV1Adapters(t *testing.T) {
371371
for _, test := range tests {
372372
t.Run(test.name, func(t *testing.T) {
373373
gotReader, gotWriter := getV1Adapters(test.reader, test.writer)
374-
require.Equal(t, test.expectedReader, gotReader)
374+
require.IsType(t, test.expectedReader, gotReader)
375375
require.Equal(t, test.expectedWriter, gotWriter)
376376
})
377377
}

cmd/query/app/querysvc/query_service.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,7 @@ type TraceQueryParameters struct {
5555

5656
// NewQueryService returns a new QueryService.
5757
func NewQueryService(traceReader tracestore.Reader, dependencyReader depstore.Reader, options QueryServiceOptions) *QueryService {
58-
spanReader, ok := v1adapter.GetV1Reader(traceReader)
59-
if !ok {
60-
// if the spanstore.Reader is not available, downgrade the native tracestore.Reader to
61-
// a spanstore.Reader
62-
spanReader = v1adapter.NewSpanReader(traceReader)
63-
}
58+
spanReader := v1adapter.GetV1Reader(traceReader)
6459
qsvc := &QueryService{
6560
spanReader: spanReader,
6661
dependencyReader: dependencyReader,

internal/storage/v2/v1adapter/spanreader.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,6 @@ type SpanReader struct {
2323
traceReader tracestore.Reader
2424
}
2525

26-
func NewSpanReader(traceReader tracestore.Reader) *SpanReader {
27-
return &SpanReader{
28-
traceReader: traceReader,
29-
}
30-
}
31-
3226
func (sr *SpanReader) GetTrace(ctx context.Context, query spanstore.GetTraceParameters) (*model.Trace, error) {
3327
getTracesIter := sr.traceReader.GetTraces(ctx, tracestore.GetTraceParams{
3428
TraceID: FromV1TraceID(query.TraceID),

internal/storage/v2/v1adapter/spanreader_test.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ func TestSpanReader_GetTrace(t *testing.T) {
122122
yield(test.traces, test.err)
123123
})).Once()
124124

125-
sr := NewSpanReader(&tr)
125+
sr := SpanReader{
126+
traceReader: &tr,
127+
}
126128
trace, err := sr.GetTrace(context.Background(), test.query)
127129
require.ErrorIs(t, err, test.expectedErr)
128130
require.Equal(t, test.expectedTrace, trace)
@@ -159,7 +161,9 @@ func TestSpanReader_GetServices(t *testing.T) {
159161
tr.On("GetServices", mock.Anything).
160162
Return(test.services, test.err).Once()
161163

162-
sr := NewSpanReader(&tr)
164+
sr := SpanReader{
165+
traceReader: &tr,
166+
}
163167
services, err := sr.GetServices(context.Background())
164168
require.ErrorIs(t, err, test.expectedErr)
165169
require.Equal(t, test.expectedServices, services)
@@ -222,7 +226,9 @@ func TestSpanReader_GetOperations(t *testing.T) {
222226
tr.On("GetOperations", mock.Anything, test.expectedQuery).
223227
Return(test.operations, test.err).Once()
224228

225-
sr := NewSpanReader(&tr)
229+
sr := SpanReader{
230+
traceReader: &tr,
231+
}
226232
ops, err := sr.GetOperations(context.Background(), test.query)
227233
require.ErrorIs(t, err, test.expectedErr)
228234
require.Equal(t, test.expectedOperations, ops)
@@ -333,7 +339,9 @@ func TestSpanReader_FindTraces(t *testing.T) {
333339
yield(test.traces, test.err)
334340
})).Once()
335341

336-
sr := NewSpanReader(&tr)
342+
sr := SpanReader{
343+
traceReader: &tr,
344+
}
337345
traces, err := sr.FindTraces(context.Background(), test.query)
338346
require.ErrorIs(t, err, test.expectedErr)
339347
require.Equal(t, test.expectedTraces, traces)
@@ -405,7 +413,9 @@ func TestSpanReader_FindTraceIDs(t *testing.T) {
405413
yield(test.traceIDs, test.err)
406414
})).Once()
407415

408-
sr := NewSpanReader(&tr)
416+
sr := SpanReader{
417+
traceReader: &tr,
418+
}
409419
traceIDs, err := sr.FindTraceIDs(context.Background(), test.query)
410420
require.ErrorIs(t, err, test.expectedErr)
411421
require.Equal(t, test.expectedTraceIDs, traceIDs)

internal/storage/v2/v1adapter/tracereader.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ type TraceReader struct {
2323
spanReader spanstore.Reader
2424
}
2525

26-
func GetV1Reader(reader tracestore.Reader) (spanstore.Reader, bool) {
26+
func GetV1Reader(reader tracestore.Reader) spanstore.Reader {
2727
if tr, ok := reader.(*TraceReader); ok {
28-
return tr.spanReader, ok
28+
return tr.spanReader
29+
}
30+
return &SpanReader{
31+
traceReader: reader,
2932
}
30-
return nil, false
3133
}
3234

3335
func NewTraceReader(spanReader spanstore.Reader) *TraceReader {

internal/storage/v2/v1adapter/tracereader_test.go

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,34 @@ import (
1717

1818
"github.com/jaegertracing/jaeger-idl/model/v1"
1919
"github.com/jaegertracing/jaeger/internal/jiter"
20-
dependencyStoreMocks "github.com/jaegertracing/jaeger/internal/storage/v1/api/dependencystore/mocks"
20+
dependencystoremocks "github.com/jaegertracing/jaeger/internal/storage/v1/api/dependencystore/mocks"
2121
"github.com/jaegertracing/jaeger/internal/storage/v1/api/spanstore"
22-
spanStoreMocks "github.com/jaegertracing/jaeger/internal/storage/v1/api/spanstore/mocks"
23-
"github.com/jaegertracing/jaeger/internal/storage/v1/memory"
22+
spanstoremocks "github.com/jaegertracing/jaeger/internal/storage/v1/api/spanstore/mocks"
2423
"github.com/jaegertracing/jaeger/internal/storage/v2/api/depstore"
2524
"github.com/jaegertracing/jaeger/internal/storage/v2/api/tracestore"
2625
tracestoremocks "github.com/jaegertracing/jaeger/internal/storage/v2/api/tracestore/mocks"
2726
)
2827

29-
func TestGetV1Reader_NoError(t *testing.T) {
30-
memstore := memory.NewStore()
31-
traceReader := &TraceReader{
32-
spanReader: memstore,
33-
}
34-
v1Reader, ok := GetV1Reader(traceReader)
35-
require.True(t, ok)
36-
require.Equal(t, memstore, v1Reader)
37-
}
28+
func TestGetV1Reader(t *testing.T) {
29+
t.Run("wrapped v1 reader", func(t *testing.T) {
30+
reader := new(spanstoremocks.Reader)
31+
traceReader := &TraceReader{
32+
spanReader: reader,
33+
}
34+
v1Reader := GetV1Reader(traceReader)
35+
require.Equal(t, reader, v1Reader)
36+
})
3837

39-
func TestGetV1Reader_Error(t *testing.T) {
40-
fr := new(tracestoremocks.Reader)
41-
_, ok := GetV1Reader(fr)
42-
require.False(t, ok)
38+
t.Run("native v2 reader", func(t *testing.T) {
39+
reader := new(tracestoremocks.Reader)
40+
v1Reader := GetV1Reader(reader)
41+
require.IsType(t, &SpanReader{}, v1Reader)
42+
require.Equal(t, reader, v1Reader.(*SpanReader).traceReader)
43+
})
4344
}
4445

4546
func TestTraceReader_GetTracesDelegatesSuccessResponse(t *testing.T) {
46-
sr := new(spanStoreMocks.Reader)
47+
sr := new(spanstoremocks.Reader)
4748
modelTrace := &model.Trace{
4849
Spans: []*model.Span{
4950
{
@@ -114,7 +115,7 @@ func TestTraceReader_GetTracesErrorResponse(t *testing.T) {
114115
}
115116
for _, test := range testCases {
116117
t.Run(test.name, func(t *testing.T) {
117-
sr := new(spanStoreMocks.Reader)
118+
sr := new(spanstoremocks.Reader)
118119
sr.On("GetTrace", mock.Anything, mock.Anything).Return(&model.Trace{}, test.firstErr).Once()
119120
sr.On("GetTrace", mock.Anything, mock.Anything).Return(&model.Trace{}, nil).Once()
120121
traceReader := &TraceReader{
@@ -130,7 +131,7 @@ func TestTraceReader_GetTracesErrorResponse(t *testing.T) {
130131
}
131132

132133
func TestTraceReader_GetTracesEarlyStop(t *testing.T) {
133-
sr := new(spanStoreMocks.Reader)
134+
sr := new(spanstoremocks.Reader)
134135
sr.On(
135136
"GetTrace",
136137
mock.Anything,
@@ -167,7 +168,7 @@ func TestTraceReader_GetTracesEarlyStop(t *testing.T) {
167168
}
168169

169170
func TestTraceReader_GetServicesDelegatesToSpanReader(t *testing.T) {
170-
sr := new(spanStoreMocks.Reader)
171+
sr := new(spanstoremocks.Reader)
171172
expectedServices := []string{"service-a", "service-b"}
172173
sr.On("GetServices", mock.Anything).Return(expectedServices, nil)
173174
traceReader := &TraceReader{
@@ -228,7 +229,7 @@ func TestTraceReader_GetOperationsDelegatesResponse(t *testing.T) {
228229

229230
for _, test := range tests {
230231
t.Run(test.name, func(t *testing.T) {
231-
sr := new(spanStoreMocks.Reader)
232+
sr := new(spanstoremocks.Reader)
232233
sr.On("GetOperations",
233234
mock.Anything,
234235
spanstore.OperationQueryParameters{
@@ -276,7 +277,7 @@ func TestTraceReader_FindTracesDelegatesSuccessResponse(t *testing.T) {
276277
},
277278
},
278279
}
279-
sr := new(spanStoreMocks.Reader)
280+
sr := new(spanstoremocks.Reader)
280281
now := time.Now()
281282
sr.On(
282283
"FindTraces",
@@ -351,7 +352,7 @@ func TestTraceReader_FindTracesEdgeCases(t *testing.T) {
351352
}
352353
for _, test := range tests {
353354
t.Run(test.name, func(t *testing.T) {
354-
sr := new(spanStoreMocks.Reader)
355+
sr := new(spanstoremocks.Reader)
355356
sr.On(
356357
"FindTraces",
357358
mock.Anything,
@@ -373,7 +374,7 @@ func TestTraceReader_FindTracesEdgeCases(t *testing.T) {
373374
}
374375

375376
func TestTraceReader_FindTracesEarlyStop(t *testing.T) {
376-
sr := new(spanStoreMocks.Reader)
377+
sr := new(spanstoremocks.Reader)
377378
sr.On(
378379
"FindTraces",
379380
mock.Anything,
@@ -449,7 +450,7 @@ func TestTraceReader_FindTraceIDsDelegatesResponse(t *testing.T) {
449450
}
450451
for _, test := range tests {
451452
t.Run(test.name, func(t *testing.T) {
452-
sr := new(spanStoreMocks.Reader)
453+
sr := new(spanstoremocks.Reader)
453454
now := time.Now()
454455
sr.On(
455456
"FindTraceIDs",
@@ -497,7 +498,7 @@ func TestDependencyReader_GetDependencies(t *testing.T) {
497498
EndTime: end,
498499
}
499500
expectedDeps := []model.DependencyLink{{Parent: "parent", Child: "child", CallCount: 12}}
500-
mr := new(dependencyStoreMocks.Reader)
501+
mr := new(dependencystoremocks.Reader)
501502
mr.On("GetDependencies", mock.Anything, end, time.Minute).Return(expectedDeps, nil)
502503
dr := NewDependencyReader(mr)
503504
deps, err := dr.GetDependencies(context.Background(), query)

0 commit comments

Comments
 (0)