This module is responsible cluster membership information.
This module is responsible cluster membership information. Changes to the cluster information is retrieved through #subscribe. Commands to operate the cluster is available through methods in this class, such as #join, #down and #leave.
Each cluster Member is identified by its akka.actor.Address, and the cluster address of this actor system is #selfAddress. A member also has a status; initially MemberStatus.Joining followed by MemberStatus.Up.
Base trait for all cluster messages.
Base trait for all cluster messages. All ClusterMessage's are serializable.
Interface for the cluster JMX MBean.
Loads JVM and system metrics through JMX monitoring beans.
Represents the address, current status, and roles of a cluster member node.
Represents the address, current status, and roles of a cluster member node.
Note: hashCode
and equals
are solely based on the underlying Address
, not its MemberStatus
and roles.
Defines the current status of a cluster member node
Defines the current status of a cluster member node
Can be one of: Joining, Up, Leaving, Exiting and Down.
Metrics key/value.
Metrics key/value.
Equality of Metric is based on its name.
Implementations of cluster system metrics extends this trait.
The snapshot of current sampled health metrics for any monitored process.
The snapshot of current sampled health metrics for any monitored process. Collected and gossipped at regular intervals for dynamic cluster management strategies.
Equality of NodeMetrics is based on its address.
akka.actor.Address of the node the metrics are gathered at
the time of sampling, in milliseconds since midnight, January 1, 1970 UTC
the set of sampled akka.actor.Metric
Loads metrics through Hyperic SIGAR and JMX monitoring beans.
Loads metrics through Hyperic SIGAR and JMX monitoring beans. This loads wider and more accurate range of metrics compared to JmxMetricsCollector by using SIGAR's native OS library.
The constructor will by design throw exception if org.hyperic.sigar.Sigar can't be loaded, due to missing classes or native libraries.
Member identifier consisting of address and random uid
.
Member identifier consisting of address and random uid
.
The uid
is needed to be able to distinguish different
incarnations of a member with same hostname and port.
Representation of a Vector-based clock (counting clock), inspired by Lamport logical clocks.
Representation of a Vector-based clock (counting clock), inspired by Lamport logical clocks.
Reference: 1) Leslie Lamport (1978). "Time, clocks, and the ordering of events in a distributed system". Communications of the ACM 21 (7): 558-565. 2) Friedemann Mattern (1988). "Virtual Time and Global States of Distributed Systems". Workshop on Parallel and Distributed Algorithms: pp. 215-226
Based on code from the 'vlock' VectorClock library by Coda Hale.
Cluster Extension Id and factory for creating Cluster extension.
Domain events published to the event bus.
Domain events published to the event bus. Subscribe with:
Cluster(system).subscribe(actorRef, classOf[ClusterDomainEvent])
Cluster aware scope of a akka.actor.Deploy
Module with factory and ordering methods for Member instances.
Factory for creating valid Metric instances.
Definitions of the built-in standard metrics.
Definitions of the built-in standard metrics.
The following extractors and data structures makes it easy to consume the akka.cluster.NodeMetrics in for example load balancers.