in Sources/DistributedActors/Metrics/Metrics+ActorSystem.swift [94:132]
func recordMembership(_ membership: Cluster.Membership) {
let members = membership.members(atLeast: .joining)
var joining = 0
var up = 0
var leaving = 0
var down = 0
var removed = 0
var unreachable = 0
for b in members {
switch b.status {
case .joining:
joining += 1
case .up:
up += 1
case .down:
down += 1
case .leaving:
leaving += 1
case .removed:
removed += 1
}
switch b.reachability {
case .unreachable:
unreachable += 1
default:
() // skip
}
self._cluster_members.record(up)
self._cluster_members_joining.record(joining)
self._cluster_members_up.record(up)
self._cluster_members_leaving.record(leaving)
self._cluster_members_down.record(down)
self._cluster_members_removed.record(removed)
self._cluster_unreachable_members.record(unreachable)
}
}