MCPcopy Create free account
hub / github.com/cortexproject/cortex / queryStream

Method queryStream

pkg/ingester/ingester.go:2429–2473  ·  view source on GitHub ↗
(ctx context.Context, userID string, req *client.QueryRequest, stream client.Ingester_QueryStreamServer, spanlog *spanlogger.SpanLogger)

Source from the content-addressed store, hash-verified

2427}
2428
2429func (i *Ingester) queryStream(ctx context.Context, userID string, req *client.QueryRequest, stream client.Ingester_QueryStreamServer, spanlog *spanlogger.SpanLogger) error {
2430 from, through, matchers, err := client.FromQueryRequest(i.matchersCache, req)
2431 if err != nil {
2432 return err
2433 }
2434
2435 matchers, shardMatcher, err := querysharding.ExtractShardingMatchers(matchers)
2436 if err != nil {
2437 return err
2438 }
2439
2440 defer shardMatcher.Close()
2441
2442 i.metrics.queries.Inc()
2443
2444 db, err := i.getTSDB(userID)
2445 if err != nil || db == nil {
2446 return nil
2447 }
2448
2449 if err := db.acquireReadLock(); err != nil {
2450 return nil
2451 }
2452 defer db.releaseReadLock()
2453
2454 numSamples := 0
2455 numSeries := 0
2456 totalDataBytes := 0
2457 numChunks := 0
2458 numSeries, numSamples, totalDataBytes, numChunks, err = i.queryStreamChunks(ctx, userID, db, int64(from), int64(through), matchers, shardMatcher, stream)
2459
2460 if err != nil {
2461 return err
2462 }
2463
2464 i.metrics.queriedSeries.Observe(float64(numSeries))
2465 i.metrics.queriedSamples.Observe(float64(numSamples))
2466 i.metrics.queriedChunks.Observe(float64(numChunks))
2467 level.Debug(spanlog).Log("series", numSeries, "samples", numSamples, "data_bytes", totalDataBytes, "chunks", numChunks)
2468 spanlog.SetTag("series", numSeries)
2469 spanlog.SetTag("samples", numSamples)
2470 spanlog.SetTag("data_bytes", totalDataBytes)
2471 spanlog.SetTag("chunks", numChunks)
2472 return nil
2473}
2474
2475func (i *Ingester) trackInflightQueryRequest() (func(), error) {
2476 gl := i.getInstanceLimits()

Callers 1

QueryStreamMethod · 0.95

Implementers 1

Ingesterpkg/ingester/ingester.go

Calls 10

getTSDBMethod · 0.95
queryStreamChunksMethod · 0.95
FromQueryRequestFunction · 0.92
ExtractShardingMatchersFunction · 0.92
acquireReadLockMethod · 0.80
releaseReadLockMethod · 0.80
SetTagMethod · 0.80
CloseMethod · 0.65
IncMethod · 0.45
LogMethod · 0.45

Tested by

no test coverage detected