Namespace Akka.Cluster.Metrics
Classes
AdaptiveLoadBalancingGroup
A router group that performs load balancing of messages to cluster nodes based on cluster metric data.
It uses random selection of routees based on probabilities derived from the remaining capacity of corresponding node.
The configuration parameter trumps the constructor arguments. This means that
if you provide paths
during instantiation they will be ignored if
the router is defined in the configuration file for the actor being used.
AdaptiveLoadBalancingGroup.AdaptiveLoadBalancingGroupSurrogate
This class represents a surrogate of a AdaptiveLoadBalancingGroup router. Its main use is to help during the serialization process.
AdaptiveLoadBalancingPool
A router pool that performs load balancing of messages to cluster nodes based on cluster metric data.
It uses random selection of routees based on probabilities derived from the remaining capacity of corresponding node.
The configuration parameter trumps the constructor arguments. This means that
if you provide nrOfInstances
during instantiation they will be ignored if
the router is defined in the configuration file for the actor being used.
Supervision Setup
Any routees that are created by a router will be created as the router's children. The router is therefore also the children's supervisor.
The supervision strategy of the router actor can be configured with [[#withSupervisorStrategy]]. If no strategy is provided, routers default to a strategy of “always escalateâ€. This means that errors are passed up to the router's supervisor for handling.
The router's supervisor will treat the error as an error with the router itself. Therefore a directive to stop or restart will cause the router itself to stop or restart. The router, in turn, will cause its children to stop and restart.
AdaptiveLoadBalancingPool.AdaptiveLoadBalancingPoolSurrogate
This class represents a surrogate of a AdaptiveLoadBalancingPool router. Its main use is to help during the serialization process.
AdaptiveLoadBalancingRoutingLogic
Load balancing of messages to cluster nodes based on cluster metric data.
It uses random selection of routees based on probabilities derived from the remaining capacity of corresponding node.
CapacityMetricsSelector
A MetricsSelector producing weights from remaining capacity. The weights are typically proportional to the remaining capacity.
ClusterMetrics
Cluster metrics extension.
Cluster metrics is primarily for load-balancing of nodes. It controls metrics sampling at a regular frequency, prepares highly variable data for further analysis by other entities, and publishes the latest cluster metrics data around the node ring and local eventStream to assist in determining the need to redirect traffic to the least-loaded nodes.
Metrics sampling is delegated to the IMetricsCollector.
Smoothing of the data for each monitored process is delegated to the NodeMetrics.Types.EWMA for exponential weighted moving average.
ClusterMetricsExtensionProvider
ClusterMetricsExtensionProvider
ClusterMetricsStrategy
Default Akka.Cluster.Metrics.ClusterMetricsSupervisor
CpuMetricsSelector
MetricsSelector that uses the CPU usage metrics. Low CPU capacity => small node weight.
MemoryMetricsSelector
MetricsSelector that uses the memory metrics. Less memory available => small weight.
MetricsCollectorBuilder
Factory to create configured IMetricsCollector
Metrics collector instantiation priority order:
- Provided custom collector
- Internal DefaultCollector
MetricsSelectorBuilder
MetricsSelectorBuilder
MixMetricsSelector
MetricsSelector that combines other selectors and aggregates their capacity values. By default it uses MemoryMetricsSelector and CpuMetricsSelector
MixMetricsSelectorBase
Base class for IMetricsSelector that combines other selectors and aggregates their capacity.
StandardMetrics
Definitions of the built-in standard metrics.
The following extractors and data structures makes it easy to consume the NodeMetrics in for example load balancers.
StandardMetrics.Cpu
CPU metrics
StandardMetrics.Memory
Allocated memory metric
Interfaces
IClusterMetricsRoutingLogic
IMetricsCollector
Metrics sampler.
Implementations of cluster system metrics collectors extend this interface.
IMetricsSelector
A MetricsSelector is responsible for producing weights from the node metrics.