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

Method QueryStream

pkg/ingester/ingester.go:2405–2427  ·  view source on GitHub ↗

QueryStream implements service.IngesterServer Streams metrics from a TSDB. This implements the client.IngesterServer interface

(req *client.QueryRequest, stream client.Ingester_QueryStreamServer)

Source from the content-addressed store, hash-verified

2403// QueryStream implements service.IngesterServer
2404// Streams metrics from a TSDB. This implements the client.IngesterServer interface
2405func (i *Ingester) QueryStream(req *client.QueryRequest, stream client.Ingester_QueryStreamServer) (err error) {
2406 defer recoverIngester(i.logger, &err)
2407 defer req.Free()
2408
2409 if err = i.checkRunning(); err != nil {
2410 return err
2411 }
2412
2413 spanlog, ctx := spanlogger.New(stream.Context(), "QueryStream")
2414 defer spanlog.Finish()
2415
2416 userID, err := users.TenantID(ctx)
2417 if err != nil {
2418 return err
2419 }
2420
2421 // Set pprof labels for profiling
2422 pprof.Do(ctx, pprof.Labels("user", userID), func(ctx context.Context) {
2423 err = i.queryStream(ctx, userID, req, stream, spanlog)
2424 })
2425
2426 return err
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)

Callers

nothing calls this directly

Implementers 1

Ingesterpkg/ingester/ingester.go

Calls 10

checkRunningMethod · 0.95
queryStreamMethod · 0.95
NewFunction · 0.92
TenantIDFunction · 0.92
recoverIngesterFunction · 0.85
FreeMethod · 0.80
FinishMethod · 0.80
DoMethod · 0.65
ContextMethod · 0.45
LabelsMethod · 0.45

Tested by

no test coverage detected