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

Function TestParseQueryAPIQuerier

integration/parse_query_api_test.go:19–72  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

17)
18
19func TestParseQueryAPIQuerier(t *testing.T) {
20 s, err := e2e.NewScenario(networkName)
21 require.NoError(t, err)
22 defer s.Close()
23
24 // Start dependencies.
25 consul := e2edb.NewConsul()
26 minio := e2edb.NewMinio(9000, bucketName)
27 require.NoError(t, s.StartAndWaitReady(consul, minio))
28
29 flags := mergeFlags(BlocksStorageFlags(), map[string]string{
30 "-auth.enabled": "true",
31 })
32
33 distributor := e2ecortex.NewDistributor("distributor", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), flags, "")
34 ingester := e2ecortex.NewIngester("ingester", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), flags, "")
35 require.NoError(t, s.StartAndWaitReady(distributor, ingester))
36
37 // Wait until the distributor has updated the ring.
38 require.NoError(t, distributor.WaitSumMetrics(e2e.Equals(512), "cortex_ring_tokens_total"))
39
40 querier := e2ecortex.NewQuerier("querier", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), flags, "")
41 require.NoError(t, s.StartAndWaitReady(querier))
42
43 // Wait until the querier has updated the ring.
44 require.NoError(t, querier.WaitSumMetrics(e2e.Equals(512), "cortex_ring_tokens_total"))
45
46 endpoint := fmt.Sprintf("http://%s/api/prom/api/v1/parse_query?query=foo/bar", querier.HTTPEndpoint())
47
48 req, err := http.NewRequest("GET", endpoint, nil)
49 require.NoError(t, err)
50 req.Header.Set("X-Scope-OrgID", "user-1")
51
52 resp, err := http.DefaultClient.Do(req)
53 require.NoError(t, err)
54 defer resp.Body.Close()
55
56 body, err := io.ReadAll(resp.Body)
57 require.NoError(t, err)
58
59 require.Equal(t, http.StatusOK, resp.StatusCode)
60
61 var parsed struct {
62 Status string `json:"status"`
63 Data json.RawMessage `json:"data"`
64 }
65 require.NoError(t, json.Unmarshal(body, &parsed))
66 require.Equal(t, "success", parsed.Status)
67
68 // check for AST contents.
69 require.Contains(t, string(parsed.Data), "\"op\":\"/\"")
70 require.Contains(t, string(parsed.Data), `"lhs":{"anchored":false,"matchers":[{"name":"__name__","type":"=","value":"foo"}]`)
71 require.Contains(t, string(parsed.Data), `"rhs":{"anchored":false,"matchers":[{"name":"__name__","type":"=","value":"bar"}]`)
72}
73
74func TestParseQueryAPIQueryFrontend(t *testing.T) {
75 s, err := e2e.NewScenario(networkName)

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
StartAndWaitReadyMethod · 0.95
NewScenarioFunction · 0.92
NewDistributorFunction · 0.92
NewIngesterFunction · 0.92
EqualsFunction · 0.92
NewQuerierFunction · 0.92
NetworkHTTPEndpointMethod · 0.80
HTTPEndpointMethod · 0.80
SetMethod · 0.65
DoMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected