Skip to content

Commit f2f192d

Browse files
committed
apply viability check
1 parent 346ca35 commit f2f192d

File tree

2 files changed

+8
-15
lines changed

2 files changed

+8
-15
lines changed

pkg/selector/strategy/random/random.go

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package random
22

33
import (
4-
"context"
54
"fmt"
65
"math/rand"
76
"net/url"
@@ -10,7 +9,6 @@ import (
109
log "github.com/Sirupsen/logrus"
1110
"github.com/matt-deboer/mpp/pkg/locator"
1211
"github.com/matt-deboer/mpp/pkg/selector"
13-
"github.com/prometheus/common/model"
1412
)
1513

1614
func init() {
@@ -61,22 +59,17 @@ func (s *Selector) Select(endpoints []*locator.PrometheusEndpoint) (err error) {
6159
for _, endpoint := range endpoints {
6260
endpoint.Selected = false
6361
if endpoint.QueryAPI != nil {
64-
value, err := endpoint.QueryAPI.Query(context.TODO(), "prometheus_build_info", time.Now())
62+
scraped, err := locator.ScrapeMetric(endpoint.Address, "prometheus_build_info")
6563
if err != nil {
6664
log.Errorf("Endpoint %v returned error: %v", endpoint, err)
67-
} else {
65+
endpoint.Error = err
66+
} else if endpoint.Viable() {
6867
if log.GetLevel() >= log.DebugLevel {
69-
log.Debugf("Endpoint %v returned value: %v", endpoint, value)
70-
}
71-
if value.Type() == model.ValVector {
72-
if len(value.String()) > 0 {
73-
endpoint.ComparisonMetricValue = value.String()
74-
endpoint.Selected = true
75-
selected++
76-
}
77-
} else {
78-
log.Errorf("Endpoint %v returned unexpected type: %v", endpoint, value.Type())
68+
log.Debugf("Endpoint %v returned value: %v", endpoint, scraped)
7969
}
70+
endpoint.ComparisonMetricValue = scraped.String()
71+
endpoint.Selected = true
72+
selected++
8073
}
8174
}
8275
}

pkg/selector/strategy/singlemostdata/singlemostdata.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (s *Selector) Select(endpoints []*locator.PrometheusEndpoint) (err error) {
6767
}
6868
sampleValue := int64(scraped.Value)
6969
endpoint.ComparisonMetricValue = sampleValue
70-
if sampleValue > mostData {
70+
if sampleValue > mostData && endpoint.Viable() {
7171
mostData = sampleValue
7272
mostDataIndex = i
7373
}

0 commit comments

Comments
 (0)