func recordMembership()

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)
        }
    }