tests/e2e: add test to detect many-to-many errors

It happened quite a few times that some queries failed when Prometheus
scrapes metrics from 2 kube-state-metrics instances. This situation can
happen briefly when the kube-state-metrics instance is rolled out. It
might also be more apparent when automatic sharding of
kube-state-metrics is enabled.

https://github.com/kubernetes-monitoring/kubernetes-mixin/pull/306
https://github.com/kubernetes-monitoring/kubernetes-mixin/pull/361

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
This commit is contained in:
Simon Pasquier
2020-11-09 15:19:28 +01:00
parent 08b577c898
commit a8fe172085
4 changed files with 614 additions and 71 deletions

View File

@@ -16,6 +16,7 @@ package e2e
import (
"bytes"
"context"
"encoding/json"
"fmt"
@@ -50,7 +51,7 @@ func (c *prometheusClient) apiRequest(endpoint string, selector string, query st
Suffix(endpoint).Param(selector, query)
var data Response
b, err := req.DoRaw()
b, err := req.DoRaw(context.Background())
if err != nil {
return data, err
}
@@ -78,7 +79,7 @@ func (c *prometheusClient) query(query string) (int, error) {
Name("prometheus-k8s-0:9090").
Suffix("/api/v1/query").Param("query", query)
b, err := req.DoRaw()
b, err := req.DoRaw(context.Background())
if err != nil {
return 0, err
}