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

Function TestQuerierEngineConfigs

integration/querier_test.go:812–873  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

810}
811
812func TestQuerierEngineConfigs(t *testing.T) {
813 const blockRangePeriod = 5 * time.Second
814
815 s, err := e2e.NewScenario(networkName)
816 require.NoError(t, err)
817 defer s.Close()
818
819 // Configure the blocks storage to frequently compact TSDB head
820 // and ship blocks to the storage.
821 flags := mergeFlags(BlocksStorageFlags(), map[string]string{
822 "-blocks-storage.tsdb.block-ranges-period": blockRangePeriod.String(),
823 "-blocks-storage.tsdb.ship-interval": "1s",
824 "-blocks-storage.tsdb.retention-period": ((blockRangePeriod * 2) - 1).String(),
825 "-querier.thanos-engine": "true",
826 "-querier.enable-x-functions": "true",
827 "-querier.optimizers": "all",
828 })
829
830 // Start dependencies.
831 minio := e2edb.NewMinio(9000, flags["-blocks-storage.s3.bucket-name"])
832 consul := e2edb.NewConsul()
833 require.NoError(t, s.StartAndWaitReady(consul, minio))
834
835 // Start Cortex components for the write path.
836 distributor := e2ecortex.NewDistributor("distributor", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), flags, "")
837 ingester := e2ecortex.NewIngester("ingester", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), flags, "")
838 require.NoError(t, s.StartAndWaitReady(distributor, ingester))
839
840 queryFrontend := e2ecortex.NewQueryFrontendWithConfigFile("query-frontend", "", flags, "")
841 require.NoError(t, s.Start(queryFrontend))
842
843 querier := e2ecortex.NewQuerier("querier", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), mergeFlags(flags, map[string]string{
844 "-querier.frontend-address": queryFrontend.NetworkGRPCEndpoint(),
845 }), "")
846 require.NoError(t, s.StartAndWaitReady(querier))
847
848 // Wait until the distributor and querier has updated the ring.
849 require.NoError(t, distributor.WaitSumMetrics(e2e.Equals(512), "cortex_ring_tokens_total"))
850 require.NoError(t, querier.WaitSumMetrics(e2e.Equals(512), "cortex_ring_tokens_total"))
851
852 c, err := e2ecortex.NewClient(distributor.HTTPEndpoint(), queryFrontend.HTTPEndpoint(), "", "", "user-1")
853 require.NoError(t, err)
854
855 // Push some series to Cortex.
856 series1Timestamp := time.Now()
857 series1, _ := generateSeries("series_1", series1Timestamp, prompb.Label{Name: "job", Value: "test"})
858 series2, _ := generateSeries("series_2", series1Timestamp, prompb.Label{Name: "job", Value: "test"})
859
860 res, err := c.Push(series1)
861 require.NoError(t, err)
862 require.Equal(t, 200, res.StatusCode)
863 res, err = c.Push(series2)
864 require.NoError(t, err)
865 require.Equal(t, 200, res.StatusCode)
866
867 for xFunc := range parse.XFunctions {
868 result, err := c.Query(fmt.Sprintf(`%s(series_1{job="test"}[1m])`, xFunc), series1Timestamp)
869 require.NoError(t, err)

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
StartAndWaitReadyMethod · 0.95
StartMethod · 0.95
PushMethod · 0.95
QueryMethod · 0.95
NewScenarioFunction · 0.92
NewDistributorFunction · 0.92
NewIngesterFunction · 0.92
NewQuerierFunction · 0.92
EqualsFunction · 0.92
NewClientFunction · 0.92

Tested by

no test coverage detected