Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/pkg/distributor/http_test.go

56 lines
1.6 KiB

package distributor
import (
"io"
"net/http"
"net/http/httptest"
"testing"
"github.com/grafana/dskit/flagext"
"github.com/stretchr/testify/require"
"github.com/grafana/loki/pkg/validation"
)
func TestDistributorRingHandler(t *testing.T) {
limits := &validation.Limits{}
flagext.DefaultValues(limits)
runServer := func() *httptest.Server {
distributors, _ := prepare(t, 1, 3, limits, nil)
return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
distributors[0].ServeHTTP(w, r)
}))
}
t.Run("renders ring status for global rate limiting", func(t *testing.T) {
limits.IngestionRateStrategy = validation.GlobalIngestionRateStrategy
svr := runServer()
defer svr.Close()
resp, err := svr.Client().Get(svr.URL)
require.NoError(t, err)
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
require.NoError(t, err)
require.Contains(t, string(body), "<th>Instance ID</th>")
require.NotContains(t, string(body), "Not running with Global Rating Limit - ring not being used by the Distributor")
})
t.Run("doesn't return ring status for local rate limiting", func(t *testing.T) {
limits.IngestionRateStrategy = validation.LocalIngestionRateStrategy
svr := runServer()
defer svr.Close()
resp, err := svr.Client().Get(svr.URL)
require.NoError(t, err)
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
require.NoError(t, err)
require.Contains(t, string(body), "Not running with Global Rating Limit - ring not being used by the Distributor")
require.NotContains(t, string(body), "<th>Instance ID</th>")
})
}