diff --git a/plugin/storage/cassandra/samplingstore/storage.go b/plugin/storage/cassandra/samplingstore/storage.go index f3c0693f88a..de4bbb54553 100644 --- a/plugin/storage/cassandra/samplingstore/storage.go +++ b/plugin/storage/cassandra/samplingstore/storage.go @@ -38,11 +38,9 @@ const ( constBucket = 1 constBucketStr = `1` - insertThroughput = `INSERT INTO operation_throughput(bucket, ts, throughput) VALUES (?, ?, ?)` - getThroughput = `SELECT throughput FROM operation_throughput WHERE bucket IN ` + buckets + ` AND ts > ? AND ts <= ?` - insertProbabilities = `INSERT INTO sampling_probabilities(bucket, ts, hostname, probabilities) VALUES (?, ?, ?, ?)` - getProbabilities = `SELECT probabilities, hostname FROM sampling_probabilities WHERE bucket = ` + constBucketStr + - ` AND ts > ? AND ts <= ?` + insertThroughput = `INSERT INTO operation_throughput(bucket, ts, throughput) VALUES (?, ?, ?)` + getThroughput = `SELECT throughput FROM operation_throughput WHERE bucket IN ` + buckets + ` AND ts > ? AND ts <= ?` + insertProbabilities = `INSERT INTO sampling_probabilities(bucket, ts, hostname, probabilities) VALUES (?, ?, ?, ?)` getLatestProbabilities = `SELECT probabilities FROM sampling_probabilities WHERE bucket = ` + constBucketStr + ` LIMIT 1` ) @@ -115,21 +113,6 @@ func (s *SamplingStore) GetLatestProbabilities() (model.ServiceOperationProbabil return s.stringToProbabilities(probabilitiesStr), nil } -// GetProbabilitiesAndQPS implements samplingstore.Reader#GetProbabilitiesAndQPS. -func (s *SamplingStore) GetProbabilitiesAndQPS(start, end time.Time) (map[string][]model.ServiceOperationData, error) { - iter := s.session.Query(getProbabilities, gocql.UUIDFromTime(start), gocql.UUIDFromTime(end)).Iter() - hostProbabilitiesAndQPS := make(map[string][]model.ServiceOperationData) - var probabilitiesAndQPSStr, host string - for iter.Scan(&probabilitiesAndQPSStr, &host) { - hostProbabilitiesAndQPS[host] = append(hostProbabilitiesAndQPS[host], s.stringToProbabilitiesAndQPS(probabilitiesAndQPSStr)) - } - if err := iter.Close(); err != nil { - err = fmt.Errorf("error reading probabilities and qps from storage: %w", err) - return nil, err - } - return hostProbabilitiesAndQPS, nil -} - // This is random enough for storage purposes func generateRandomBucket() int64 { return time.Now().UnixNano() % 10 diff --git a/plugin/storage/cassandra/samplingstore/storage_test.go b/plugin/storage/cassandra/samplingstore/storage_test.go index 4662434ea4b..76ce004e69e 100644 --- a/plugin/storage/cassandra/samplingstore/storage_test.go +++ b/plugin/storage/cassandra/samplingstore/storage_test.go @@ -225,72 +225,6 @@ func TestGetThroughput(t *testing.T) { } } -func TestGetProbabilitiesAndQPS(t *testing.T) { - testCases := []struct { - caption string - queryError error - expectedError string - }{ - { - caption: "success", - }, - { - caption: "failure", - queryError: errors.New("query error"), - expectedError: "error reading probabilities and qps from storage: query error", - }, - } - for _, tc := range testCases { - testCase := tc // capture loop var - t.Run(testCase.caption, func(t *testing.T) { - withSamplingStore(func(s *samplingStoreTest) { - scanMatcher := func() interface{} { - probabilitiesAndQPSStr := []string{ - "svc,op,0.84,40\n", - } - scanFunc := func(args []interface{}) bool { - if len(probabilitiesAndQPSStr) == 0 { - return false - } - for _, arg := range args { - if ptr, ok := arg.(*string); ok { - *ptr = probabilitiesAndQPSStr[0] - break - } - } - probabilitiesAndQPSStr = probabilitiesAndQPSStr[1:] - return true - } - return mock.MatchedBy(scanFunc) - } - - iter := &mocks.Iterator{} - iter.On("Scan", scanMatcher()).Return(true) - iter.On("Scan", scanMatcher()).Return(false) - iter.On("Close").Return(testCase.queryError) - - query := &mocks.Query{} - query.On("Iter").Return(iter) - - s.session.On("Query", mock.AnythingOfType("string"), matchEverything()).Return(query) - - hostProbabilitiesAndQPS, err := s.store.GetProbabilitiesAndQPS(testTime, testTime) - - if testCase.expectedError == "" { - assert.NoError(t, err) - assert.Len(t, hostProbabilitiesAndQPS, 1) - pAndQ := hostProbabilitiesAndQPS[""] - assert.Len(t, pAndQ, 1) - assert.Equal(t, 0.84, pAndQ[0]["svc"]["op"].Probability) - assert.Equal(t, float64(40), pAndQ[0]["svc"]["op"].QPS) - } else { - assert.EqualError(t, err, testCase.expectedError) - } - }) - }) - } -} - func TestGetLatestProbabilities(t *testing.T) { testCases := []struct { caption string diff --git a/storage/samplingstore/interface.go b/storage/samplingstore/interface.go index 8d5498454aa..7c10aab8f40 100644 --- a/storage/samplingstore/interface.go +++ b/storage/samplingstore/interface.go @@ -32,9 +32,6 @@ type Store interface { // GetThroughput retrieves aggregated throughput for operations within a time range. GetThroughput(start, end time.Time) ([]*model.Throughput, error) - // GetProbabilitiesAndQPS retrieves the sampling probabilities and measured qps per host within a time range. - GetProbabilitiesAndQPS(start, end time.Time) (map[string][]model.ServiceOperationData, error) - // GetLatestProbabilities retrieves the latest sampling probabilities. GetLatestProbabilities() (model.ServiceOperationProbabilities, error) } diff --git a/storage/samplingstore/mocks/Store.go b/storage/samplingstore/mocks/Store.go index 2455300d37d..ddfa6692c7f 100644 --- a/storage/samplingstore/mocks/Store.go +++ b/storage/samplingstore/mocks/Store.go @@ -72,27 +72,6 @@ func (_m *Store) GetThroughput(start time.Time, end time.Time) ([]*model.Through return r0, r1 } -func (_m *Store) GetProbabilitiesAndQPS(start time.Time, end time.Time) (map[string][]model.ServiceOperationData, error) { - ret := _m.Called(start, end) - - var r0 map[string][]model.ServiceOperationData - if rf, ok := ret.Get(0).(func(time.Time, time.Time) map[string][]model.ServiceOperationData); ok { - r0 = rf(start, end) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(map[string][]model.ServiceOperationData) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(time.Time, time.Time) error); ok { - r1 = rf(start, end) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} func (_m *Store) GetLatestProbabilities() (model.ServiceOperationProbabilities, error) { ret := _m.Called()