Skip to content

Commit

Permalink
revert test changes
Browse files Browse the repository at this point in the history
Signed-off-by: Jan Wozniak <[email protected]>
  • Loading branch information
wozniakjan committed Apr 15, 2024
1 parent d2ee08f commit c60020b
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 39 deletions.
4 changes: 2 additions & 2 deletions pkg/metricscollector/prommetrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,13 +248,13 @@ func NewPromMetrics() *PromMetrics {
metrics.Registry.MustRegister(scaledObjectErrorsDeprecated)
metrics.Registry.MustRegister(scaledObjectErrors)
metrics.Registry.MustRegister(scaledObjectPaused)
metrics.Registry.MustRegister(triggerTotalsGaugeVecDeprecated)
metrics.Registry.MustRegister(triggerRegistered)
metrics.Registry.MustRegister(crdTotalsGaugeVecDeprecated)
metrics.Registry.MustRegister(crdRegistered)
metrics.Registry.MustRegister(scaledJobErrorsDeprecated)
metrics.Registry.MustRegister(scaledJobErrors)

metrics.Registry.MustRegister(triggerTotalsGaugeVecDeprecated)
metrics.Registry.MustRegister(crdTotalsGaugeVecDeprecated)
metrics.Registry.MustRegister(buildInfo)

metrics.Registry.MustRegister(cloudeventEmitted)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -915,8 +915,8 @@ func getLatestCommit(t *testing.T) string {
func checkTriggerTotalValues(t *testing.T, families map[string]*prommodel.MetricFamily, expected map[string]int) {
t.Log("--- testing trigger total metrics ---")

family, ok := families["keda_triggers_count"]
assert.True(t, ok, "keda_triggers_count not available")
family, ok := families["keda_trigger_totals"]
assert.True(t, ok, "keda_trigger_totals not available")
if !ok {
return
}
Expand Down Expand Up @@ -944,8 +944,8 @@ func checkTriggerTotalValues(t *testing.T, families map[string]*prommodel.Metric
func checkCRTotalValues(t *testing.T, families map[string]*prommodel.MetricFamily, expected map[string]map[string]int) {
t.Log("--- testing resource total metrics ---")

family, ok := families["keda_resources_count"]
assert.True(t, ok, "keda_resources_count not available")
family, ok := families["keda_resource_totals"]
assert.True(t, ok, "keda_resource_totals not available")
if !ok {
return
}
Expand Down
94 changes: 61 additions & 33 deletions tests/sequential/prometheus_metrics/prometheus_metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -443,6 +443,7 @@ func TestPrometheusMetrics(t *testing.T) {
testScaledObjectErrors(t, data)
testScaledJobErrors(t, data)
testScalerErrors(t, data)
testScalerErrorsTotal(t, data)
testOperatorMetrics(t, kc, data)
testMetricServerMetrics(t)
testWebhookMetrics(t, data)
Expand Down Expand Up @@ -518,8 +519,6 @@ func testScalerMetricValue(t *testing.T) {
}
}
assert.Equal(t, true, found)
} else {
t.Errorf("metric keda_scaler_metrics_value not available")
}
}

Expand All @@ -534,17 +533,17 @@ func testScaledObjectErrors(t *testing.T, data templateData) {
time.Sleep(20 * time.Second)

family := fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))
val, ok := family["keda_scaled_object_errors_total"]
assert.True(t, ok, "keda_scaled_object_errors_total not available")
val, ok := family["keda_scaled_object_errors"]
assert.True(t, ok, "keda_scaled_object_errors not available")
if ok {
errCounterVal1 := getErrorMetricsValue(val)

// wait for 2 seconds as pollinginterval is 2
time.Sleep(2 * time.Second)

family = fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))
val, ok := family["keda_scaled_object_errors_total"]
assert.True(t, ok, "keda_scaled_object_errors_total not available")
val, ok := family["keda_scaled_object_errors"]
assert.True(t, ok, "keda_scaled_object_errors not available")
if ok {
errCounterVal2 := getErrorMetricsValue(val)
assert.NotEqual(t, errCounterVal2, float64(0))
Expand Down Expand Up @@ -580,10 +579,10 @@ func testScaledJobErrors(t *testing.T, data templateData) {
assert.NotEqual(t, errCounterVal2, float64(0))
assert.GreaterOrEqual(t, errCounterVal2, errCounterVal1)
} else {
t.Errorf("metric keda_scaled_object_errors_total not available")
t.Errorf("metric not available")
}
} else {
t.Errorf("metric keda_scaled_object_errors_total not available")
t.Errorf("metric not available")
}

KubectlDeleteWithTemplate(t, data, "wrongScaledJobTemplate", wrongScaledJobTemplate)
Expand All @@ -603,18 +602,17 @@ func testScalerErrors(t *testing.T, data templateData) {
KubectlApplyWithTemplate(t, data, "wrongScaledJobTemplate", wrongScaledJobTemplate)

family := fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))

val, ok := family["keda_scaler_errors_total"]
assert.True(t, ok, "keda_scaler_errors_total not available")
val, ok := family["keda_scaler_errors"]
assert.True(t, ok, "keda_scaler_errors not available")
if ok {
errCounterVal1 := getErrorMetricsValue(val)

// wait for 20 seconds to correctly fetch metrics.
time.Sleep(20 * time.Second)

family = fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))
val, ok := family["keda_scaler_errors_total"]
assert.True(t, ok, "keda_scaler_errors_total not available")
val, ok := family["keda_scaler_errors"]
assert.True(t, ok, "keda_scaler_errors not available")
if ok {
errCounterVal2 := getErrorMetricsValue(val)
assert.NotEqual(t, errCounterVal2, float64(0))
Expand All @@ -630,9 +628,44 @@ func testScalerErrors(t *testing.T, data templateData) {
KubectlApplyWithTemplate(t, data, "scaledObjectTemplate", scaledObjectTemplate)
}

func testScalerErrorsTotal(t *testing.T, data templateData) {
t.Log("--- testing scaler errors total ---")

KubectlDeleteWithTemplate(t, data, "scaledObjectTemplate", scaledObjectTemplate)
KubectlApplyWithTemplate(t, data, "wrongScaledObjectTemplate", wrongScaledObjectTemplate)

family := fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))
val, ok := family["keda_scaler_errors_total"]
assert.True(t, ok, "keda_scaler_errors_total not available")
if ok {
errCounterVal1 := getErrorMetricsValue(val)

// wait for 2 seconds as pollinginterval is 2
time.Sleep(2 * time.Second)

family = fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))
val, ok := family["keda_scaler_errors_total"]
assert.True(t, ok, "keda_scaler_errors_total not available")
if ok {
errCounterVal2 := getErrorMetricsValue(val)
assert.NotEqual(t, errCounterVal2, float64(0))
assert.GreaterOrEqual(t, errCounterVal2, errCounterVal1)
}
}

KubectlDeleteWithTemplate(t, data, "wrongScaledObjectTemplate", wrongScaledObjectTemplate)
time.Sleep(2 * time.Second)
KubectlApplyWithTemplate(t, data, "scaledObjectTemplate", scaledObjectTemplate)
}

func getErrorMetricsValue(val *prommodel.MetricFamily) float64 {
switch val.GetName() {
case "keda_scaled_object_errors_total":
case "keda_scaler_errors_total":
metrics := val.GetMetric()
for _, metric := range metrics {
return metric.GetCounter().GetValue()
}
case "keda_scaled_object_errors":
metrics := val.GetMetric()
for _, metric := range metrics {
labels := metric.GetLabel()
Expand All @@ -642,7 +675,7 @@ func getErrorMetricsValue(val *prommodel.MetricFamily) float64 {
}
}
}
case "keda_scaled_job_errors_total":
case "keda_scaled_job_errors":
metrics := val.GetMetric()
for _, metric := range metrics {
labels := metric.GetLabel()
Expand All @@ -652,7 +685,7 @@ func getErrorMetricsValue(val *prommodel.MetricFamily) float64 {
}
}
}
case "keda_scaler_errors_total":
case "keda_scaler_errors":
metrics := val.GetMetric()
for _, metric := range metrics {
labels := metric.GetLabel()
Expand Down Expand Up @@ -696,8 +729,8 @@ func testScalerMetricLatency(t *testing.T) {

family := fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))

val, ok := family["keda_scaler_metrics_latency_seconds"]
assert.True(t, ok, "keda_scaler_metrics_latency_seconds not available")
val, ok := family["keda_scaler_metrics_latency"]
assert.True(t, ok, "keda_scaler_metrics_latency not available")
if ok {
var found bool
metrics := val.GetMetric()
Expand All @@ -712,8 +745,6 @@ func testScalerMetricLatency(t *testing.T) {
}
}
assert.Equal(t, true, found)
} else {
t.Errorf("metric keda_scaler_metrics_latency_seconds not available")
}
}

Expand All @@ -722,7 +753,7 @@ func testScalableObjectMetrics(t *testing.T) {

family := fetchAndParsePrometheusMetrics(t, fmt.Sprintf("curl --insecure %s", kedaOperatorPrometheusURL))

if val, ok := family["keda_internal_scale_loop_latency_seconds"]; ok {
if val, ok := family["keda_internal_scale_loop_latency"]; ok {
var found bool
metrics := val.GetMetric()

Expand Down Expand Up @@ -750,7 +781,7 @@ func testScalableObjectMetrics(t *testing.T) {
}
assert.Equal(t, true, found)
} else {
t.Errorf("keda_internal_scale_loop_latency_seconds metric not available")
t.Errorf("scaledobject metric not available")
}
}

Expand All @@ -775,8 +806,6 @@ func testScalerActiveMetric(t *testing.T) {
}
}
assert.Equal(t, true, found)
} else {
t.Errorf("metric keda_scaler_active not available")
}
}

Expand Down Expand Up @@ -908,7 +937,6 @@ func checkBuildInfo(t *testing.T, families map[string]*prommodel.MetricFamily) {
family, ok := families["keda_build_info"]
assert.True(t, ok, "keda_build_info not available")
if !ok {
t.Errorf("metric keda_build_info not available")
return
}

Expand Down Expand Up @@ -943,8 +971,8 @@ func getLatestCommit(t *testing.T) string {
func checkTriggerTotalValues(t *testing.T, families map[string]*prommodel.MetricFamily, expected map[string]int) {
t.Log("--- testing trigger total metrics ---")

family, ok := families["keda_trigger_registered_total"]
assert.True(t, ok, "keda_trigger_registered_total not available")
family, ok := families["keda_trigger_totals"]
assert.True(t, ok, "keda_trigger_totals not available")
if !ok {
return
}
Expand Down Expand Up @@ -972,8 +1000,8 @@ func checkTriggerTotalValues(t *testing.T, families map[string]*prommodel.Metric
func checkCRTotalValues(t *testing.T, families map[string]*prommodel.MetricFamily, expected map[string]map[string]int) {
t.Log("--- testing resource total metrics ---")

family, ok := families["keda_resource_registered_total"]
assert.True(t, ok, "keda_resource_registered_total not available")
family, ok := families["keda_resource_totals"]
assert.True(t, ok, "keda_resource_totals not available")
if !ok {
return
}
Expand Down Expand Up @@ -1161,9 +1189,9 @@ func checkGRPCClientMetrics(t *testing.T, families map[string]*prommodel.MetricF
func checkWebhookValues(t *testing.T, families map[string]*prommodel.MetricFamily) {
t.Log("--- testing webhook metrics ---")

family, ok := families["keda_webhook_scaled_object_validation_errors_total"]
family, ok := families["keda_webhook_scaled_object_validation_errors"]
if !ok {
t.Errorf("metric keda_webhook_scaled_object_validation_errors_total not available")
t.Errorf("metric keda_webhook_scaled_object_validation_errors not available")
return
}

Expand All @@ -1180,9 +1208,9 @@ func checkWebhookValues(t *testing.T, families map[string]*prommodel.MetricFamil
}
assert.GreaterOrEqual(t, metricValue, 1.0, "keda_webhook_scaled_object_validation_errors has to be greater than 0")

family, ok = families["keda_webhook_scaled_object_validations_total"]
family, ok = families["keda_webhook_scaled_object_validation_total"]
if !ok {
t.Errorf("metric keda_webhook_scaled_object_validations_total not available")
t.Errorf("metric keda_webhook_scaled_object_validation_total not available")
return
}

Expand Down

0 comments on commit c60020b

Please sign in to comment.