in cmd/sidecar-e2e/main.go [408:448]
func (t *test) waitForMetrics() {
log.Printf("Waiting for hits to be reported to be greater than 100")
waitForPredicate(
func() (bool, error) {
response, err := http.Get(
fmt.Sprintf("http://127.0.0.1:%v/metrics", sidecarPort))
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
buf, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
lines := strings.Split(string(buf), "\n")
for _, line := range lines {
if !strings.HasPrefix(line, "kubedns_dnsmasq_hits ") {
continue
}
parts := strings.Split(line, " ")
if len(parts) < 2 {
return false, fmt.Errorf("invalid output for kubedns_dnsmasq_hits metric")
}
value, err := strconv.Atoi(parts[1])
if err != nil {
return false, fmt.Errorf("invalid output for kubedns_dnsmasq_hits metric")
}
if value >= 100 {
return true, nil
}
}
return false, nil
},
10*time.Second,
1*time.Second)
}