Преглед на файлове

fix throughput query: check for exported_namespace and namespace as the namespace label (#3795)

Co-authored-by: David Townley <davidtownley@Davids-MacBook-Air.local>
d-g-town преди 2 години
родител
ревизия
022ce1783b
променени са 2 файла, в които са добавени 9 реда и са изтрити 3 реда
  1. 7 1
      internal/kubernetes/prometheus/metrics.go
  2. 2 2
      internal/kubernetes/prometheus/metrics_test.go

+ 7 - 1
internal/kubernetes/prometheus/metrics.go

@@ -275,7 +275,13 @@ func QueryPrometheus(
 }
 
 func getNginxStatusQuery(opts *QueryOpts, selectionRegex string) (string, error) {
-	query := fmt.Sprintf(`round(sum by (status_code, ingress)(label_replace(increase(nginx_ingress_controller_requests{exported_namespace=~"%s",ingress="%s",service="%s"}[2m]), "status_code", "${1}xx", "status", "(.)..")), 0.001)`, opts.Namespace, selectionRegex, opts.Name)
+	var queries []string
+
+	namespaceLabels := []string{"exported_namespace", "namespace"}
+	for _, namespaceLabel := range namespaceLabels {
+		queries = append(queries, fmt.Sprintf(`round(sum by (status_code, ingress)(label_replace(increase(nginx_ingress_controller_requests{%s=~"%s",ingress="%s",service="%s"}[2m]), "status_code", "${1}xx", "status", "(.)..")), 0.001)`, namespaceLabel, opts.Namespace, selectionRegex, opts.Name))
+	}
+	query := strings.Join(queries, " or ")
 	return query, nil
 }
 

+ 2 - 2
internal/kubernetes/prometheus/metrics_test.go

@@ -16,7 +16,7 @@ func Test_getNginxStatusQuery(t *testing.T) {
 		err   error
 	}
 
-	var tests = []struct {
+	tests := []struct {
 		name     string
 		input    input
 		expected struct {
@@ -34,7 +34,7 @@ func Test_getNginxStatusQuery(t *testing.T) {
 				"process-app-web",
 			},
 			output{
-				`round(sum by (status_code, ingress)(label_replace(increase(nginx_ingress_controller_requests{exported_namespace=~"app-namespace",ingress="process-app-web",service="process-app-web"}[2m]), "status_code", "${1}xx", "status", "(.)..")), 0.001)`,
+				`round(sum by (status_code, ingress)(label_replace(increase(nginx_ingress_controller_requests{exported_namespace=~"app-namespace",ingress="process-app-web",service="process-app-web"}[2m]), "status_code", "${1}xx", "status", "(.)..")), 0.001) or round(sum by (status_code, ingress)(label_replace(increase(nginx_ingress_controller_requests{namespace=~"app-namespace",ingress="process-app-web",service="process-app-web"}[2m]), "status_code", "${1}xx", "status", "(.)..")), 0.001)`,
 				nil,
 			},
 		},