A Django based application that is able to monitor remote hosts via SSH scripts or connecting to JVMs via JMX.
Complete documentation can be found at https://pyscaler.readthedocs.org <https://pyscaler.readthedocs.org>
_
-
Monitoring PyScaler is able to monitor remote hosts and store the performance data for further analysis and business logic.
-
SSH monitoring
PyScaler can connect to remote hosts via SSH, execute scripts to gather performance data and index its output.
-
JMX monitoring
PyScaler can connect to remote JVMs via JMX and gather performance data via the exposed mbeans.
-
Interactive counter graphs
The performance data can be easily visualized using available graphs. There are different graphs per monitored target and counters that can be zoomed.
-
Control
PySCaler can be execute actions against its managed nodes. These action can be execute manually or triggered automatically when defined performance thresholds are hit.
-
Remote command execution
It can execute command locally on specific nodes or on all the nodes from a cluster.
-
Fabric scripts execution
It can execute Fabric scripts that can be used to execute local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.
-
Triggers
PyScaler can analyze available performance data and automatically trigger defined actions when a performance threshold is reached during a certain amount of time.
-
Provisioning
PyScaler can be used to provision new servers.
-
EC2 node deployment
PyScaler can launch new Amazon EC2 instances with defined parameters.
-
Operating system configuration
PyScaler can provision nodes using Puppet.
-
Deployment scaling
The previously explained features (monitoring, control and provisioning) can be used together to automatically scale a cloud based cluster. PyScaler will monitor the cluster and when a defined performance threshold is reached then the necessary actions to deploy a new cluster node will
be executed, thus scaling it. -
Task based engine
PyScaler makes uses of Celery to launch all lengthy or periodic tasks in the backend. Celery can be used to handle retries and distribution of the tasks.
-
Restful urls and API
PyScaler urls are cleanly designed to be understood by human beings. Most available objects are exposed via a restful API and JSON
-
Ajax based interface
The usage of a task based backend along the jquery and json enables the development of a fluid ajax based interface.
-
High availability
Each component of PyScaler is designed to be highly available.