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

Function TestRulerEvalWithQueryFrontend

integration/ruler_test.go:1716–1811  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1714}
1715
1716func TestRulerEvalWithQueryFrontend(t *testing.T) {
1717 s, err := e2e.NewScenario(networkName)
1718 require.NoError(t, err)
1719 defer s.Close()
1720
1721 // Start dependencies.
1722 consul := e2edb.NewConsul()
1723 minio := e2edb.NewMinio(9000, bucketName, rulestoreBucketName)
1724 require.NoError(t, s.StartAndWaitReady(consul, minio))
1725
1726 // Configure the ruler.
1727 flags := mergeFlags(
1728 BlocksStorageFlags(),
1729 RulerFlags(),
1730 map[string]string{
1731 // Evaluate rules often, so that we don't need to wait for metrics to show up.
1732 "-ruler.evaluation-interval": "2s",
1733 // We run single ingester only, no replication.
1734 "-distributor.replication-factor": "1",
1735 },
1736 )
1737
1738 const namespace = "test"
1739 const user = "user"
1740
1741 distributor := e2ecortex.NewDistributor("distributor", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), flags, "")
1742 ingester := e2ecortex.NewIngester("ingester", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), flags, "")
1743 require.NoError(t, s.StartAndWaitReady(distributor, ingester))
1744 for _, format := range []string{"protobuf", "json"} {
1745 t.Run(fmt.Sprintf("format:%s", format), func(t *testing.T) {
1746 queryFrontendFlag := mergeFlags(flags, map[string]string{
1747 "-ruler.query-response-format": format,
1748 "-frontend.query-stats-enabled": "true",
1749 })
1750 queryFrontend := e2ecortex.NewQueryFrontend("query-frontend", queryFrontendFlag, "")
1751 require.NoError(t, s.Start(queryFrontend))
1752
1753 querier := e2ecortex.NewQuerier("querier", e2ecortex.RingStoreConsul, consul.NetworkHTTPEndpoint(), mergeFlags(queryFrontendFlag, map[string]string{
1754 "-querier.frontend-address": queryFrontend.NetworkGRPCEndpoint(),
1755 }), "")
1756 require.NoError(t, s.StartAndWaitReady(querier))
1757
1758 rulerFlag := mergeFlags(queryFrontendFlag, map[string]string{
1759 "-ruler.frontend-address": queryFrontend.NetworkGRPCEndpoint(),
1760 })
1761 ruler := e2ecortex.NewRuler("ruler", consul.NetworkHTTPEndpoint(), rulerFlag, "")
1762 require.NoError(t, s.StartAndWaitReady(ruler))
1763
1764 t.Cleanup(func() {
1765 _ = s.Stop(ruler)
1766 _ = s.Stop(queryFrontend)
1767 _ = s.Stop(querier)
1768 })
1769
1770 c, err := e2ecortex.NewClient("", "", "", ruler.HTTPEndpoint(), user)
1771 require.NoError(t, err)
1772
1773 expression := "metric" // vector

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
StartAndWaitReadyMethod · 0.95
StartMethod · 0.95
StopMethod · 0.95
SetRuleGroupMethod · 0.95
NewScenarioFunction · 0.92
NewDistributorFunction · 0.92
NewIngesterFunction · 0.92
NewQueryFrontendFunction · 0.92
NewQuerierFunction · 0.92
NewRulerFunction · 0.92
NewClientFunction · 0.92

Tested by

no test coverage detected