ipfs-cluster/monitor/metrics/util.go
Hector Sanjuan 954ede931f Monitor: more refactoring. Rename util to metrics
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2018-05-09 11:01:41 +02:00

29 lines
565 B
Go

package metrics
import (
"github.com/ipfs/ipfs-cluster/api"
peer "github.com/libp2p/go-libp2p-peer"
)
// PeersetFilter removes all metrics not belonging to the given
// peerset
func PeersetFilter(metrics []api.Metric, peerset []peer.ID) []api.Metric {
peerMap := make(map[peer.ID]struct{})
for _, peer := range peerset {
peerMap[peer] = struct{}{}
}
filtered := make([]api.Metric, 0, len(metrics))
for _, metric := range metrics {
_, ok := peerMap[metric.Peer]
if !ok {
continue
}
filtered = append(filtered, metric)
}
return filtered
}