diff --git a/cli/go.mod b/cli/go.mod index abc97a38de..3ad916849d 100644 --- a/cli/go.mod +++ b/cli/go.mod @@ -11,7 +11,6 @@ require ( github.com/kubeshop/tracetest/server v0.0.0-20230512142545-cb5e526e06f9 github.com/mitchellh/mapstructure v1.5.0 github.com/pterm/pterm v0.12.55 - github.com/segmentio/analytics-go/v3 v3.2.1 github.com/spf13/cobra v1.6.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.15.0 @@ -25,7 +24,6 @@ require ( atomicgo.dev/cursor v0.1.1 // indirect atomicgo.dev/keyboard v0.2.9 // indirect github.com/benbjohnson/clock v1.3.0 // indirect - github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect github.com/containerd/console v1.0.3 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/cli/go.sum b/cli/go.sum index abcb37c9da..2bb0e68811 100644 --- a/cli/go.sum +++ b/cli/go.sum @@ -61,8 +61,6 @@ github.com/atomicgo/cursor v0.0.1/go.mod h1:cBON2QmmrysudxNBFthvMtN32r3jxVRIvzkU github.com/aws/aws-sdk-go v1.44.196 h1:e3h9M7fpnRHwHOohYmYjgVbcCBvkxKwZiT7fGrxRn28= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/brianvoe/gofakeit/v6 v6.17.0 h1:obbQTJeHfktJtiZzq0Q1bEpsNUs+yHrYlPVWt7BtmJ4= github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -292,7 +290,6 @@ github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBO github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/segmentio/analytics-go/v3 v3.2.1 h1:G+f90zxtc1p9G+WigVyTR0xNfOghOGs/PYAlljLOyeg= -github.com/segmentio/analytics-go/v3 v3.2.1/go.mod h1:p8owAF8X+5o27jmvUognuXxdtqvSGtD0ZrfY2kcS9bE= github.com/segmentio/backo-go v1.0.1 h1:68RQccglxZeyURy93ASB/2kc9QudzgIDexJ927N++y4= github.com/segmentio/backo-go v1.0.1/go.mod h1:9/Rh6yILuLysoQnZ2oNooD2g7aBnvM7r/fNVxRNWfBc= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= diff --git a/server/app/app.go b/server/app/app.go index d1a72d3220..2c2912eeba 100644 --- a/server/app/app.go +++ b/server/app/app.go @@ -16,6 +16,7 @@ import ( "github.com/kubeshop/tracetest/server/assertions/comparator" "github.com/kubeshop/tracetest/server/config" "github.com/kubeshop/tracetest/server/config/demoresource" + datastore "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/environment" "github.com/kubeshop/tracetest/server/executor" "github.com/kubeshop/tracetest/server/executor/pollingprofile" @@ -33,7 +34,6 @@ import ( "github.com/kubeshop/tracetest/server/testdb" "github.com/kubeshop/tracetest/server/tests" "github.com/kubeshop/tracetest/server/tracedb" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/kubeshop/tracetest/server/traces" "github.com/kubeshop/tracetest/server/tracing" "go.opentelemetry.io/otel/trace" @@ -194,7 +194,7 @@ func (app *App) Start(opts ...appOption) error { triggerRegistry := getTriggerRegistry(tracer, applicationTracer) pollingProfileRepo := pollingprofile.NewRepository(db) - dataStoreRepo := datastoreresource.NewRepository(db) + dataStoreRepo := datastore.NewRepository(db) environmentRepo := environment.NewRepository(db) linterRepo := linterResource.NewRepository(db) @@ -339,7 +339,7 @@ func registerSPAHandler(router *mux.Router, cfg httpServerConfig, analyticsEnabl ) } -func registerOtlpServer(app *App, testDB model.Repository, eventEmitter executor.EventEmitter, dsRepo *datastoreresource.Repository) { +func registerOtlpServer(app *App, testDB model.Repository, eventEmitter executor.EventEmitter, dsRepo *datastore.Repository) { ingester := otlp.NewIngester(testDB, eventEmitter, dsRepo) grpcOtlpServer := otlp.NewGrpcServer(":4317", ingester) httpOtlpServer := otlp.NewHttpServer(":4318", ingester) @@ -427,12 +427,12 @@ func registerDemosResource(repository *demoresource.Repository, router *mux.Rout provisioner.AddResourceProvisioner(manager) } -func registerDataStoreResource(repository *datastoreresource.Repository, router *mux.Router, db *sql.DB, provisioner *provisioning.Provisioner, tracer trace.Tracer) { - manager := resourcemanager.New[datastoreresource.DataStore]( - datastoreresource.ResourceName, - datastoreresource.ResourceNamePlural, +func registerDataStoreResource(repository *datastore.Repository, router *mux.Router, db *sql.DB, provisioner *provisioning.Provisioner, tracer trace.Tracer) { + manager := resourcemanager.New[datastore.DataStore]( + datastore.ResourceName, + datastore.ResourceNamePlural, repository, - resourcemanager.WithOperations(datastoreresource.Operations...), + resourcemanager.WithOperations(datastore.Operations...), resourcemanager.WithTracer(tracer), ) manager.RegisterRoutes(router) diff --git a/server/app/facade.go b/server/app/facade.go index 0b285bf349..0cadace26f 100644 --- a/server/app/facade.go +++ b/server/app/facade.go @@ -3,6 +3,7 @@ package app import ( "context" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/environment" "github.com/kubeshop/tracetest/server/executor" "github.com/kubeshop/tracetest/server/executor/pollingprofile" @@ -13,7 +14,6 @@ import ( "github.com/kubeshop/tracetest/server/subscription" "github.com/kubeshop/tracetest/server/tests" "github.com/kubeshop/tracetest/server/tracedb" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel/trace" ) @@ -52,7 +52,7 @@ func (rf runnerFacade) RunAssertions(ctx context.Context, request executor.Asser func newRunnerFacades( ppRepo *pollingprofile.Repository, - dsRepo *datastoreresource.Repository, + dsRepo *datastore.Repository, lintRepo *linterResource.Repository, testDB model.Repository, transactions *tests.TransactionsRepository, diff --git a/server/tracedb/datastoreresource/resource_types.go b/server/datastore/datastore_entities.go similarity index 99% rename from server/tracedb/datastoreresource/resource_types.go rename to server/datastore/datastore_entities.go index a04adc5df0..77242972f3 100644 --- a/server/tracedb/datastoreresource/resource_types.go +++ b/server/datastore/datastore_entities.go @@ -1,4 +1,4 @@ -package datastoreresource +package datastore import ( "encoding/json" diff --git a/server/tracedb/datastoreresource/repository.go b/server/datastore/datastore_repository.go similarity index 99% rename from server/tracedb/datastoreresource/repository.go rename to server/datastore/datastore_repository.go index 2663e47b33..0ebf99bd68 100644 --- a/server/tracedb/datastoreresource/repository.go +++ b/server/datastore/datastore_repository.go @@ -1,4 +1,4 @@ -package datastoreresource +package datastore import ( "context" diff --git a/server/tracedb/datastoreresource/repository_test.go b/server/datastore/datastore_repository_test.go similarity index 99% rename from server/tracedb/datastoreresource/repository_test.go rename to server/datastore/datastore_repository_test.go index 1130dd8229..5ba5e7b1f2 100644 --- a/server/tracedb/datastoreresource/repository_test.go +++ b/server/datastore/datastore_repository_test.go @@ -1,4 +1,4 @@ -package datastoreresource_test +package datastore_test import ( "context" @@ -6,10 +6,10 @@ import ( "testing" "github.com/gorilla/mux" + datastore "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/pkg/id" "github.com/kubeshop/tracetest/server/resourcemanager" rmtests "github.com/kubeshop/tracetest/server/resourcemanager/testutil" - datastore "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/stretchr/testify/require" ) diff --git a/server/tracedb/datastoreresource/main_test.go b/server/datastore/main_test.go similarity index 87% rename from server/tracedb/datastoreresource/main_test.go rename to server/datastore/main_test.go index 789a1eabdc..6fc46960b2 100644 --- a/server/tracedb/datastoreresource/main_test.go +++ b/server/datastore/main_test.go @@ -1,4 +1,4 @@ -package datastoreresource_test +package datastore_test import ( "os" diff --git a/server/executor/default_poller_executor.go b/server/executor/default_poller_executor.go index 36b47bed90..8a18d2818f 100644 --- a/server/executor/default_poller_executor.go +++ b/server/executor/default_poller_executor.go @@ -5,22 +5,22 @@ import ( "fmt" "log" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/model/events" "github.com/kubeshop/tracetest/server/resourcemanager" "github.com/kubeshop/tracetest/server/tracedb" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" ) -type traceDBFactoryFn func(ds datastoreresource.DataStore) (tracedb.TraceDB, error) +type traceDBFactoryFn func(ds datastore.DataStore) (tracedb.TraceDB, error) type DefaultPollerExecutor struct { ppGetter PollingProfileGetter updater RunUpdater newTraceDBFn traceDBFactoryFn - dsRepo resourcemanager.Current[datastoreresource.DataStore] + dsRepo resourcemanager.Current[datastore.DataStore] eventEmitter EventEmitter } @@ -66,7 +66,7 @@ func NewPollerExecutor( tracer trace.Tracer, updater RunUpdater, newTraceDBFn traceDBFactoryFn, - dsRepo resourcemanager.Current[datastoreresource.DataStore], + dsRepo resourcemanager.Current[datastore.DataStore], eventEmitter EventEmitter, ) PollerExecutor { diff --git a/server/executor/poller_executor_test.go b/server/executor/poller_executor_test.go index 315cb162a6..e99f6e69e0 100644 --- a/server/executor/poller_executor_test.go +++ b/server/executor/poller_executor_test.go @@ -6,6 +6,7 @@ import ( "time" "github.com/kubeshop/tracetest/server/config" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/executor" "github.com/kubeshop/tracetest/server/executor/pollingprofile" "github.com/kubeshop/tracetest/server/model" @@ -14,7 +15,6 @@ import ( "github.com/kubeshop/tracetest/server/testdb" "github.com/kubeshop/tracetest/server/tracedb" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/kubeshop/tracetest/server/tracing" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -547,8 +547,8 @@ func getRunRepositoryMock(t *testing.T) model.Repository { // DataStoreRepository type dataStoreRepositoryMock struct{} -func (m *dataStoreRepositoryMock) Current(ctx context.Context) (datastoreresource.DataStore, error) { - return datastoreresource.DataStore{Type: datastoreresource.DataStoreTypeOTLP}, nil +func (m *dataStoreRepositoryMock) Current(ctx context.Context) (datastore.DataStore, error) { + return datastore.DataStore{Type: datastore.DataStoreTypeOTLP}, nil } func getDataStoreRepositoryMock(t *testing.T) *dataStoreRepositoryMock { @@ -610,10 +610,10 @@ type traceDBState struct { currentIteration int } -func getTraceDBMockFactory(t *testing.T, tracePerIteration []model.Trace, state *traceDBState) func(datastoreresource.DataStore) (tracedb.TraceDB, error) { +func getTraceDBMockFactory(t *testing.T, tracePerIteration []model.Trace, state *traceDBState) func(datastore.DataStore) (tracedb.TraceDB, error) { t.Helper() - return func(ds datastoreresource.DataStore) (tracedb.TraceDB, error) { + return func(ds datastore.DataStore) (tracedb.TraceDB, error) { return &traceDBMock{ tracePerIteration: tracePerIteration, state: state, diff --git a/server/executor/runner.go b/server/executor/runner.go index 69c3310d1a..c8780abc44 100644 --- a/server/executor/runner.go +++ b/server/executor/runner.go @@ -9,6 +9,7 @@ import ( "strings" "github.com/kubeshop/tracetest/server/analytics" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/environment" "github.com/kubeshop/tracetest/server/executor/trigger" "github.com/kubeshop/tracetest/server/expression" @@ -17,7 +18,6 @@ import ( "github.com/kubeshop/tracetest/server/resourcemanager" "github.com/kubeshop/tracetest/server/subscription" "github.com/kubeshop/tracetest/server/tracedb" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/trace" @@ -45,7 +45,7 @@ func NewPersistentRunner( tracer trace.Tracer, subscriptionManager *subscription.Manager, newTraceDBFn traceDBFactoryFn, - dsRepo resourcemanager.Current[datastoreresource.DataStore], + dsRepo resourcemanager.Current[datastore.DataStore], eventEmitter EventEmitter, ppGetter PollingProfileGetter, ) PersistentRunner { @@ -73,7 +73,7 @@ type persistentRunner struct { tracer trace.Tracer subscriptionManager *subscription.Manager newTraceDBFn traceDBFactoryFn - dsRepo resourcemanager.Current[datastoreresource.DataStore] + dsRepo resourcemanager.Current[datastore.DataStore] eventEmitter EventEmitter ppGetter PollingProfileGetter diff --git a/server/http/controller.go b/server/http/controller.go index b5f185f843..ebbc883945 100644 --- a/server/http/controller.go +++ b/server/http/controller.go @@ -9,6 +9,7 @@ import ( "strconv" "github.com/kubeshop/tracetest/server/assertions/selectors" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/environment" "github.com/kubeshop/tracetest/server/executor" "github.com/kubeshop/tracetest/server/executor/trigger" @@ -24,7 +25,6 @@ import ( "github.com/kubeshop/tracetest/server/testdb" "github.com/kubeshop/tracetest/server/tests" "github.com/kubeshop/tracetest/server/tracedb" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel/trace" ) @@ -33,7 +33,7 @@ var IDGen = id.NewRandGenerator() type controller struct { tracer trace.Tracer runner runner - newTraceDBFn func(ds datastoreresource.DataStore) (tracedb.TraceDB, error) + newTraceDBFn func(ds datastore.DataStore) (tracedb.TraceDB, error) mappers mappings.Mappings triggerRegistry *trigger.Registry version string @@ -73,7 +73,7 @@ type environmentGetter interface { func NewController( testDB model.Repository, transactions transactionsRepository, - newTraceDBFn func(ds datastoreresource.DataStore) (tracedb.TraceDB, error), + newTraceDBFn func(ds datastore.DataStore) (tracedb.TraceDB, error), runner runner, mappers mappings.Mappings, envGetter environmentGetter, diff --git a/server/http/mappings/datastore.go b/server/http/mappings/datastore.go index 61aa516ed6..b24dd937d6 100644 --- a/server/http/mappings/datastore.go +++ b/server/http/mappings/datastore.go @@ -5,9 +5,9 @@ import ( "time" "github.com/fluidtruck/deepcopy" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/openapi" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" ) func (m *OpenAPI) ConnectionTestResult(in model.ConnectionResult) openapi.ConnectionResult { @@ -46,32 +46,32 @@ func (m *OpenAPI) ConnectionTestStep(in model.ConnectionTestStep) openapi.Connec } } -var dataStoreTypesMapping = map[datastoreresource.DataStoreType]openapi.SupportedDataStores{ - datastoreresource.DataStoreTypeJaeger: openapi.JAEGER, - datastoreresource.DataStoreTypeTempo: openapi.TEMPO, - datastoreresource.DataStoreTypeOpenSearch: openapi.OPENSEARCH, - datastoreresource.DataStoreTypeSignalFX: openapi.SIGNALFX, - datastoreresource.DataStoreTypeOTLP: openapi.OTLP, - datastoreresource.DataStoreTypeNewRelic: openapi.NEWRELIC, - datastoreresource.DataStoreTypeLighStep: openapi.LIGHTSTEP, - datastoreresource.DataStoreTypeElasticAPM: openapi.ELASTICAPM, - datastoreresource.DataStoreTypeDataDog: openapi.DATADOG, - datastoreresource.DataStoreTypeAwsXRay: openapi.AWSXRAY, - datastoreresource.DataStoreTypeHoneycomb: openapi.HONEYCOMB, - datastoreresource.DatastoreTypeAzureAppInsights: openapi.AZUREAPPINSIGHTS, +var dataStoreTypesMapping = map[datastore.DataStoreType]openapi.SupportedDataStores{ + datastore.DataStoreTypeJaeger: openapi.JAEGER, + datastore.DataStoreTypeTempo: openapi.TEMPO, + datastore.DataStoreTypeOpenSearch: openapi.OPENSEARCH, + datastore.DataStoreTypeSignalFX: openapi.SIGNALFX, + datastore.DataStoreTypeOTLP: openapi.OTLP, + datastore.DataStoreTypeNewRelic: openapi.NEWRELIC, + datastore.DataStoreTypeLighStep: openapi.LIGHTSTEP, + datastore.DataStoreTypeElasticAPM: openapi.ELASTICAPM, + datastore.DataStoreTypeDataDog: openapi.DATADOG, + datastore.DataStoreTypeAwsXRay: openapi.AWSXRAY, + datastore.DataStoreTypeHoneycomb: openapi.HONEYCOMB, + datastore.DatastoreTypeAzureAppInsights: openapi.AZUREAPPINSIGHTS, } -func (m OpenAPI) DataStoreType(in datastoreresource.DataStoreType) openapi.SupportedDataStores { +func (m OpenAPI) DataStoreType(in datastore.DataStoreType) openapi.SupportedDataStores { dsd, exists := dataStoreTypesMapping[in] if !exists { // this should only happen during development, // so it's more an alert for devs than actual error handling - panic(fmt.Errorf("trying to convert an undefined datastoreresource.DataStoreType '%s'", in)) + panic(fmt.Errorf("trying to convert an undefined datastore.DataStoreType '%s'", in)) } return dsd } -func (m Model) DataStoreType(in openapi.SupportedDataStores) datastoreresource.DataStoreType { +func (m Model) DataStoreType(in openapi.SupportedDataStores) datastore.DataStoreType { for k, v := range dataStoreTypesMapping { if v == in { return k @@ -80,24 +80,24 @@ func (m Model) DataStoreType(in openapi.SupportedDataStores) datastoreresource.D // this should only happen during development, // so it's more an alert for devs than actual error handling - panic(fmt.Errorf("trying to convert an undefined datastoreresource.DataStoreType '%s'", in)) + panic(fmt.Errorf("trying to convert an undefined datastore.DataStoreType '%s'", in)) } -func (m Model) DataStore(in openapi.DataStore) datastoreresource.DataStore { - dataStore := datastoreresource.DataStore{ +func (m Model) DataStore(in openapi.DataStore) datastore.DataStore { + dataStore := datastore.DataStore{ ID: "current", Name: in.Name, Type: m.DataStoreType(in.Type), Default: in.Default, CreatedAt: in.CreatedAt.Format(time.RFC3339Nano), - Values: datastoreresource.DataStoreValues{}, + Values: datastore.DataStoreValues{}, } // Jaeger - if dataStore.Type == datastoreresource.DataStoreTypeJaeger { - dataStore.Values.Jaeger = &datastoreresource.GRPCClientSettings{ - TLS: &datastoreresource.TLS{}, + if dataStore.Type == datastore.DataStoreTypeJaeger { + dataStore.Values.Jaeger = &datastore.GRPCClientSettings{ + TLS: &datastore.TLS{}, } deepcopy.DeepCopy(in.Jaeger, &dataStore.Values.Jaeger) @@ -105,13 +105,13 @@ func (m Model) DataStore(in openapi.DataStore) datastoreresource.DataStore { } // Tempo - if dataStore.Type == datastoreresource.DataStoreTypeTempo { - dataStore.Values.Tempo = &datastoreresource.MultiChannelClientConfig{ - Grpc: &datastoreresource.GRPCClientSettings{ - TLS: &datastoreresource.TLS{}, + if dataStore.Type == datastore.DataStoreTypeTempo { + dataStore.Values.Tempo = &datastore.MultiChannelClientConfig{ + Grpc: &datastore.GRPCClientSettings{ + TLS: &datastore.TLS{}, }, - Http: &datastoreresource.HttpClientConfig{ - TLS: &datastoreresource.TLS{}, + Http: &datastore.HttpClientConfig{ + TLS: &datastore.TLS{}, }, } @@ -121,32 +121,32 @@ func (m Model) DataStore(in openapi.DataStore) datastoreresource.DataStore { } // AWS XRay - if dataStore.Type == datastoreresource.DataStoreTypeAwsXRay { - dataStore.Values.AwsXRay = &datastoreresource.AWSXRayConfig{} + if dataStore.Type == datastore.DataStoreTypeAwsXRay { + dataStore.Values.AwsXRay = &datastore.AWSXRayConfig{} deepcopy.DeepCopy(in.Awsxray, &dataStore.Values.AwsXRay) } // OpenSearch - if dataStore.Type == datastoreresource.DataStoreTypeOpenSearch { - dataStore.Values.OpenSearch = &datastoreresource.ElasticSearchConfig{} + if dataStore.Type == datastore.DataStoreTypeOpenSearch { + dataStore.Values.OpenSearch = &datastore.ElasticSearchConfig{} deepcopy.DeepCopy(in.Opensearch, &dataStore.Values.OpenSearch) } // ElasticAPM - if dataStore.Type == datastoreresource.DataStoreTypeElasticAPM { - dataStore.Values.ElasticApm = &datastoreresource.ElasticSearchConfig{} + if dataStore.Type == datastore.DataStoreTypeElasticAPM { + dataStore.Values.ElasticApm = &datastore.ElasticSearchConfig{} deepcopy.DeepCopy(in.Elasticapm, &dataStore.Values.ElasticApm) } // SignalFX - if dataStore.Type == datastoreresource.DataStoreTypeSignalFX { - dataStore.Values.SignalFx = &datastoreresource.SignalFXConfig{} + if dataStore.Type == datastore.DataStoreTypeSignalFX { + dataStore.Values.SignalFx = &datastore.SignalFXConfig{} deepcopy.DeepCopy(in.Signalfx, &dataStore.Values.SignalFx) } // Azure App Insights - if dataStore.Type == datastoreresource.DatastoreTypeAzureAppInsights { - dataStore.Values.AzureAppInsights = &datastoreresource.AzureAppInsightsConfig{} + if dataStore.Type == datastore.DatastoreTypeAzureAppInsights { + dataStore.Values.AzureAppInsights = &datastore.AzureAppInsightsConfig{} deepcopy.DeepCopy(in.Azureappinsights, &dataStore.Values.AzureAppInsights) } diff --git a/server/integration/ensure_server_prefix_test.go b/server/integration/ensure_server_prefix_test.go index 80482fe46a..5fb010f1d5 100644 --- a/server/integration/ensure_server_prefix_test.go +++ b/server/integration/ensure_server_prefix_test.go @@ -11,10 +11,10 @@ import ( "github.com/goccy/go-yaml" "github.com/kubeshop/tracetest/server/app" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/openapi" "github.com/kubeshop/tracetest/server/resourcemanager" "github.com/kubeshop/tracetest/server/testmock" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -71,7 +71,7 @@ func getTests(t *testing.T, endpoint string) []openapi.Test { return tests } -func getDatastores(t *testing.T, endpoint string) resourcemanager.ResourceList[datastoreresource.DataStore] { +func getDatastores(t *testing.T, endpoint string) resourcemanager.ResourceList[datastore.DataStore] { url := fmt.Sprintf("%s/api/datastores", endpoint) resp, err := http.Get(url) require.NoError(t, err) @@ -80,7 +80,7 @@ func getDatastores(t *testing.T, endpoint string) resourcemanager.ResourceList[d bodyJsonBytes, err := ioutil.ReadAll(resp.Body) require.NoError(t, err) - var dataStores resourcemanager.ResourceList[datastoreresource.DataStore] + var dataStores resourcemanager.ResourceList[datastore.DataStore] err = yaml.Unmarshal(bodyJsonBytes, &dataStores) require.NoError(t, err) diff --git a/server/otlp/ingester.go b/server/otlp/ingester.go index 0ca47204f4..41ab988974 100644 --- a/server/otlp/ingester.go +++ b/server/otlp/ingester.go @@ -5,10 +5,10 @@ import ( "fmt" "strings" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/executor" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/model/events" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/kubeshop/tracetest/server/traces" "go.opentelemetry.io/otel/trace" pb "go.opentelemetry.io/proto/otlp/collector/trace/v1" @@ -18,10 +18,10 @@ import ( type ingester struct { db model.Repository eventEmitter executor.EventEmitter - dsRepo *datastoreresource.Repository + dsRepo *datastore.Repository } -func NewIngester(db model.Repository, eventEmitter executor.EventEmitter, dsRepo *datastoreresource.Repository) ingester { +func NewIngester(db model.Repository, eventEmitter executor.EventEmitter, dsRepo *datastore.Repository) ingester { return ingester{ db: db, eventEmitter: eventEmitter, diff --git a/server/provisioning/provisioning_test.go b/server/provisioning/provisioning_test.go index fdfc54001e..51b483e35f 100644 --- a/server/provisioning/provisioning_test.go +++ b/server/provisioning/provisioning_test.go @@ -9,11 +9,11 @@ import ( "github.com/kubeshop/tracetest/server/config" "github.com/kubeshop/tracetest/server/config/demoresource" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/executor/pollingprofile" "github.com/kubeshop/tracetest/server/provisioning" "github.com/kubeshop/tracetest/server/resourcemanager" "github.com/kubeshop/tracetest/server/testmock" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -91,7 +91,7 @@ func TestFromEnv(t *testing.T) { } type expectations struct { - dataStore *datastoreresource.DataStore + dataStore *datastore.DataStore config *config.Config pollingprofile *pollingprofile.PollingProfile demos []demoresource.Demo @@ -102,7 +102,7 @@ type provisioningFixture struct { configs *config.Repository pollingProfiles *pollingprofile.Repository demos *demoresource.Repository - dataStores *datastoreresource.Repository + dataStores *datastore.Repository } func (f provisioningFixture) assert(t *testing.T, expected expectations) { @@ -165,7 +165,7 @@ func setup(db *sql.DB) provisioningFixture { configs: config.NewRepository(db), pollingProfiles: pollingprofile.NewRepository(db), demos: demoresource.NewRepository(db), - dataStores: datastoreresource.NewRepository(db), + dataStores: datastore.NewRepository(db), } configManager := resourcemanager.New[config.Config]( @@ -189,11 +189,11 @@ func setup(db *sql.DB) provisioningFixture { resourcemanager.WithOperations(demoresource.Operations...), ) - dataStoreManager := resourcemanager.New[datastoreresource.DataStore]( - datastoreresource.ResourceName, - datastoreresource.ResourceNamePlural, + dataStoreManager := resourcemanager.New[datastore.DataStore]( + datastore.ResourceName, + datastore.ResourceNamePlural, f.dataStores, - resourcemanager.WithOperations(datastoreresource.Operations...), + resourcemanager.WithOperations(datastore.Operations...), ) f.provisioner = provisioning.New(provisioning.WithResourceProvisioners( @@ -215,14 +215,14 @@ var cases = []struct { name: "AllSettings", file: "./testdata/all_settings.yaml", expectations: expectations{ - dataStore: &datastoreresource.DataStore{ + dataStore: &datastore.DataStore{ Name: "Jaeger", Default: true, - Type: datastoreresource.DataStoreTypeJaeger, - Values: datastoreresource.DataStoreValues{ - Jaeger: &datastoreresource.GRPCClientSettings{ + Type: datastore.DataStoreTypeJaeger, + Values: datastore.DataStoreValues{ + Jaeger: &datastore.GRPCClientSettings{ Endpoint: "jaeger-query:16685", - TLS: &datastoreresource.TLS{Insecure: true}, + TLS: &datastore.TLS{Insecure: true}, }, }, }, @@ -263,14 +263,14 @@ var cases = []struct { name: "JaegerGRPC", file: "./testdata/jaeger_grpc.yaml", expectations: expectations{ - dataStore: &datastoreresource.DataStore{ + dataStore: &datastore.DataStore{ Name: "Jaeger", Default: true, - Type: datastoreresource.DataStoreTypeJaeger, - Values: datastoreresource.DataStoreValues{ - Jaeger: &datastoreresource.GRPCClientSettings{ + Type: datastore.DataStoreTypeJaeger, + Values: datastore.DataStoreValues{ + Jaeger: &datastore.GRPCClientSettings{ Endpoint: "jaeger-query:16685", - TLS: &datastoreresource.TLS{Insecure: true}, + TLS: &datastore.TLS{Insecure: true}, }, }, }, @@ -280,15 +280,15 @@ var cases = []struct { name: "TempoGRPC", file: "./testdata/tempo_grpc.yaml", expectations: expectations{ - dataStore: &datastoreresource.DataStore{ + dataStore: &datastore.DataStore{ Name: "Tempo (gRPC)", Default: true, - Type: datastoreresource.DataStoreTypeTempo, - Values: datastoreresource.DataStoreValues{ - Tempo: &datastoreresource.MultiChannelClientConfig{ - Grpc: &datastoreresource.GRPCClientSettings{ + Type: datastore.DataStoreTypeTempo, + Values: datastore.DataStoreValues{ + Tempo: &datastore.MultiChannelClientConfig{ + Grpc: &datastore.GRPCClientSettings{ Endpoint: "tempo:9095", - TLS: &datastoreresource.TLS{Insecure: true}, + TLS: &datastore.TLS{Insecure: true}, }, }, }, @@ -299,15 +299,15 @@ var cases = []struct { name: "TempoHTTP", file: "./testdata/tempo_http.yaml", expectations: expectations{ - dataStore: &datastoreresource.DataStore{ + dataStore: &datastore.DataStore{ Name: "Tempo (HTTP)", Default: true, - Type: datastoreresource.DataStoreTypeTempo, - Values: datastoreresource.DataStoreValues{ - Tempo: &datastoreresource.MultiChannelClientConfig{ - Http: &datastoreresource.HttpClientConfig{ + Type: datastore.DataStoreTypeTempo, + Values: datastore.DataStoreValues{ + Tempo: &datastore.MultiChannelClientConfig{ + Http: &datastore.HttpClientConfig{ Url: "tempo:80", - TLS: &datastoreresource.TLS{Insecure: true}, + TLS: &datastore.TLS{Insecure: true}, }, }, }, @@ -318,12 +318,12 @@ var cases = []struct { name: "OpenSearch", file: "./testdata/opensearch.yaml", expectations: expectations{ - dataStore: &datastoreresource.DataStore{ + dataStore: &datastore.DataStore{ Name: "OpenSearch", Default: true, - Type: datastoreresource.DataStoreTypeOpenSearch, - Values: datastoreresource.DataStoreValues{ - OpenSearch: &datastoreresource.ElasticSearchConfig{ + Type: datastore.DataStoreTypeOpenSearch, + Values: datastore.DataStoreValues{ + OpenSearch: &datastore.ElasticSearchConfig{ Addresses: []string{"http://opensearch:9200"}, Index: "traces", }, @@ -335,12 +335,12 @@ var cases = []struct { name: "SignalFX", file: "./testdata/signalfx.yaml", expectations: expectations{ - dataStore: &datastoreresource.DataStore{ + dataStore: &datastore.DataStore{ Name: "SignalFX", Default: true, - Type: datastoreresource.DataStoreTypeSignalFX, - Values: datastoreresource.DataStoreValues{ - SignalFx: &datastoreresource.SignalFXConfig{ + Type: datastore.DataStoreTypeSignalFX, + Values: datastore.DataStoreValues{ + SignalFx: &datastore.SignalFXConfig{ Token: "thetoken", Realm: "us1", }, @@ -352,12 +352,12 @@ var cases = []struct { name: "ElasticAPM", file: "./testdata/elastic_apm.yaml", expectations: expectations{ - dataStore: &datastoreresource.DataStore{ + dataStore: &datastore.DataStore{ Name: "elastic APM", Default: true, - Type: datastoreresource.DataStoreTypeElasticAPM, - Values: datastoreresource.DataStoreValues{ - ElasticApm: &datastoreresource.ElasticSearchConfig{ + Type: datastore.DataStoreTypeElasticAPM, + Values: datastore.DataStoreValues{ + ElasticApm: &datastore.ElasticSearchConfig{ Addresses: []string{"https://es01:9200"}, Username: "elastic", Password: "changeme", diff --git a/server/tracedb/awsxray.go b/server/tracedb/awsxray.go index a6a4c63926..5e1c3c34a7 100644 --- a/server/tracedb/awsxray.go +++ b/server/tracedb/awsxray.go @@ -17,9 +17,9 @@ import ( "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/xray" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" conventions "go.opentelemetry.io/collector/semconv/v1.6.1" "go.opentelemetry.io/otel/trace" ) @@ -34,7 +34,7 @@ type awsxrayDB struct { useDefaultAuth bool } -func NewAwsXRayDB(cfg *datastoreresource.AWSXRayConfig) (TraceDB, error) { +func NewAwsXRayDB(cfg *datastore.AWSXRayConfig) (TraceDB, error) { sessionCredentials := credentials.NewStaticCredentials(cfg.AccessKeyID, cfg.SecretAccessKey, cfg.SessionToken) return &awsxrayDB{ diff --git a/server/tracedb/azureappinsights.go b/server/tracedb/azureappinsights.go index 521205e4b4..8a7b4e230d 100644 --- a/server/tracedb/azureappinsights.go +++ b/server/tracedb/azureappinsights.go @@ -11,9 +11,9 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/monitor/azquery" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel/trace" ) @@ -31,7 +31,7 @@ type azureAppInsightsDB struct { var _ TraceDB = &azureAppInsightsDB{} -func NewAzureAppInsightsDB(config *datastoreresource.AzureAppInsightsConfig) (TraceDB, error) { +func NewAzureAppInsightsDB(config *datastore.AzureAppInsightsConfig) (TraceDB, error) { var credentials azcore.TokenCredential var err error if config.UseAzureActiveDirectoryAuth { diff --git a/server/tracedb/datasource/datasource.go b/server/tracedb/datasource/datasource.go index 8b3fec519d..3188225833 100644 --- a/server/tracedb/datasource/datasource.go +++ b/server/tracedb/datasource/datasource.go @@ -3,8 +3,8 @@ package datasource import ( "context" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "google.golang.org/grpc" ) @@ -45,7 +45,7 @@ func (db *noopDataSource) TestConnection(ctx context.Context) model.ConnectionTe return model.ConnectionTestStep{} } -func New(name string, cfg *datastoreresource.MultiChannelClientConfig, callbacks Callbacks) DataSource { +func New(name string, cfg *datastore.MultiChannelClientConfig, callbacks Callbacks) DataSource { sourceType := SupportedDataSource(cfg.Type) switch sourceType { diff --git a/server/tracedb/datasource/grpc.go b/server/tracedb/datasource/grpc.go index 9834a043ad..28c8510b03 100644 --- a/server/tracedb/datasource/grpc.go +++ b/server/tracedb/datasource/grpc.go @@ -4,9 +4,9 @@ import ( "context" "fmt" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/pkg/errors" "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/config/configcompression" @@ -22,7 +22,7 @@ type GrpcClient struct { callback GrpcCallback } -func convertDomainConfigToOpenTelemetryConfig(config *datastoreresource.GRPCClientSettings) *configgrpc.GRPCClientSettings { +func convertDomainConfigToOpenTelemetryConfig(config *datastore.GRPCClientSettings) *configgrpc.GRPCClientSettings { // manual map domain fields to OTel fields otelConfig := &configgrpc.GRPCClientSettings{ @@ -61,7 +61,7 @@ func convertDomainConfigToOpenTelemetryConfig(config *datastoreresource.GRPCClie return otelConfig } -func NewGrpcClient(name string, config *datastoreresource.GRPCClientSettings, callback GrpcCallback) DataSource { +func NewGrpcClient(name string, config *datastore.GRPCClientSettings, callback GrpcCallback) DataSource { otelConfig := convertDomainConfigToOpenTelemetryConfig(config) return &GrpcClient{ diff --git a/server/tracedb/datasource/http.go b/server/tracedb/datasource/http.go index cf09931bcd..6053cd7bd5 100644 --- a/server/tracedb/datasource/http.go +++ b/server/tracedb/datasource/http.go @@ -12,9 +12,9 @@ import ( "strings" "github.com/goware/urlx" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" ) type HttpClient struct { @@ -24,7 +24,7 @@ type HttpClient struct { callback HttpCallback } -func NewHttpClient(name string, config *datastoreresource.HttpClientConfig, callback HttpCallback) DataSource { +func NewHttpClient(name string, config *datastore.HttpClientConfig, callback HttpCallback) DataSource { endpoint, _ := urlx.Parse(config.Url) client := &http.Client{ Transport: &http.Transport{ @@ -118,7 +118,7 @@ func (client *HttpClient) Request(ctx context.Context, path, method, body string return response, nil } -func getTlsConfig(dataStoreTls *datastoreresource.TLS) *tls.Config { +func getTlsConfig(dataStoreTls *datastore.TLS) *tls.Config { tlsConfig := tls.Config{} if dataStoreTls == nil { diff --git a/server/tracedb/elasticsearchdb.go b/server/tracedb/elasticsearchdb.go index c4e2689013..12e0188c54 100644 --- a/server/tracedb/elasticsearchdb.go +++ b/server/tracedb/elasticsearchdb.go @@ -14,9 +14,9 @@ import ( "github.com/elastic/go-elasticsearch/v8" "github.com/elastic/go-elasticsearch/v8/esapi" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel/trace" ) @@ -26,7 +26,7 @@ func elasticSearchDefaultPorts() []string { type elasticsearchDB struct { realTraceDB - config *datastoreresource.ElasticSearchConfig + config *datastore.ElasticSearchConfig client *elasticsearch.Client } @@ -103,7 +103,7 @@ func (db *elasticsearchDB) GetTraceByID(ctx context.Context, traceID string) (mo return convertElasticSearchFormatIntoTrace(traceID, searchResponse), nil } -func newElasticSearchDB(cfg *datastoreresource.ElasticSearchConfig) (TraceDB, error) { +func newElasticSearchDB(cfg *datastore.ElasticSearchConfig) (TraceDB, error) { var caCert []byte if cfg.Certificate != "" { caCert = []byte(cfg.Certificate) diff --git a/server/tracedb/jaegerdb.go b/server/tracedb/jaegerdb.go index 416fe74466..aa7a984026 100644 --- a/server/tracedb/jaegerdb.go +++ b/server/tracedb/jaegerdb.go @@ -6,12 +6,12 @@ import ( "io" "strings" + "github.com/kubeshop/tracetest/server/datastore" pb "github.com/kubeshop/tracetest/server/internal/proto-gen-go/api_v3" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/pkg/id" "github.com/kubeshop/tracetest/server/tracedb/connection" "github.com/kubeshop/tracetest/server/tracedb/datasource" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/kubeshop/tracetest/server/traces" v1 "go.opentelemetry.io/proto/otlp/trace/v1" "google.golang.org/grpc" @@ -27,9 +27,9 @@ type jaegerTraceDB struct { dataSource datasource.DataSource } -func newJaegerDB(grpcConfig *datastoreresource.GRPCClientSettings) (TraceDB, error) { - baseConfig := &datastoreresource.MultiChannelClientConfig{ - Type: datastoreresource.MultiChannelClientTypeGRPC, +func newJaegerDB(grpcConfig *datastore.GRPCClientSettings) (TraceDB, error) { + baseConfig := &datastore.MultiChannelClientConfig{ + Type: datastore.MultiChannelClientTypeGRPC, Grpc: grpcConfig, } diff --git a/server/tracedb/opensearchdb.go b/server/tracedb/opensearchdb.go index c36d1f3af7..d61a52ab61 100644 --- a/server/tracedb/opensearchdb.go +++ b/server/tracedb/opensearchdb.go @@ -10,9 +10,9 @@ import ( "strings" "time" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/opensearch-project/opensearch-go" "github.com/opensearch-project/opensearch-go/opensearchapi" "go.opentelemetry.io/otel/trace" @@ -24,7 +24,7 @@ func opensearchDefaultPorts() []string { type opensearchDB struct { realTraceDB - config *datastoreresource.ElasticSearchConfig + config *datastore.ElasticSearchConfig client *opensearch.Client } @@ -99,7 +99,7 @@ func (db *opensearchDB) GetTraceByID(ctx context.Context, traceID string) (model return convertOpensearchFormatIntoTrace(traceID, searchResponse), nil } -func newOpenSearchDB(cfg *datastoreresource.ElasticSearchConfig) (TraceDB, error) { +func newOpenSearchDB(cfg *datastore.ElasticSearchConfig) (TraceDB, error) { var caCert []byte if cfg.Certificate != "" { caCert = []byte(cfg.Certificate) diff --git a/server/tracedb/signalfxdb.go b/server/tracedb/signalfxdb.go index 4444c627ca..b08deafce4 100644 --- a/server/tracedb/signalfxdb.go +++ b/server/tracedb/signalfxdb.go @@ -10,9 +10,9 @@ import ( "strings" "time" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/tracedb/connection" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel/trace" ) @@ -194,7 +194,7 @@ func convertSignalFXSpan(in signalFXSpan) model.Span { } } -func newSignalFXDB(cfg *datastoreresource.SignalFXConfig) (TraceDB, error) { +func newSignalFXDB(cfg *datastore.SignalFXConfig) (TraceDB, error) { return &signalfxDB{ Realm: cfg.Realm, Token: cfg.Token, diff --git a/server/tracedb/tempodb.go b/server/tracedb/tempodb.go index a0b12d45c6..ee6d0a3b87 100644 --- a/server/tracedb/tempodb.go +++ b/server/tracedb/tempodb.go @@ -8,12 +8,12 @@ import ( "net/http" "strings" + "github.com/kubeshop/tracetest/server/datastore" tempopb "github.com/kubeshop/tracetest/server/internal/proto-gen-go/tempo-idl" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/pkg/id" "github.com/kubeshop/tracetest/server/tracedb/connection" "github.com/kubeshop/tracetest/server/tracedb/datasource" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/kubeshop/tracetest/server/traces" "github.com/pkg/errors" "go.opentelemetry.io/otel/trace" @@ -31,7 +31,7 @@ type tempoTraceDB struct { dataSource datasource.DataSource } -func newTempoDB(config *datastoreresource.MultiChannelClientConfig) (TraceDB, error) { +func newTempoDB(config *datastore.MultiChannelClientConfig) (TraceDB, error) { dataSource := datasource.New("Tempo", config, datasource.Callbacks{ HTTP: httpGetTraceByID, GRPC: grpcGetTraceByID, diff --git a/server/tracedb/tracedb.go b/server/tracedb/tracedb.go index dc5044d826..2078c60948 100644 --- a/server/tracedb/tracedb.go +++ b/server/tracedb/tracedb.go @@ -4,9 +4,9 @@ import ( "context" "fmt" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/model" "github.com/kubeshop/tracetest/server/pkg/id" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "go.opentelemetry.io/otel/trace" ) @@ -49,7 +49,7 @@ type traceDBFactory struct { runRepository model.RunRepository } -func Factory(runRepository model.RunRepository) func(ds datastoreresource.DataStore) (TraceDB, error) { +func Factory(runRepository model.RunRepository) func(ds datastore.DataStore) (TraceDB, error) { f := traceDBFactory{ runRepository: runRepository, } @@ -57,7 +57,7 @@ func Factory(runRepository model.RunRepository) func(ds datastoreresource.DataSt return f.New } -func (f *traceDBFactory) getTraceDBInstance(ds datastoreresource.DataStore) (TraceDB, error) { +func (f *traceDBFactory) getTraceDBInstance(ds datastore.DataStore) (TraceDB, error) { var tdb TraceDB var err error @@ -67,19 +67,19 @@ func (f *traceDBFactory) getTraceDBInstance(ds datastoreresource.DataStore) (Tra } switch ds.Type { - case datastoreresource.DataStoreTypeJaeger: + case datastore.DataStoreTypeJaeger: tdb, err = newJaegerDB(ds.Values.Jaeger) - case datastoreresource.DataStoreTypeTempo: + case datastore.DataStoreTypeTempo: tdb, err = newTempoDB(ds.Values.Tempo) - case datastoreresource.DataStoreTypeElasticAPM: + case datastore.DataStoreTypeElasticAPM: tdb, err = newElasticSearchDB(ds.Values.ElasticApm) - case datastoreresource.DataStoreTypeOpenSearch: + case datastore.DataStoreTypeOpenSearch: tdb, err = newOpenSearchDB(ds.Values.OpenSearch) - case datastoreresource.DataStoreTypeSignalFX: + case datastore.DataStoreTypeSignalFX: tdb, err = newSignalFXDB(ds.Values.SignalFx) - case datastoreresource.DataStoreTypeAwsXRay: + case datastore.DataStoreTypeAwsXRay: tdb, err = NewAwsXRayDB(ds.Values.AwsXRay) - case datastoreresource.DatastoreTypeAzureAppInsights: + case datastore.DatastoreTypeAzureAppInsights: tdb, err = NewAzureAppInsightsDB(ds.Values.AzureAppInsights) default: return &noopTraceDB{}, nil @@ -96,7 +96,7 @@ func (f *traceDBFactory) getTraceDBInstance(ds datastoreresource.DataStore) (Tra return tdb, err } -func (f *traceDBFactory) New(ds datastoreresource.DataStore) (TraceDB, error) { +func (f *traceDBFactory) New(ds datastore.DataStore) (TraceDB, error) { tdb, err := f.getTraceDBInstance(ds) if err != nil { diff --git a/server/tracedb/tracedb_test.go b/server/tracedb/tracedb_test.go index b7638c5b3c..3813e5ef26 100644 --- a/server/tracedb/tracedb_test.go +++ b/server/tracedb/tracedb_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" + "github.com/kubeshop/tracetest/server/datastore" "github.com/kubeshop/tracetest/server/tracedb" - "github.com/kubeshop/tracetest/server/tracedb/datastoreresource" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -13,16 +13,16 @@ import ( func TestCreateClient(t *testing.T) { cases := []struct { name string - ds datastoreresource.DataStore + ds datastore.DataStore expectedType string expectedError error }{ { name: "Jaeger", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeJaeger, - Values: datastoreresource.DataStoreValues{ - Jaeger: &datastoreresource.GRPCClientSettings{ + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeJaeger, + Values: datastore.DataStoreValues{ + Jaeger: &datastore.GRPCClientSettings{ Endpoint: "notexists:123", }, }, @@ -31,97 +31,97 @@ func TestCreateClient(t *testing.T) { }, { name: "Tempo", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeTempo, - Values: datastoreresource.DataStoreValues{ - Tempo: &datastoreresource.MultiChannelClientConfig{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeTempo, + Values: datastore.DataStoreValues{ + Tempo: &datastore.MultiChannelClientConfig{}, }, }, expectedType: "*tracedb.tempoTraceDB", }, { name: "ElasticSearch", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeElasticAPM, - Values: datastoreresource.DataStoreValues{ - ElasticApm: &datastoreresource.ElasticSearchConfig{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeElasticAPM, + Values: datastore.DataStoreValues{ + ElasticApm: &datastore.ElasticSearchConfig{}, }, }, expectedType: "*tracedb.elasticsearchDB", }, { name: "OpenSearch", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeOpenSearch, - Values: datastoreresource.DataStoreValues{ - OpenSearch: &datastoreresource.ElasticSearchConfig{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeOpenSearch, + Values: datastore.DataStoreValues{ + OpenSearch: &datastore.ElasticSearchConfig{}, }, }, expectedType: "*tracedb.opensearchDB", }, { name: "SignalFX", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeSignalFX, - Values: datastoreresource.DataStoreValues{ - SignalFx: &datastoreresource.SignalFXConfig{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeSignalFX, + Values: datastore.DataStoreValues{ + SignalFx: &datastore.SignalFXConfig{}, }, }, expectedType: "*tracedb.signalfxDB", }, { name: "AWSXRay", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeAwsXRay, - Values: datastoreresource.DataStoreValues{ - AwsXRay: &datastoreresource.AWSXRayConfig{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeAwsXRay, + Values: datastore.DataStoreValues{ + AwsXRay: &datastore.AWSXRayConfig{}, }, }, expectedType: "*tracedb.awsxrayDB", }, { name: "OTLP", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeOTLP, - Values: datastoreresource.DataStoreValues{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeOTLP, + Values: datastore.DataStoreValues{}, }, expectedType: "*tracedb.OTLPTraceDB", }, { name: "NewRelic", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeNewRelic, - Values: datastoreresource.DataStoreValues{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeNewRelic, + Values: datastore.DataStoreValues{}, }, expectedType: "*tracedb.OTLPTraceDB", }, { name: "Lightstep", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeLighStep, - Values: datastoreresource.DataStoreValues{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeLighStep, + Values: datastore.DataStoreValues{}, }, expectedType: "*tracedb.OTLPTraceDB", }, { name: "Honeycomb", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeHoneycomb, - Values: datastoreresource.DataStoreValues{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeHoneycomb, + Values: datastore.DataStoreValues{}, }, expectedType: "*tracedb.OTLPTraceDB", }, { name: "DataDog", - ds: datastoreresource.DataStore{ - Type: datastoreresource.DataStoreTypeDataDog, - Values: datastoreresource.DataStoreValues{}, + ds: datastore.DataStore{ + Type: datastore.DataStoreTypeDataDog, + Values: datastore.DataStoreValues{}, }, expectedType: "*tracedb.OTLPTraceDB", }, { name: "EmptyConfig", - ds: datastoreresource.DataStore{}, + ds: datastore.DataStore{}, expectedType: "*tracedb.noopTraceDB", }, }