mirror of
https://github.com/coreos/prometheus-operator.git
synced 2026-02-05 06:45:27 +01:00
tests: skip UTF8 e2e tests for Prometheus V2 (#8087)
* Revert "test: fix testPrometheusUTF8LabelSupport for Prometheus V2"
This reverts commit fdeaa44a81.
* tests: skip utf8 tests for prometheus v2
Signed-off-by: Jayapriya Pai <slashpai9@gmail.com>
---------
Signed-off-by: Jayapriya Pai <slashpai9@gmail.com>
This commit is contained in:
@@ -32,7 +32,6 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/blang/semver/v4"
|
||||
"github.com/kylelemons/godebug/pretty"
|
||||
"github.com/stretchr/testify/require"
|
||||
"golang.org/x/net/http2"
|
||||
@@ -5495,6 +5494,9 @@ func testPrometheusReconciliationOnSecretChanges(t *testing.T) {
|
||||
}
|
||||
|
||||
func testPrometheusUTF8MetricsSupport(t *testing.T) {
|
||||
if os.Getenv("TEST_PROMETHEUS_V2") == "true" {
|
||||
t.Skip("UTF-8 metrics support is not available in Prometheus v2")
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
testCtx := framework.NewTestCtx(t)
|
||||
@@ -5721,6 +5723,10 @@ func testPrometheusUTF8MetricsSupport(t *testing.T) {
|
||||
}
|
||||
|
||||
func testPrometheusUTF8LabelSupport(t *testing.T) {
|
||||
if os.Getenv("TEST_PROMETHEUS_V2") == "true" {
|
||||
t.Skip("UTF-8 label support is not available in Prometheus v2")
|
||||
}
|
||||
|
||||
t.Parallel()
|
||||
|
||||
testCtx := framework.NewTestCtx(t)
|
||||
@@ -5786,39 +5792,6 @@ func testPrometheusUTF8LabelSupport(t *testing.T) {
|
||||
_, err = framework.KubeClient.CoreV1().Services(ns).Create(context.Background(), service, metav1.CreateOptions{})
|
||||
require.NoError(t, err)
|
||||
|
||||
// Determine the Prometheus version that will be used.
|
||||
promVersion := operator.DefaultPrometheusVersion
|
||||
if os.Getenv("TEST_PROMETHEUS_V2") == "true" {
|
||||
promVersion = operator.DefaultPrometheusV2
|
||||
}
|
||||
|
||||
// Parse the version to check if it supports UTF-8.
|
||||
parsedVersion, err := semver.ParseTolerant(promVersion)
|
||||
require.NoError(t, err)
|
||||
|
||||
supportsUTF8 := parsedVersion.GTE(semver.MustParse("3.0.0"))
|
||||
|
||||
var relabelConfigs []monitoringv1.RelabelConfig
|
||||
var expectedLabelName string
|
||||
|
||||
if supportsUTF8 {
|
||||
// Use UTF-8 label for Prometheus 3.0+
|
||||
relabelConfigs = []monitoringv1.RelabelConfig{{
|
||||
SourceLabels: []monitoringv1.LabelName{"__meta_kubernetes_service_label_cluster"},
|
||||
TargetLabel: "service_clustér_label",
|
||||
Action: "replace",
|
||||
}}
|
||||
expectedLabelName = "service_clustér_label"
|
||||
} else {
|
||||
// Use ASCII-only label for Prometheus 2.x
|
||||
relabelConfigs = []monitoringv1.RelabelConfig{{
|
||||
SourceLabels: []monitoringv1.LabelName{"__meta_kubernetes_service_label_cluster"},
|
||||
TargetLabel: "service_cluster_label",
|
||||
Action: "replace",
|
||||
}}
|
||||
expectedLabelName = "service_cluster_label"
|
||||
}
|
||||
|
||||
sm := &monitoringv1.ServiceMonitor{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "utf8-servicemonitor",
|
||||
@@ -5830,9 +5803,13 @@ func testPrometheusUTF8LabelSupport(t *testing.T) {
|
||||
MatchLabels: map[string]string{"app.name": "instrumented-sample-app"},
|
||||
},
|
||||
Endpoints: []monitoringv1.Endpoint{{
|
||||
Port: "web",
|
||||
Interval: "2s",
|
||||
RelabelConfigs: relabelConfigs,
|
||||
Port: "web",
|
||||
Interval: "2s",
|
||||
RelabelConfigs: []monitoringv1.RelabelConfig{{
|
||||
SourceLabels: []monitoringv1.LabelName{"__meta_kubernetes_service_label_cluster"},
|
||||
TargetLabel: "service_clustér_label",
|
||||
Action: "replace",
|
||||
}},
|
||||
BasicAuth: &monitoringv1.BasicAuth{
|
||||
Username: v1.SecretKeySelector{
|
||||
LocalObjectReference: v1.LocalObjectReference{Name: "basic-auth"},
|
||||
@@ -5874,32 +5851,26 @@ func testPrometheusUTF8LabelSupport(t *testing.T) {
|
||||
// Default Prometheus service name is "prometheus-operated".
|
||||
promSvcName := "prometheus-operated"
|
||||
|
||||
// Wait for the instrumented-sample-app target to be discovered.
|
||||
// Wait for the instrumented-sample-app target to be discovered
|
||||
err = framework.WaitForHealthyTargets(context.Background(), ns, promSvcName, 1)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Verify label queries work based on the Prometheus version.
|
||||
queryLabel := fmt.Sprintf(`{"%s"="dev"}`, expectedLabelName)
|
||||
// Verify UTF8 labels work in queries.
|
||||
err = wait.PollUntilContextTimeout(context.Background(), 5*time.Second, 2*time.Minute, false, func(ctx context.Context) (bool, error) {
|
||||
results, err := framework.PrometheusQuery(ns, promSvcName, "http", queryLabel)
|
||||
results, err := framework.PrometheusQuery(ns, promSvcName, "http", `{"service_clustér_label"="dev"}`)
|
||||
if err != nil {
|
||||
t.Logf("Label query failed: %v", err)
|
||||
t.Logf("UTF8 label query failed: %v", err)
|
||||
return false, nil
|
||||
}
|
||||
|
||||
if len(results) == 0 {
|
||||
t.Logf("Label query returned no results")
|
||||
t.Logf("UTF8 label query returned no results")
|
||||
return false, nil
|
||||
}
|
||||
|
||||
return true, nil
|
||||
})
|
||||
|
||||
if supportsUTF8 {
|
||||
require.NoError(t, err, "UTF-8 label queries should work in Prometheus 3.0+")
|
||||
} else {
|
||||
require.NoError(t, err, "ASCII label queries should work in Prometheus 2.x")
|
||||
}
|
||||
require.NoError(t, err, "UTF-8 label queries should work in Prometheus 3.0+ queries")
|
||||
}
|
||||
|
||||
func isAlertmanagerDiscoveryWorking(ns, promSVCName, alertmanagerName string) func(ctx context.Context) (bool, error) {
|
||||
|
||||
Reference in New Issue
Block a user