-
Notifications
You must be signed in to change notification settings - Fork 0
How it works
Argos is based on akka and use JMX client to obtain metrocs from a cassandra node.
There are 5 main actor types in Argos:
- A MetricsProvider
- The Sentinels
- The Orchectrators
- An AgentGateway
- The Notifiers
This actor use a JMXClient to request the Cassandra node when a Sentinel asks a metric.
A sentinel is an actor in charge of a specific Cassandra metric (Number of dropped message for a stage, duration of GC...), if this metrics doesn't match the requirements defined in the configuration file, a message is send to the Notifiers.
There are two kind of Sentinels:
- The predifined ones, that are in charge of the main metrics to survey. The name of the metric managed by the sentinel can't be changed.
- The custom ones, that are a fully configurable sentinel (name, metrics to monitor...)
This actor initializes each sentinel and trigger the frequency of the sentinels controls.
This actor is the endpoint for each AgentGateway and provides a REST API. It receive the status of each Cassandra node in order to provide through the REST Endpoint a vue of each node state (Online or not and the load of the host).This REST Endpoint also provide a way to send a command to each Cassandra node in a single REST request (like a snapshot)
This actor is the client of the AgentOrchestrator. It send the Cassandra node status periodically and can receive commands.
The actors listen message sent by the Sentinels and handle them to inform the user that something go wrong with the cassandra node.
An Argos instance may work in a "local" mode or in a "remote" mode.
In the local mode, 'akka remote' is disabled with the AgentGateway and the AgentOrchestrator switched off. In this mode, the Argos instance only sees the configured Cassandra node and can't communicate with the other Argos instances.
In the remote mode, 'akka remote' is enabled and the AgentGateway must be switched on to communicate with the AgentOrchestrator. Only one AgentOrchestrator should be activated of a Cassandra cluster (or per Datacenter).