Stratos uses Complex Event Processor (CEP) to do real-time monitoring, based on the health statistics that are published to the CEP from the cartridges and services. The CEP does temporal (i.e., time-based) queries to analyze all the event streams that are being sent to it, and sends summarized information to the Auto-scaler. Currently, Stratos uses WSO2 CEP; however, Stratos supports any Complex Event Processor.
Message Broker (MB) handles the communication among all the components in a loosely coupled manner. Currently, Stratos uses Apache ActiveMQ; however, Stratos supports any Advanced Message Queuing Protocol (AMQP) Message Broker.
Traffic comes in through any Load Balancer (LB) (e.g., HAProxy for non-HTTP traffic and Apache Stratos LB for HTTP traffic). Cloud Controller (CC) periodically updates the Load Balancer via the topology update messages. The LB routes the traffic based on its configurations, and publishes status events directly into the real-time event processor.
Stratos has a set of core services (i.e., identity service, logging service and monitoring/metering service). Stratos uses the identity service to provide an built-in mechanism to handle identities, roles and permissions of users. Stratos provides an optional logging service, which you can use to centrally monitor all the relevant logs that correspond to the instances. You can use the monitoring/metering service in Stratos to enable system monitoring, where Stratos publishes useful information to a remote monitoring/metering server.