Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove unused method GetProbabilitiesAndQPS from samplingstore #3339

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 3 additions & 20 deletions plugin/storage/cassandra/samplingstore/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -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`
)

Expand Down Expand Up @@ -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
Expand Down
66 changes: 0 additions & 66 deletions plugin/storage/cassandra/samplingstore/storage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions storage/samplingstore/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
21 changes: 0 additions & 21 deletions storage/samplingstore/mocks/Store.go
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand Down