in management-cluster-http/src/main/scala/org/apache/pekko/management/cluster/scaladsl/ClusterHttpManagementRoutes.scala [48:69]
private def routeGetMembers(cluster: Cluster): Route =
get {
complete {
val readView = ClusterReadViewAccess.internalReadView(cluster)
val members = readView.state.members.map(memberToClusterMember)
val unreachable = readView.reachability.observersGroupedByUnreachable.toVector.sortBy(_._1).map {
case (subject, observers) =>
ClusterUnreachableMember(s"${subject.address}", observers.toVector.sorted.map(m => s"${m.address}"))
}
val thisDcMembers =
cluster.state.members.toSeq.filter(node =>
node.status == MemberStatus.Up && node.dataCenter == cluster.selfDataCenter)
val leader = readView.leader.map(_.toString)
val oldest = if (thisDcMembers.isEmpty) None else Some(thisDcMembers.min(Member.ageOrdering).address.toString)
ClusterMembers(s"${readView.selfAddress}", members, unreachable, leader, oldest, oldestPerRole(thisDcMembers))
}
}