Skip to content

Commit b264d2c

Browse files
authored
[v2][storage] Add dependency store to v2 storage interface (#6297)
## Which problem is this PR solving? - Towards #5079 ## Description of the changes - This PR creates a new factory in the `depstore` package for the DependencyReader and exposes a `CreateDependencyReader` function in the `factoryadapter` - This PR also changes some interface return types to structs because some structs implement multiple interfaces. - The new factory was integrated into the query service and the callsites were changed to use the v2 factory instead of the v1 factory to initialize the dependency reader. ## How was this change tested? - CI / Unit Tests ## 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`: `yarn lint` and `yarn test` --------- Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com> Signed-off-by: Mahad Zaryab <43658574+mahadzaryab1@users.noreply.github.com>
1 parent 723202b commit b264d2c

29 files changed

Lines changed: 307 additions & 109 deletions

File tree

.mockery.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,6 @@ packages:
7676
github.com/jaegertracing/jaeger/storage_v2/tracestore:
7777
config:
7878
all: true
79+
github.com/jaegertracing/jaeger/storage_v2/depstore:
80+
config:
81+
all: true

cmd/all-in-one/main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import (
3838
ss "github.com/jaegertracing/jaeger/plugin/sampling/strategyprovider"
3939
"github.com/jaegertracing/jaeger/plugin/storage"
4040
"github.com/jaegertracing/jaeger/ports"
41-
"github.com/jaegertracing/jaeger/storage/dependencystore"
41+
"github.com/jaegertracing/jaeger/storage_v2/depstore"
4242
"github.com/jaegertracing/jaeger/storage_v2/factoryadapter"
4343
"github.com/jaegertracing/jaeger/storage_v2/tracestore"
4444
)
@@ -115,7 +115,7 @@ by default uses only in-memory database.`,
115115
if err != nil {
116116
logger.Fatal("Failed to create span writer", zap.Error(err))
117117
}
118-
dependencyReader, err := storageFactory.CreateDependencyReader()
118+
dependencyReader, err := v2Factory.CreateDependencyReader()
119119
if err != nil {
120120
logger.Fatal("Failed to create dependency reader", zap.Error(err))
121121
}
@@ -219,7 +219,7 @@ func startQuery(
219219
qOpts *queryApp.QueryOptions,
220220
queryOpts *querysvc.QueryServiceOptions,
221221
traceReader tracestore.Reader,
222-
depReader dependencystore.Reader,
222+
depReader depstore.Reader,
223223
metricsQueryService querysvc.MetricsQueryService,
224224
tm *tenancy.Manager,
225225
telset telemetry.Settings,

cmd/anonymizer/app/query/query_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import (
1818
"github.com/jaegertracing/jaeger/model"
1919
"github.com/jaegertracing/jaeger/plugin/metricstore/disabled"
2020
"github.com/jaegertracing/jaeger/proto-gen/api_v2"
21-
dependencyStoreMocks "github.com/jaegertracing/jaeger/storage/dependencystore/mocks"
2221
"github.com/jaegertracing/jaeger/storage/spanstore"
2322
spanstoremocks "github.com/jaegertracing/jaeger/storage/spanstore/mocks"
23+
dependencyStoreMocks "github.com/jaegertracing/jaeger/storage_v2/depstore/mocks"
2424
"github.com/jaegertracing/jaeger/storage_v2/factoryadapter"
2525
)
2626

cmd/jaeger/internal/exporters/storageexporter/exporter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func newExporter(config *Config, otel component.TelemetrySettings) *storageExpor
3434
}
3535

3636
func (exp *storageExporter) start(_ context.Context, host component.Host) error {
37-
f, err := jaegerstorage.GetStorageFactoryV2(exp.config.TraceStorage, host)
37+
f, err := jaegerstorage.GetTraceStoreFactory(exp.config.TraceStorage, host)
3838
if err != nil {
3939
return fmt.Errorf("cannot find storage factory: %w", err)
4040
}

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/jaegertracing/jaeger/pkg/tenancy"
2222
"github.com/jaegertracing/jaeger/plugin/metricstore/disabled"
2323
"github.com/jaegertracing/jaeger/storage/metricstore"
24+
"github.com/jaegertracing/jaeger/storage_v2/depstore"
2425
)
2526

2627
var (
@@ -71,23 +72,20 @@ func (s *server) Start(ctx context.Context, host component.Host) error {
7172
telset.Metrics = telset.Metrics.
7273
Namespace(metrics.NSOptions{Name: "jaeger"}).
7374
Namespace(metrics.NSOptions{Name: "query"})
74-
75-
// TODO currently v1 is still needed because of dependency storage
76-
v1Factory, err := jaegerstorage.GetStorageFactory(s.config.Storage.TracesPrimary, host)
75+
tf, err := jaegerstorage.GetTraceStoreFactory(s.config.Storage.TracesPrimary, host)
7776
if err != nil {
78-
return fmt.Errorf("cannot find v1 factory for primary storage %s: %w", s.config.Storage.TracesPrimary, err)
77+
return fmt.Errorf("cannot find factory for trace storage %s: %w", s.config.Storage.TracesPrimary, err)
7978
}
80-
f, err := jaegerstorage.GetStorageFactoryV2(s.config.Storage.TracesPrimary, host)
81-
if err != nil {
82-
return fmt.Errorf("cannot find v2 factory for primary storage %s: %w", s.config.Storage.TracesPrimary, err)
83-
}
84-
85-
traceReader, err := f.CreateTraceReader()
79+
traceReader, err := tf.CreateTraceReader()
8680
if err != nil {
8781
return fmt.Errorf("cannot create trace reader: %w", err)
8882
}
8983

90-
depReader, err := v1Factory.CreateDependencyReader()
84+
df, ok := tf.(depstore.Factory)
85+
if !ok {
86+
return fmt.Errorf("cannot find factory for dependency storage %s: %w", s.config.Storage.TracesPrimary, err)
87+
}
88+
depReader, err := df.CreateDependencyReader()
9189
if err != nil {
9290
return fmt.Errorf("cannot create dependencies reader: %w", err)
9391
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func TestServerStart(t *testing.T) {
150150
TracesPrimary: "need-factory-error",
151151
},
152152
},
153-
expectedErr: "cannot find v1 factory for primary storage",
153+
expectedErr: "cannot find factory for trace storage",
154154
},
155155
{
156156
name: "span reader error",

cmd/jaeger/internal/extension/jaegerstorage/extension.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func GetMetricStorageFactory(name string, host component.Host) (storage.MetricSt
7474
return mf, nil
7575
}
7676

77-
func GetStorageFactoryV2(name string, host component.Host) (tracestore.Factory, error) {
77+
func GetTraceStoreFactory(name string, host component.Host) (tracestore.Factory, error) {
7878
f, err := GetStorageFactory(name, host)
7979
if err != nil {
8080
return nil, err

cmd/jaeger/internal/extension/jaegerstorage/extension_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func TestStorageFactoryBadShutdownError(t *testing.T) {
100100

101101
func TestGetFactoryV2Error(t *testing.T) {
102102
host := componenttest.NewNopHost()
103-
_, err := GetStorageFactoryV2("something", host)
103+
_, err := GetTraceStoreFactory("something", host)
104104
require.ErrorContains(t, err, "cannot find extension")
105105
}
106106

@@ -112,7 +112,7 @@ func TestGetFactory(t *testing.T) {
112112
require.NoError(t, err)
113113
require.NotNil(t, f)
114114

115-
f2, err := GetStorageFactoryV2(name, host)
115+
f2, err := GetTraceStoreFactory(name, host)
116116
require.NoError(t, err)
117117
require.NotNil(t, f2)
118118

cmd/query/app/apiv3/grpc_handler_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ import (
2020
"github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
2121
"github.com/jaegertracing/jaeger/model"
2222
_ "github.com/jaegertracing/jaeger/pkg/gogocodec" // force gogo codec registration
23-
dependencyStoreMocks "github.com/jaegertracing/jaeger/storage/dependencystore/mocks"
2423
"github.com/jaegertracing/jaeger/storage/spanstore"
2524
spanstoremocks "github.com/jaegertracing/jaeger/storage/spanstore/mocks"
25+
dependencyStoreMocks "github.com/jaegertracing/jaeger/storage_v2/depstore/mocks"
2626
"github.com/jaegertracing/jaeger/storage_v2/factoryadapter"
2727
)
2828

cmd/query/app/apiv3/http_gateway_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ import (
2222
"github.com/jaegertracing/jaeger/model"
2323
"github.com/jaegertracing/jaeger/pkg/jtracer"
2424
"github.com/jaegertracing/jaeger/pkg/testutils"
25-
dependencyStoreMocks "github.com/jaegertracing/jaeger/storage/dependencystore/mocks"
2625
"github.com/jaegertracing/jaeger/storage/spanstore"
2726
spanstoremocks "github.com/jaegertracing/jaeger/storage/spanstore/mocks"
27+
dependencyStoreMocks "github.com/jaegertracing/jaeger/storage_v2/depstore/mocks"
2828
"github.com/jaegertracing/jaeger/storage_v2/factoryadapter"
2929
)
3030

0 commit comments

Comments
 (0)