<commit_before>PyScaler
=====================

A Django based application that is able to monitor remote hosts via SSH scripts or connecting to JVMs via JMX.<commit_msg>docs update<commit_after>PyScaler
=====================

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>`_


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.
  

  
{'fraction_non_alphanumeric': 0.06114526043351666, 'fraction_numerical': 0.0006470397929472663, 'mean_word_length': 3.869291338582677, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3120115', 'n_tokens_mistral': 798, 'n_tokens_neox': 755, 'n_words': 417}