From c651ef00c9663ac9adb159d81bbfce0e919e9afd Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Fri, 12 Apr 2019 16:09:00 +0300 Subject: [PATCH] Add Envoy request duration test --- pkg/metrics/observer_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkg/metrics/observer_test.go b/pkg/metrics/observer_test.go index 2bcc0ab5..dab4cd52 100644 --- a/pkg/metrics/observer_test.go +++ b/pkg/metrics/observer_test.go @@ -27,6 +27,25 @@ func TestCanaryObserver_GetEnvoySuccessRate(t *testing.T) { } +func TestCanaryObserver_GetEnvoyRequestDuration(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + json := `{"status":"success","data":{"resultType":"vector","result":[{"metric":{},"value":[1545905245.596,"0.2"]}]}}` + w.Write([]byte(json)) + })) + defer ts.Close() + + observer := NewObserver(ts.URL) + + val, err := observer.GetEnvoyRequestDuration("podinfo", "default", "envoy_cluster_upstream_rq_time_bucket", "1m") + if err != nil { + t.Fatal(err.Error()) + } + + if val != 200*time.Millisecond { + t.Errorf("Got %v wanted %v", val, 200*time.Millisecond) + } +} + func TestCanaryObserver_GetIstioSuccessRate(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { json := `{"status":"success","data":{"resultType":"vector","result":[{"metric":{},"value":[1545905245.458,"100"]}]}}`