Browse Source

integration: add "TestMetricsHealth"

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
Gyuho Lee 7 years ago
parent
commit
7524cc6f4c
1 changed files with 32 additions and 1 deletions
  1. 32 1
      integration/metrics_test.go

+ 32 - 1
integration/metrics_test.go

@@ -16,14 +16,15 @@ package integration
 
 
 import (
 import (
 	"context"
 	"context"
+	"net/http"
 	"strconv"
 	"strconv"
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
 	"go.etcd.io/etcd/etcdserver"
 	"go.etcd.io/etcd/etcdserver"
-
 	pb "go.etcd.io/etcd/etcdserver/etcdserverpb"
 	pb "go.etcd.io/etcd/etcdserver/etcdserverpb"
 	"go.etcd.io/etcd/pkg/testutil"
 	"go.etcd.io/etcd/pkg/testutil"
+	"go.etcd.io/etcd/pkg/transport"
 )
 )
 
 
 // TestMetricDbSizeBoot checks that the db size metric is set on boot.
 // TestMetricDbSizeBoot checks that the db size metric is set on boot.
@@ -165,3 +166,33 @@ func TestMetricQuotaBackendBytes(t *testing.T) {
 		t.Fatalf("expected %d, got %f", etcdserver.DefaultQuotaBytes, qv)
 		t.Fatalf("expected %d, got %f", etcdserver.DefaultQuotaBytes, qv)
 	}
 	}
 }
 }
+
+func TestMetricsHealth(t *testing.T) {
+	defer testutil.AfterTest(t)
+	clus := NewClusterV3(t, &ClusterConfig{Size: 1})
+	defer clus.Terminate(t)
+
+	tr, err := transport.NewTransport(transport.TLSInfo{}, 5*time.Second)
+	if err != nil {
+		t.Fatal(err)
+	}
+	u := clus.Members[0].ClientURLs[0]
+	u.Path = "/health"
+	resp, err := tr.RoundTrip(&http.Request{
+		Header: make(http.Header),
+		Method: http.MethodGet,
+		URL:    &u,
+	})
+	resp.Body.Close()
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	hv, err := clus.Members[0].Metric("etcd_server_health_success")
+	if err != nil {
+		t.Fatal(err)
+	}
+	if hv != "1" {
+		t.Fatalf("expected '1' from /health, got %q", hv)
+	}
+}