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

Method InstantQuery

pkg/ruler/frontend_client.go:90–129  ·  view source on GitHub ↗
(ctx context.Context, qs string, t time.Time)

Source from the content-addressed store, hash-verified

88}
89
90func (p *FrontendClient) InstantQuery(ctx context.Context, qs string, t time.Time) (promql.Vector, error) {
91 log, ctx := spanlogger.New(ctx, "FrontendClient.InstantQuery")
92 defer log.Finish()
93
94 req, err := p.makeRequest(ctx, qs, t)
95 if err != nil {
96 level.Error(log).Log("err", err, "query", qs)
97 return nil, err
98 }
99
100 ctx, cancel := context.WithTimeout(ctx, p.timeout)
101 defer cancel()
102
103 resp, err := p.client.Handle(ctx, req)
104
105 if err != nil {
106 level.Error(log).Log("err", err, "query", qs)
107 return nil, err
108 }
109
110 contentType := extractHeader(resp.Headers, "Content-Type")
111 decoder, ok := p.decoders[contentType]
112 if !ok {
113 err = fmt.Errorf("unknown content type: %s", contentType)
114 level.Error(log).Log("err", err, "query", qs)
115 return nil, err
116 }
117
118 vector, warning, err := decoder.Decode(resp.Body)
119 if err != nil {
120 level.Error(log).Log("err", err, "query", qs)
121 return nil, err
122 }
123
124 if len(warning) > 0 {
125 level.Warn(log).Log("warnings", warning, "query", qs)
126 }
127
128 return vector, nil
129}
130
131func extractHeader(headers []*httpgrpc.Header, target string) string {
132 for _, h := range headers {

Callers 4

TestTimeoutFunction · 0.95
TestNoOrgIdFunction · 0.95

Implementers 4

Frontendpkg/frontend/v1/frontend.go
frontendClientpkg/frontend/v1/frontendv1pb/frontend.
UnimplementedFrontendServerpkg/frontend/v1/frontendv1pb/frontend.
mockGrpcServiceHandlerpkg/cortex/cortex_test.go

Calls 8

makeRequestMethod · 0.95
NewFunction · 0.92
extractHeaderFunction · 0.85
FinishMethod · 0.80
HandleMethod · 0.65
DecodeMethod · 0.65
LogMethod · 0.45
ErrorMethod · 0.45

Tested by 4

TestTimeoutFunction · 0.76
TestNoOrgIdFunction · 0.76