Merge pull request #5478 from hashicorp/b-e2e_metrics

Use specific url prefix for metrics test
This commit is contained in:
Preetha 2019-03-27 22:17:15 -05:00 committed by GitHub
commit 24d3d723a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 5 deletions

View File

@ -35,7 +35,7 @@ job "hello" {
service { service {
name = "hello" name = "hello"
tags = ["urlprefix-/"] tags = ["urlprefix-hello/"]
port = "web" port = "web"
check { check {
name = "alive" name = "alive"

View File

@ -27,9 +27,10 @@ func WaitForCluster(t *testing.T, nomadClient *api.Client) {
// TestMetrics runs fabio/prometheus and waits for those to succeed // TestMetrics runs fabio/prometheus and waits for those to succeed
// After that a series of jobs added to the input directory are executed // After that a series of jobs added to the input directory are executed
// Unlike other e2e tests this test does not clean up after itself. // Unlike other e2e tests this test does not clean up after itself.
// This test is meant for AWS environments and will not work locally
func TestMetrics(t *testing.T) { func TestMetrics(t *testing.T) {
if !*metrics { if !*metrics {
t.Skip("skipping test in non-integration mode.") t.Skip("skipping test in non-metrics mode.")
} }
require := require.New(t) require := require.New(t)
// Build Nomad api client // Build Nomad api client
@ -63,7 +64,16 @@ func TestMetrics(t *testing.T) {
allocs := e2eutil.RegisterAndWaitForAllocs(t, nomadClient, file, jobId) allocs := e2eutil.RegisterAndWaitForAllocs(t, nomadClient, file, jobId)
require.NotEmpty(allocs) require.NotEmpty(allocs)
} }
clientAddr := nomadClient.Address()
clientIP := clientAddr[0:strings.LastIndex(clientAddr, ":")] // Get a client node IP address
fmt.Printf("Prometheus Metrics available at %s:9999\n", clientIP) nodesAPI := nomadClient.Nodes()
nodes, _, err := nodesAPI.List(nil)
require.Nil(err)
for _, node := range nodes {
nodeDetails, _, err := nodesAPI.Info(node.ID, nil)
require.Nil(err)
clientPublicIP := nodeDetails.Attributes["unique.platform.aws.public-ipv4"]
fmt.Printf("Prometheus Metrics available at http://%s:9999\n", clientPublicIP)
}
} }