Skip to content

Commit 68844d4

Browse files
e2e: use prom 3 (#8165)
Signed-off-by: Michael Hoffmann <[email protected]>
1 parent d1345b9 commit 68844d4

File tree

8 files changed

+44
-41
lines changed

8 files changed

+44
-41
lines changed

cmd/thanos/receive.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1004,7 +1004,7 @@ func (rc *receiveConfig) registerFlag(cmd extkingpin.FlagClause) {
10041004
rc.tsdbMaxBlockDuration = extkingpin.ModelDuration(cmd.Flag("tsdb.max-block-duration", "Max duration for local TSDB blocks").Default("2h").Hidden())
10051005

10061006
rc.tsdbTooFarInFutureTimeWindow = extkingpin.ModelDuration(cmd.Flag("tsdb.too-far-in-future.time-window",
1007-
"Configures the allowed time window for ingesting samples too far in the future. Disabled (0s) by default"+
1007+
"Configures the allowed time window for ingesting samples too far in the future. Disabled (0s) by default. "+
10081008
"Please note enable this flag will reject samples in the future of receive local NTP time + configured duration due to clock skew in remote write clients.",
10091009
).Default("0s"))
10101010

docs/components/receive.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ Flags:
611611
--tsdb.too-far-in-future.time-window=0s
612612
Configures the allowed time window for
613613
ingesting samples too far in the future.
614-
Disabled (0s) by defaultPlease note enable
614+
Disabled (0s) by default. Please note enable
615615
this flag will reject samples in the future of
616616
receive local NTP time + configured duration
617617
due to clock skew in remote write clients.

test/e2e/distributed_query_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ func TestDistributedQueryExecution(t *testing.T) {
3838
testutil.Ok(t, err)
3939
t.Cleanup(e2ethanos.CleanScenario(t, e))
4040

41-
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "prom1", e2ethanos.DefaultPromConfig("prom1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
42-
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "prom2", e2ethanos.DefaultPromConfig("prom2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
41+
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "prom1", e2ethanos.DefaultPromConfig("prom1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
42+
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "prom2", e2ethanos.DefaultPromConfig("prom2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
4343
testutil.Ok(t, e2e.StartAndWaitReady(prom1, prom2, sidecar1, sidecar2))
4444

4545
qry1 := e2ethanos.NewQuerierBuilder(e, "1").WithStrictEndpoints(sidecar1.InternalEndpoint("grpc")).Init()

test/e2e/e2ethanos/services.go

+14-12
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ import (
2222
"gopkg.in/yaml.v2"
2323

2424
"github.com/thanos-io/objstore/client"
25-
"github.com/thanos-io/objstore/providers/s3"
26-
2725
"github.com/thanos-io/objstore/exthttp"
26+
"github.com/thanos-io/objstore/providers/s3"
2827

2928
"github.com/thanos-io/thanos/pkg/alert"
3029
apiv1 "github.com/thanos-io/thanos/pkg/api/query"
@@ -62,7 +61,7 @@ const (
6261

6362
// DefaultPrometheusImage sets default Prometheus image used in e2e service.
6463
func DefaultPrometheusImage() string {
65-
return "quay.io/prometheus/prometheus:v2.41.0"
64+
return "quay.io/prometheus/prometheus:v3.2.1"
6665
}
6766

6867
// DefaultOtelImage sets default Otel image used in e2e service.
@@ -117,6 +116,7 @@ func NewPrometheus(e e2e.Environment, name, promConfig, webConfig, promImage str
117116
"--log.level": infoLogLevel,
118117
"--web.listen-address": ":9090",
119118
})
119+
args = append(args, "--web.enable-remote-write-receiver")
120120

121121
if len(enableFeatures) > 0 {
122122
args = append(args, fmt.Sprintf("--enable-feature=%s", strings.Join(enableFeatures, ",")))
@@ -690,15 +690,16 @@ func (r *ReceiveBuilder) Init() *e2eobs.Observable {
690690
}
691691

692692
args := map[string]string{
693-
"--debug.name": r.Name(),
694-
"--grpc-address": ":9091",
695-
"--grpc-grace-period": "0s",
696-
"--http-address": ":8080",
697-
"--remote-write.address": ":8081",
698-
"--label": fmt.Sprintf(`receive="%s"`, r.Name()),
699-
"--tsdb.path": filepath.Join(r.InternalDir(), "data"),
700-
"--log.level": infoLogLevel,
701-
"--tsdb.max-exemplars": fmt.Sprintf("%v", r.maxExemplars),
693+
"--debug.name": r.Name(),
694+
"--grpc-address": ":9091",
695+
"--grpc-grace-period": "0s",
696+
"--http-address": ":8080",
697+
"--remote-write.address": ":8081",
698+
"--label": fmt.Sprintf(`receive="%s"`, r.Name()),
699+
"--tsdb.path": filepath.Join(r.InternalDir(), "data"),
700+
"--log.level": infoLogLevel,
701+
"--tsdb.max-exemplars": fmt.Sprintf("%v", r.maxExemplars),
702+
"--tsdb.too-far-in-future.time-window": "5m",
702703
}
703704

704705
if r.tenantSplitLabel != "" {
@@ -1264,6 +1265,7 @@ global:
12641265
scrape_configs:
12651266
- job_name: 'myself'
12661267
# Quick scrapes for test purposes.
1268+
fallback_scrape_protocol: 'PrometheusText0.0.4'
12671269
scrape_interval: 1s
12681270
scrape_timeout: 1s
12691271
static_configs:

test/e2e/native_histograms_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ func TestQueryNativeHistograms(t *testing.T) {
4848
testutil.Ok(t, err)
4949
t.Cleanup(e2ethanos.CleanScenario(t, e))
5050

51-
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "ha1", e2ethanos.DefaultPromConfig("prom-ha", 0, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms", "remote-write-receiver")
52-
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "ha2", e2ethanos.DefaultPromConfig("prom-ha", 1, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms", "remote-write-receiver")
51+
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "ha1", e2ethanos.DefaultPromConfig("prom-ha", 0, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms")
52+
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "ha2", e2ethanos.DefaultPromConfig("prom-ha", 1, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms")
5353
testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1, prom2, sidecar2))
5454

5555
querier := e2ethanos.NewQuerierBuilder(e, "querier", sidecar1.InternalEndpoint("grpc"), sidecar2.InternalEndpoint("grpc")).
@@ -162,8 +162,8 @@ func TestQueryFrontendNativeHistograms(t *testing.T) {
162162
testutil.Ok(t, err)
163163
t.Cleanup(e2ethanos.CleanScenario(t, e))
164164

165-
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "ha1", e2ethanos.DefaultPromConfig("prom-ha", 0, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms", "remote-write-receiver")
166-
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "ha2", e2ethanos.DefaultPromConfig("prom-ha", 1, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms", "remote-write-receiver")
165+
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "ha1", e2ethanos.DefaultPromConfig("prom-ha", 0, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms")
166+
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "ha2", e2ethanos.DefaultPromConfig("prom-ha", 1, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "native-histograms")
167167
testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1, prom2, sidecar2))
168168

169169
querier := e2ethanos.NewQuerierBuilder(e, "querier", sidecar1.InternalEndpoint("grpc"), sidecar2.InternalEndpoint("grpc")).Init()

test/e2e/query_frontend_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1069,15 +1069,15 @@ func TestTenantQFEHTTPMetrics(t *testing.T) {
10691069
// Query once with default-tenant to ensure everything is ready
10701070
// for the following requests
10711071
instantQuery(t, ctx, queryFrontend.Endpoint("http"), func() string {
1072-
return "prometheus_api_remote_read_queries"
1072+
return "prometheus_remote_read_handler_queries"
10731073
}, time.Now, promclient.QueryOptions{
10741074
Deduplicate: true,
10751075
}, 1)
10761076
testutil.Ok(t, err)
10771077

10781078
// Query a few times with tenant 1
10791079
instantQuery(t, ctx, queryFrontend.Endpoint("http"), func() string {
1080-
return "prometheus_api_remote_read_queries"
1080+
return "prometheus_remote_read_handler_queries"
10811081
}, time.Now, promclient.QueryOptions{
10821082
Deduplicate: true,
10831083
HTTPHeaders: map[string][]string{"thanos-tenant": {"test-tenant-1"}},

test/e2e/query_test.go

+18-18
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ func TestQueryWithExtendedFunctions(t *testing.T) {
320320
t.Cleanup(e2ethanos.CleanScenario(t, e))
321321

322322
// create prom + sidecar
323-
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "prom", e2ethanos.DefaultPromConfig("prom", 0, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
323+
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "prom", e2ethanos.DefaultPromConfig("prom", 0, "", "", e2ethanos.LocalPrometheusTarget), "", e2ethanos.DefaultPrometheusImage(), "")
324324
testutil.Ok(t, e2e.StartAndWaitReady(prom, sidecar))
325325

326326
// create querier
@@ -1030,9 +1030,9 @@ func TestSidecarQueryDedup(t *testing.T) {
10301030
ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
10311031
t.Cleanup(cancel)
10321032

1033-
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "p1", e2ethanos.DefaultPromConfig("p1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1034-
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "p2", e2ethanos.DefaultPromConfig("p1", 1, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1035-
prom3, sidecar3 := e2ethanos.NewPrometheusWithSidecar(e, "p3", e2ethanos.DefaultPromConfig("p2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1033+
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "p1", e2ethanos.DefaultPromConfig("p1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
1034+
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "p2", e2ethanos.DefaultPromConfig("p1", 1, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
1035+
prom3, sidecar3 := e2ethanos.NewPrometheusWithSidecar(e, "p3", e2ethanos.DefaultPromConfig("p2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
10361036
testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1, prom2, sidecar2, prom3, sidecar3))
10371037

10381038
{
@@ -1220,10 +1220,10 @@ func TestSidecarQueryEvaluation(t *testing.T) {
12201220
testutil.Ok(t, err)
12211221
t.Cleanup(e2ethanos.CleanScenario(t, e))
12221222

1223-
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "p1", e2ethanos.DefaultPromConfig("p1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1223+
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "p1", e2ethanos.DefaultPromConfig("p1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
12241224
testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1))
12251225

1226-
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "p2", e2ethanos.DefaultPromConfig("p2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1226+
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "p2", e2ethanos.DefaultPromConfig("p2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
12271227
testutil.Ok(t, e2e.StartAndWaitReady(prom2, sidecar2))
12281228

12291229
endpoints := []string{
@@ -1660,7 +1660,7 @@ func TestGrpcInstantQuery(t *testing.T) {
16601660
t.Cleanup(e2ethanos.CleanScenario(t, e))
16611661

16621662
promConfig := e2ethanos.DefaultPromConfig("p1", 0, "", "")
1663-
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "p1", promConfig, "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1663+
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "p1", promConfig, "", e2ethanos.DefaultPrometheusImage(), "")
16641664
testutil.Ok(t, e2e.StartAndWaitReady(prom, sidecar))
16651665

16661666
endpoints := []string{
@@ -1681,7 +1681,7 @@ func TestGrpcInstantQuery(t *testing.T) {
16811681
{
16821682
label: "test",
16831683
value: 2,
1684-
timestampUnixNano: now.Add(time.Hour).UnixNano(),
1684+
timestampUnixNano: now.Add(5 * time.Minute).UnixNano(),
16851685
},
16861686
}
16871687
ctx := context.Background()
@@ -1700,7 +1700,7 @@ func TestGrpcInstantQuery(t *testing.T) {
17001700
expectedResult: 1,
17011701
},
17021702
{
1703-
time: now.Add(time.Hour),
1703+
time: now.Add(5 * time.Minute),
17041704
expectedResult: 2,
17051705
},
17061706
}
@@ -1766,7 +1766,7 @@ func TestGrpcQueryRange(t *testing.T) {
17661766
t.Cleanup(e2ethanos.CleanScenario(t, e))
17671767

17681768
promConfig := e2ethanos.DefaultPromConfig("p1", 0, "", "")
1769-
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "p1", promConfig, "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1769+
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "p1", promConfig, "", e2ethanos.DefaultPrometheusImage(), "")
17701770
testutil.Ok(t, e2e.StartAndWaitReady(prom, sidecar))
17711771

17721772
endpoints := []string{
@@ -1900,7 +1900,7 @@ func TestSidecarPrefersExtLabels(t *testing.T) {
19001900
external_labels:
19011901
region: test`
19021902

1903-
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "p1", promCfg, "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
1903+
prom, sidecar := e2ethanos.NewPrometheusWithSidecar(e, "p1", promCfg, "", e2ethanos.DefaultPrometheusImage(), "")
19041904
testutil.Ok(t, e2e.StartAndWaitReady(prom, sidecar))
19051905

19061906
endpoints := []string{
@@ -1920,13 +1920,13 @@ func TestSidecarPrefersExtLabels(t *testing.T) {
19201920
"region": model.LabelValue("foo"),
19211921
},
19221922
Value: model.SampleValue(2),
1923-
Timestamp: model.TimeFromUnixNano(now.Add(time.Hour).UnixNano()),
1923+
Timestamp: model.TimeFromUnixNano(now.Add(time.Minute).UnixNano()),
19241924
}
19251925
testutil.Ok(t, synthesizeSamples(ctx, prom, []model.Sample{m}))
19261926

19271927
retv := instantQuery(t, context.Background(), querier.Endpoint("http"), func() string {
19281928
return "sidecar_test_metric"
1929-
}, func() time.Time { return now.Add(time.Hour) }, promclient.QueryOptions{}, 1)
1929+
}, func() time.Time { return now.Add(time.Minute) }, promclient.QueryOptions{}, 1)
19301930

19311931
testutil.Equals(t, model.Vector{&model.Sample{
19321932
Metric: model.Metric{
@@ -1935,7 +1935,7 @@ func TestSidecarPrefersExtLabels(t *testing.T) {
19351935
"region": "test",
19361936
},
19371937
Value: model.SampleValue(2),
1938-
Timestamp: model.TimeFromUnixNano(now.Add(time.Hour).UnixNano()),
1938+
Timestamp: model.TimeFromUnixNano(now.Add(time.Minute).UnixNano()),
19391939
}}, retv)
19401940
}
19411941

@@ -1960,15 +1960,15 @@ func TestTenantHTTPMetrics(t *testing.T) {
19601960
// Query once with default-tenant to ensure everything is ready
19611961
// for the following requests
19621962
instantQuery(t, ctx, q.Endpoint("http"), func() string {
1963-
return "prometheus_api_remote_read_queries"
1963+
return "prometheus_remote_read_handler_queries"
19641964
}, time.Now, promclient.QueryOptions{
19651965
Deduplicate: true,
19661966
}, 1)
19671967
testutil.Ok(t, err)
19681968

19691969
// Query a few times with tenant 1
19701970
instantQuery(t, ctx, q.Endpoint("http"), func() string {
1971-
return "prometheus_api_remote_read_queries"
1971+
return "prometheus_remote_read_handler_queries"
19721972
}, time.Now, promclient.QueryOptions{
19731973
Deduplicate: true,
19741974
HTTPHeaders: map[string][]string{"thanos-tenant": {"test-tenant-1"}},
@@ -2319,10 +2319,10 @@ func TestQuerySelectWithRelabel(t *testing.T) {
23192319
testutil.Ok(t, err)
23202320
t.Cleanup(e2ethanos.CleanScenario(t, e))
23212321

2322-
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "p1", e2ethanos.DefaultPromConfig("p1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
2322+
prom1, sidecar1 := e2ethanos.NewPrometheusWithSidecar(e, "p1", e2ethanos.DefaultPromConfig("p1", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
23232323
testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1))
23242324

2325-
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "p2", e2ethanos.DefaultPromConfig("p2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "", "remote-write-receiver")
2325+
prom2, sidecar2 := e2ethanos.NewPrometheusWithSidecar(e, "p2", e2ethanos.DefaultPromConfig("p2", 0, "", ""), "", e2ethanos.DefaultPrometheusImage(), "")
23262326
testutil.Ok(t, e2e.StartAndWaitReady(prom2, sidecar2))
23272327

23282328
endpoints := []string{

test/e2e/receive_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import (
2222
logkit "github.com/go-kit/log"
2323
"github.com/gogo/protobuf/proto"
2424
"github.com/golang/snappy"
25+
26+
config_util "github.com/prometheus/common/config"
2527
"github.com/prometheus/common/model"
2628

2729
"github.com/prometheus/prometheus/model/relabel"
@@ -32,7 +34,6 @@ import (
3234

3335
"github.com/efficientgo/core/testutil"
3436

35-
config_util "github.com/prometheus/common/config"
3637
"github.com/thanos-io/thanos/pkg/promclient"
3738
"github.com/thanos-io/thanos/pkg/receive"
3839
"github.com/thanos-io/thanos/pkg/runutil"

0 commit comments

Comments
 (0)