Features =============== - **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.