Skip to content

Commit 73c7f9b

Browse files
committed
Improve query e2e-integration test based on review
Signed-off-by: pipiland <[email protected]>
1 parent 632dbff commit 73c7f9b

File tree

5 files changed

+84
-54
lines changed

5 files changed

+84
-54
lines changed

.github/workflows/ci-e2e-query.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
- name: Run Memory storage integration tests
3030
run: |
31-
STORAGE=query make jaeger-v2-storage-integration-test
31+
STORAGE=query SPAN_STORAGE_TYPE=memory make jaeger-v2-storage-integration-test
3232
3333
- name: Upload coverage to codecov
3434
uses: ./.github/actions/upload-codecov

cmd/jaeger/config-query.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ extensions:
3636
jaeger_storage:
3737
backends:
3838
query_storage:
39-
memory:
40-
max_traces: 100000
39+
grpc:
40+
endpoint: localhost:17271
41+
tls:
42+
insecure: true
4143

4244
receivers:
4345
nop:
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
service:
2+
extensions: [jaeger_storage, healthcheckv2]
3+
pipelines:
4+
traces:
5+
receivers: [otlp]
6+
processors: [batch]
7+
exporters: [jaeger_storage_exporter]
8+
telemetry:
9+
resource:
10+
service.name: jaeger
11+
metrics:
12+
level: detailed
13+
readers:
14+
- pull:
15+
exporter:
16+
prometheus:
17+
host: 0.0.0.0
18+
port: 8888
19+
logs:
20+
level: info
21+
22+
extensions:
23+
healthcheckv2:
24+
use_v2: true
25+
http:
26+
27+
jaeger_storage:
28+
backends:
29+
some-storage:
30+
grpc:
31+
endpoint: localhost:17271
32+
tls:
33+
insecure: true
34+
35+
receivers:
36+
otlp:
37+
protocols:
38+
grpc:
39+
http:
40+
41+
processors:
42+
batch:
43+
44+
exporters:
45+
jaeger_storage_exporter:
46+
trace_storage: some-storage

cmd/jaeger/internal/integration/grpc_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,19 @@ type GRPCStorageIntegration struct {
1717
archiveRemoteStorage *integration.RemoteMemoryStorage
1818
}
1919

20-
func (s *GRPCStorageIntegration) initialize(t *testing.T) {
20+
func (s *GRPCStorageIntegration) initializeRemoteStorages(t *testing.T) {
2121
s.remoteStorage = integration.StartNewRemoteMemoryStorage(t, ports.RemoteStorageGRPC)
2222
s.archiveRemoteStorage = integration.StartNewRemoteMemoryStorage(t, ports.RemoteStorageGRPC+1)
2323
}
2424

25-
func (s *GRPCStorageIntegration) cleanUp(t *testing.T) {
25+
func (s *GRPCStorageIntegration) closeRemoteStorages(t *testing.T) {
2626
s.remoteStorage.Close(t)
2727
s.archiveRemoteStorage.Close(t)
28-
s.initialize(t)
28+
}
29+
30+
func (s *GRPCStorageIntegration) cleanUp(t *testing.T) {
31+
s.closeRemoteStorages(t)
32+
s.initializeRemoteStorages(t)
2933
}
3034

3135
func TestGRPCStorage(t *testing.T) {
@@ -38,7 +42,7 @@ func TestGRPCStorage(t *testing.T) {
3842
},
3943
}
4044
s.CleanUp = s.cleanUp
41-
s.initialize(t)
45+
s.initializeRemoteStorages(t)
4246
s.e2eInitialize(t, "grpc")
4347
t.Cleanup(func() {
4448
s.remoteStorage.Close(t)

cmd/jaeger/internal/integration/query_test.go

Lines changed: 25 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,62 +4,40 @@
44
package integration
55

66
import (
7-
"context"
87
"testing"
9-
"time"
10-
11-
"github.com/stretchr/testify/assert"
12-
"go.opentelemetry.io/collector/pdata/pcommon"
13-
"go.opentelemetry.io/collector/pdata/ptrace"
148

159
"github.com/jaegertracing/jaeger/internal/storage/integration"
16-
"github.com/jaegertracing/jaeger/internal/storage/v2/api/tracestore"
17-
"github.com/jaegertracing/jaeger/internal/storage/v2/v1adapter"
1810
)
1911

2012
func TestJaegerQueryService(t *testing.T) {
2113
integration.SkipUnlessEnv(t, "query")
22-
s := &E2EStorageIntegration{
23-
ConfigFile: "../../config-query.yaml",
24-
StorageIntegration: integration.StorageIntegration{
25-
CleanUp: func(_ *testing.T) {}, // nothing to clean
26-
},
27-
HealthCheckPort: 12133, // referencing value in config-query.yaml
28-
MetricsPort: 8887,
14+
15+
// Start instance of Jaeger with jaeger_query reading from remote storage
16+
query := &E2EStorageIntegration{
17+
ConfigFile: "../../config-query.yaml",
2918
SkipStorageCleaner: true,
19+
// referencing values in config-query.yaml
20+
HealthCheckPort: 12133,
21+
MetricsPort: 8887,
3022
}
31-
s.e2eInitialize(t, "memory")
32-
33-
runTraceReaderSmokeTests(context.Background(), s.TraceReader, t)
34-
}
35-
36-
// RunTraceReaderSmokeTests runs tests on TraceReader to see it returns no error
37-
func runTraceReaderSmokeTests(ctx context.Context, traceReader tracestore.Reader, t *testing.T) {
38-
t.Run("TraceReader.GetTraces", func(t *testing.T) {
39-
iterTraces := traceReader.GetTraces(ctx)
40-
_, err := v1adapter.V1TracesFromSeq2(iterTraces)
41-
assert.NoError(t, err)
42-
})
43-
44-
t.Run("TraceReader.GetServices", func(t *testing.T) {
45-
_, err := traceReader.GetServices(ctx)
46-
assert.NoError(t, err)
47-
})
48-
49-
t.Run("TraceReader.GetOperations", func(t *testing.T) {
50-
_, err := traceReader.GetOperations(ctx, tracestore.OperationQueryParams{ServiceName: "random-service-name"})
51-
assert.NoError(t, err)
23+
query.e2eInitialize(t, "grpc")
24+
t.Log("Query initialized")
25+
26+
// Start another instance of Jaeger receiving traces from OTLP and write traces to remote storage
27+
collector := &GRPCStorageIntegration{
28+
E2EStorageIntegration: E2EStorageIntegration{
29+
ConfigFile: "../../config-remote-storage-without-query.yaml",
30+
SkipStorageCleaner: true,
31+
},
32+
}
33+
collector.CleanUp = collector.cleanUp
34+
collector.initializeRemoteStorages(t)
35+
collector.e2eInitialize(t, "grpc")
36+
t.Cleanup(func() {
37+
collector.remoteStorage.Close(t)
38+
collector.archiveRemoteStorage.Close(t)
5239
})
40+
t.Log("Collector initialized")
5341

54-
t.Run("TraceReader.FindTraces", func(t *testing.T) {
55-
iter := traceReader.FindTraces(ctx, tracestore.TraceQueryParams{
56-
ServiceName: "random-service-name",
57-
Attributes: pcommon.NewMap(),
58-
StartTimeMin: time.Now().Add(-2 * time.Hour),
59-
StartTimeMax: time.Now(),
60-
})
61-
iter(func(_ []ptrace.Traces, err error) bool {
62-
return assert.NoError(t, err)
63-
})
64-
})
42+
collector.RunSpanStoreTests(t)
6543
}

0 commit comments

Comments
 (0)