Skip to content

Commit

Permalink
don't check invalid nodes in metrics middleware (#618)
Browse files Browse the repository at this point in the history
  • Loading branch information
yuyang0 committed Oct 17, 2023
1 parent 30067da commit 9265573
Showing 1 changed file with 0 additions and 31 deletions.
31 changes: 0 additions & 31 deletions metrics/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,8 @@ import (
"net/http"

"github.com/projecteru2/core/cluster"
enginefactory "github.com/projecteru2/core/engine/factory"
"github.com/projecteru2/core/log"
"github.com/projecteru2/core/types"
"github.com/prometheus/client_golang/prometheus"
promClient "github.com/prometheus/client_model/go"
"golang.org/x/exp/slices"
)

// ResourceMiddleware to make sure update resource correct
Expand All @@ -24,42 +20,15 @@ func (m *Metrics) ResourceMiddleware(cluster cluster.Cluster) func(http.Handler)
if err != nil {
logger.Error(ctx, err, "Get all nodes err")
}
existNodenames := getExistNodenames()
activeNodes := map[string]*types.Node{}
for node := range nodes {
metrics, err := m.rmgr.GetNodeMetrics(ctx, node)
if err != nil {
logger.Error(ctx, err, "Get metrics failed")
continue
}
activeNodes[node.Name] = node
m.SendMetrics(ctx, metrics...)
}
// refresh nodes
invalidNodenames := []string{}
for _, nodename := range existNodenames {
if node := activeNodes[nodename]; node != nil {
invalidNodenames = append(invalidNodenames, nodename)
enginefactory.RemoveEngineFromCache(ctx, node.Endpoint, node.Ca, node.Cert, node.Key)
}
}
m.RemoveInvalidNodes(invalidNodenames...)
h.ServeHTTP(w, r)
})
}
}

func getExistNodenames() []string {
metrics, _ := prometheus.DefaultGatherer.Gather()
nodenames := []string{}
for _, metric := range metrics {
for _, mf := range metric.GetMetric() {
if i := slices.IndexFunc(mf.Label, func(label *promClient.LabelPair) bool {
return label.GetName() == "nodename"
}); i != -1 {
nodenames = append(nodenames, mf.Label[i].GetValue())
}
}
}
return nodenames
}

0 comments on commit 9265573

Please sign in to comment.