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/loki/config_test.go

79 lines
1.5 KiB

package loki
import (
"flag"
"testing"
"time"
"github.com/prometheus/common/model"
"github.com/stretchr/testify/require"
"github.com/grafana/loki/v3/pkg/ingester"
"github.com/grafana/loki/v3/pkg/storage/config"
)
func TestCrossComponentValidation(t *testing.T) {
for _, tc := range []struct {
desc string
base *Config
err bool
}{
{
desc: "correct shards",
base: &Config{
Ingester: ingester.Config{
IndexShards: 32,
},
SchemaConfig: config.SchemaConfig{
Configs: []config.PeriodConfig{
{
RowShards: 16,
Schema: "v11",
From: config.DayTime{
Time: model.Now(),
},
},
},
},
},
err: false,
},
{
desc: "correct shards",
base: &Config{
Ingester: ingester.Config{
IndexShards: 32,
},
SchemaConfig: config.SchemaConfig{
Configs: []config.PeriodConfig{
{
RowShards: 16,
Schema: "v11",
From: config.DayTime{
Time: model.Now().Add(-48 * time.Hour),
},
},
{
RowShards: 17,
Schema: "v11",
From: config.DayTime{
Time: model.Now(),
},
},
},
},
},
err: true,
},
} {
tc.base.RegisterFlags(flag.NewFlagSet(tc.desc, 0))
// This test predates the newer schema required for structured metadata
tc.base.LimitsConfig.AllowStructuredMetadata = false
err := tc.base.Validate()
if tc.err {
require.NotNil(t, err)
} else {
require.Nil(t, err)
}
}
}