Skip to content

Commit 3a703db

Browse files
authored
Merge branch 'master' into zipkin-v2
2 parents 78db314 + 6897ca2 commit 3a703db

File tree

4 files changed

+62
-2
lines changed

4 files changed

+62
-2
lines changed

plugin/storage/es/spanstore/reader.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,9 @@ func (s *SpanReader) findTraceIDs(traceQuery *spanstore.TraceQueryParameters) ([
325325
if err != nil {
326326
return nil, errors.Wrap(err, "Search service failed")
327327
}
328-
328+
if searchResult.Aggregations == nil {
329+
return []string{}, nil
330+
}
329331
bucket, found := searchResult.Aggregations.Terms(traceIDAggregation)
330332
if !found {
331333
return nil, ErrUnableToFindTraceIDAggregation

plugin/storage/es/spanstore/reader_test.go

+25
Original file line numberDiff line numberDiff line change
@@ -843,3 +843,28 @@ func TestSpanReader_buildTagQuery(t *testing.T) {
843843
assert.EqualValues(t, expected, actual)
844844
})
845845
}
846+
847+
func TestSpanReader_GetEmptyIndex(t *testing.T) {
848+
withSpanReader(func(r *spanReaderTest) {
849+
mockSearchService(r).
850+
Return(&elastic.SearchResult{}, nil)
851+
mockMultiSearchService(r).
852+
Return(&elastic.MultiSearchResult{
853+
Responses: []*elastic.SearchResult{},
854+
}, nil)
855+
856+
traceQuery := &spanstore.TraceQueryParameters{
857+
ServiceName: serviceName,
858+
Tags: map[string]string{
859+
"hello": "world",
860+
},
861+
StartTimeMin: time.Now().Add(-1 * time.Hour),
862+
StartTimeMax: time.Now(),
863+
NumTraces: 2,
864+
}
865+
866+
services, err := r.reader.FindTraces(traceQuery)
867+
require.NoError(t, err)
868+
assert.Empty(t, services)
869+
})
870+
}

plugin/storage/es/spanstore/service_operation.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,9 @@ func (s *ServiceOperationStorage) getServices(indices []string) ([]string, error
102102
if err != nil {
103103
return nil, errors.Wrap(err, "Search service failed")
104104
}
105-
105+
if searchResult.Aggregations == nil {
106+
return []string{}, nil
107+
}
106108
bucket, found := searchResult.Aggregations.Terms(servicesAggregation)
107109
if !found {
108110
return nil, errors.New("Could not find aggregation of " + servicesAggregation)
@@ -132,6 +134,9 @@ func (s *ServiceOperationStorage) getOperations(indices []string, service string
132134
if err != nil {
133135
return nil, errors.Wrap(err, "Search service failed")
134136
}
137+
if searchResult.Aggregations == nil {
138+
return []string{}, nil
139+
}
135140
bucket, found := searchResult.Aggregations.Terms(operationsAggregation)
136141
if !found {
137142
return nil, errors.New("Could not find aggregation of " + operationsAggregation)

plugin/storage/es/spanstore/service_operation_test.go

+28
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,31 @@ func TestSpanReader_GetServices(t *testing.T) {
110110
func TestSpanReader_GetOperations(t *testing.T) {
111111
testGet(operationsAggregation, t)
112112
}
113+
114+
func TestSpanReader_GetServicesEmptyIndex(t *testing.T) {
115+
withSpanReader(func(r *spanReaderTest) {
116+
mockSearchService(r).
117+
Return(&elastic.SearchResult{}, nil)
118+
mockMultiSearchService(r).
119+
Return(&elastic.MultiSearchResult{
120+
Responses: []*elastic.SearchResult{},
121+
}, nil)
122+
services, err := r.reader.GetServices()
123+
require.NoError(t, err)
124+
assert.Empty(t, services)
125+
})
126+
}
127+
128+
func TestSpanReader_GetOperationsEmptyIndex(t *testing.T) {
129+
withSpanReader(func(r *spanReaderTest) {
130+
mockSearchService(r).
131+
Return(&elastic.SearchResult{}, nil)
132+
mockMultiSearchService(r).
133+
Return(&elastic.MultiSearchResult{
134+
Responses: []*elastic.SearchResult{},
135+
}, nil)
136+
services, err := r.reader.GetOperations("foo")
137+
require.NoError(t, err)
138+
assert.Empty(t, services)
139+
})
140+
}

0 commit comments

Comments
 (0)