Cluster metrics internal API and cluster-wide transport of metrics data.
* Create Cluster Metrics API * Create transport of relevant metrics data Does not include load-balancing routers.
This commit is contained in:
parent
9a20baa831
commit
dbce1c8b85
16 changed files with 1295 additions and 7 deletions
|
|
@ -30,6 +30,12 @@ private[akka] class ClusterReadView(cluster: Cluster) extends Closeable {
|
|||
@volatile
|
||||
private var _latestStats = ClusterStats()
|
||||
|
||||
/**
|
||||
* Current cluster metrics, updated periodically via event bus.
|
||||
*/
|
||||
@volatile
|
||||
private var _clusterMetrics: Set[NodeMetrics] = Set.empty
|
||||
|
||||
val selfAddress = cluster.selfAddress
|
||||
|
||||
// create actor that subscribes to the cluster eventBus to update current read view state
|
||||
|
|
@ -56,6 +62,7 @@ private[akka] class ClusterReadView(cluster: Cluster) extends Closeable {
|
|||
case ConvergenceChanged(convergence) ⇒ state = state.copy(convergence = convergence)
|
||||
case s: CurrentClusterState ⇒ state = s
|
||||
case CurrentInternalStats(stats) ⇒ _latestStats = stats
|
||||
case ClusterMetricsChanged(nodes) ⇒ _clusterMetrics = nodes
|
||||
case _ ⇒ // ignore, not interesting
|
||||
}
|
||||
}).withDispatcher(cluster.settings.UseDispatcher), name = "clusterEventBusListener")
|
||||
|
|
@ -118,6 +125,11 @@ private[akka] class ClusterReadView(cluster: Cluster) extends Closeable {
|
|||
!unreachableMembers.contains(myself) && !myself.status.isUnavailable
|
||||
}
|
||||
|
||||
/**
|
||||
* Current cluster metrics.
|
||||
*/
|
||||
def clusterMetrics: Set[NodeMetrics] = _clusterMetrics
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
* The nodes that has seen current version of the Gossip.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue