middleware/metrics: export ListenAddr (#366)

ListenAddr is the address where the prometheus metric are exported.
This can be used in tests to listen on "localhost:0" and then later
retrieve the metrics from there. It makes the tests indepent on each
other.
This commit is contained in:
Miek Gieben 2016-10-28 12:57:10 +01:00 committed by GitHub
parent 0509f4b4ac
commit cb867ff6bd
4 changed files with 18 additions and 14 deletions

View file

@ -20,12 +20,12 @@ import (
func TestMetricsServer(t *testing.T) {
corefile := `example.org:0 {
chaos CoreDNS-001 miek@miek.nl
prometheus
prometheus localhost:0
}
example.com:0 {
proxy . 8.8.4.4:53
prometheus
prometheus localhost:0
}
`
srv, err := CoreDNSServer(corefile)
@ -40,7 +40,7 @@ func TestMetricsRefused(t *testing.T) {
corefile := `example.org:0 {
proxy . 8.8.8.8:53
prometheus
prometheus localhost:0
}
`
srv, err := CoreDNSServer(corefile)
@ -58,7 +58,7 @@ func TestMetricsRefused(t *testing.T) {
t.Fatalf("Could not send message: %s", err)
}
data := mtest.Scrape(t, "http://"+metrics.Addr+"/metrics")
data := mtest.Scrape(t, "http://"+metrics.ListenAddr+"/metrics")
got, labels := mtest.MetricValue(metricName, data)
if got != "1" {
@ -77,7 +77,7 @@ func TestMetricsCache(t *testing.T) {
corefile := `example.net:0 {
proxy . 8.8.8.8:53
prometheus
prometheus localhost:0
cache
}
`
@ -96,7 +96,7 @@ func TestMetricsCache(t *testing.T) {
t.Fatalf("Could not send message: %s", err)
}
data := mtest.Scrape(t, "http://"+metrics.Addr+"/metrics")
data := mtest.Scrape(t, "http://"+metrics.ListenAddr+"/metrics")
// Get the value for the metrics where the one of the labels values matches "success"
got, _ := mtest.MetricValueLabel(metricName, cache.Success, data)
@ -111,12 +111,11 @@ func TestMetricsAuto(t *testing.T) {
t.Fatal(err)
}
// TODO(miek): Random port as string and use that later?
corefile := `org:0 {
auto {
directory ` + tmpdir + ` db\.(.*) {1} 1
}
prometheus
prometheus localhost:0
}
`
@ -149,7 +148,7 @@ func TestMetricsAuto(t *testing.T) {
metricName := "coredns_dns_request_count_total" //{zone, proto, family}
data := mtest.Scrape(t, "http://"+metrics.Addr+"/metrics")
data := mtest.Scrape(t, "http://"+metrics.ListenAddr+"/metrics")
// Get the value for the metrics where the one of the labels values matches "example.org."
got, _ := mtest.MetricValueLabel(metricName, "example.org.", data)
@ -164,7 +163,7 @@ func TestMetricsAuto(t *testing.T) {
t.Fatalf("Could not send message: %s", err)
}
data = mtest.Scrape(t, "http://"+metrics.Addr+"/metrics")
data = mtest.Scrape(t, "http://"+metrics.ListenAddr+"/metrics")
got, _ = mtest.MetricValueLabel(metricName, "example.org.", data)
if got != "1" {