Skip to content

Commit d1d5969

Browse files
authored
Don't create userState in query() (#861)
If we don't have any data for a particular user, just return blank rather than creating an empty entry for it. This is a minor optimisation.
1 parent 3ac9256 commit d1d5969

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

pkg/ingester/ingester.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"github.com/weaveworks/cortex/pkg/prom1/storage/local/chunk"
2020

2121
"github.com/weaveworks/common/httpgrpc"
22+
"github.com/weaveworks/common/user"
2223
cortex_chunk "github.com/weaveworks/cortex/pkg/chunk"
2324
"github.com/weaveworks/cortex/pkg/ingester/client"
2425
"github.com/weaveworks/cortex/pkg/ring"
@@ -390,15 +391,19 @@ func (i *Ingester) Query(ctx old_ctx.Context, req *client.QueryRequest) (*client
390391
func (i *Ingester) query(ctx context.Context, from, through model.Time, matchers []*labels.Matcher) (model.Matrix, error) {
391392
i.queries.Inc()
392393

394+
userID, err := user.ExtractOrgID(ctx)
395+
if err != nil {
396+
return nil, fmt.Errorf("no user id")
397+
}
398+
result := model.Matrix{}
393399
i.userStatesMtx.RLock()
394400
defer i.userStatesMtx.RUnlock()
395-
state, err := i.userStates.getOrCreate(ctx)
396-
if err != nil {
397-
return nil, err
401+
state, ok := i.userStates.get(userID)
402+
if !ok {
403+
return result, nil
398404
}
399405

400406
queriedSamples := 0
401-
result := model.Matrix{}
402407
err = state.forSeriesMatching(matchers, func(_ model.Fingerprint, series *memorySeries) error {
403408
values, err := series.samplesForRange(from, through)
404409
if err != nil {

0 commit comments

Comments
 (0)