MCPcopy Index your code
hub / github.com/cortexproject/cortex / TestRemoteReadHandler

Function TestRemoteReadHandler

pkg/querier/remote_read_test.go:26–89  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

24)
25
26func TestRemoteReadHandler(t *testing.T) {
27 t.Parallel()
28 q := storage.QueryableFunc(func(mint, maxt int64) (storage.Querier, error) {
29 return mockQuerier{
30 matrix: model.Matrix{
31 {
32 Metric: model.Metric{"foo": "bar"},
33 Values: []model.SamplePair{
34 {Timestamp: 0, Value: 0},
35 {Timestamp: 1, Value: 1},
36 {Timestamp: 2, Value: 2},
37 {Timestamp: 3, Value: 3},
38 },
39 },
40 },
41 }, nil
42 })
43 handler := RemoteReadHandler(q, log.NewNopLogger())
44
45 requestBody, err := proto.Marshal(&client.ReadRequest{
46 Queries: []*client.QueryRequest{
47 {StartTimestampMs: 0, EndTimestampMs: 10},
48 },
49 })
50 require.NoError(t, err)
51 requestBody = snappy.Encode(nil, requestBody)
52 request, err := http.NewRequest("GET", "/query", bytes.NewReader(requestBody))
53 require.NoError(t, err)
54 request.Header.Set("X-Prometheus-Remote-Read-Version", "0.1.0")
55
56 recorder := httptest.NewRecorder()
57 handler.ServeHTTP(recorder, request)
58
59 require.Equal(t, 200, recorder.Result().StatusCode)
60 require.Equal(t, []string([]string{"application/x-protobuf"}), recorder.Result().Header["Content-Type"])
61 responseBody, err := io.ReadAll(recorder.Result().Body)
62 require.NoError(t, err)
63 responseBody, err = snappy.Decode(nil, responseBody)
64 require.NoError(t, err)
65 var response client.ReadResponse
66 err = proto.Unmarshal(responseBody, &response)
67 require.NoError(t, err)
68
69 expected := client.ReadResponse{
70 Results: []*client.QueryResponse{
71 {
72 Timeseries: []cortexpb.TimeSeries{
73 {
74 Labels: []cortexpb.LabelAdapter{
75 {Name: "foo", Value: "bar"},
76 },
77 Samples: []cortexpb.Sample{
78 {Value: 0, TimestampMs: 0},
79 {Value: 1, TimestampMs: 1},
80 {Value: 2, TimestampMs: 2},
81 {Value: 3, TimestampMs: 3},
82 },
83 },

Callers

nothing calls this directly

Calls 8

RemoteReadHandlerFunction · 0.85
EncodeMethod · 0.65
SetMethod · 0.65
EqualMethod · 0.65
DecodeMethod · 0.65
MarshalMethod · 0.45
ServeHTTPMethod · 0.45
UnmarshalMethod · 0.45

Tested by

no test coverage detected