<commit_before>Flapjack
========

Flapjack is highly scalable and distributed monitoring system.

It understands the Nagios plugin format, and can easily be scaled
from 1 server to 1000.

Flapjack's current focus is on providing a scalable method for dealing with events representing changes in system state (OK -> WARNING -> CRITICAL transitions) and alerting appropriate people as necessary.

Developing
----------

Clone the repository:

    git clone https://auxesis@github.com/auxesis/flapjack.git

Install development dependencies:

    gem install bundler
    bundle install

Run the tests:

    cucumber features/

What things do
--------------

  * `flapjack-worker` => executes checks, reports results
  * `flapjack-worker-manager` => starts/stops a cluster of `flapjack-worker`
  * `flapjack-executive` => gets results, works out when and who to notify, sets downtime etc
  * `flapjack-stats` => gets stats from beanstalkd tubes (useful for benchmarks + performance analysis)
  * `flapjack-benchmark` => benchmarks various persistence/transport backend combinations


Testing
-------

Feature tests live in `features/`.

To run feature tests:

    $ rake cucumber

There's some rspec unit tests as well, run these like so:

    $ rspec spec


Architecture
------------

    -------------------        -------------------
    | web interface / |        | visualisation / |
    | dsl / flat file |        | reporting       |
    -------------------        -------------------
              |                   |<commit_msg>add note on working around gherkin parsing error<commit_after>Flapjack
========

Flapjack is highly scalable and distributed monitoring system.

It understands the Nagios plugin format, and can easily be scaled
from 1 server to 1000.

Flapjack's current focus is on providing a scalable method for dealing with events representing changes in system state (OK -> WARNING -> CRITICAL transitions) and alerting appropriate people as necessary.

Developing
----------

Clone the repository:

    git clone https://auxesis@github.com/auxesis/flapjack.git

Install development dependencies:

    gem install bundler
    bundle install

Run the tests:

    cucumber features/

What things do
--------------

  * `flapjack-worker` => executes checks, reports results
  * `flapjack-worker-manager` => starts/stops a cluster of `flapjack-worker`
  * `flapjack-executive` => gets results, works out when and who to notify, sets downtime etc
  * `flapjack-stats` => gets stats from beanstalkd tubes (useful for benchmarks + performance analysis)
  * `flapjack-benchmark` => benchmarks various persistence/transport backend combinations


Testing
-------

Feature tests live in `features/`.

To run feature tests:

    $ rake cucumber

There's some rspec unit tests as well, run these like so:

    $ rspec spec

NB, if the cucumber tests fail with a spurious lexing error on line 2 of events.feature, then try this:

    $ cucumber -f fuubar features

Architecture
------------

    -------------------        -------------------
    | web interface / |        | visualisation / |
    | dsl / flat file |        | reporting       |
    -------------------        -------------------
              |                   |
{'fraction_non_alphanumeric': 0.1365040148239654, 'fraction_numerical': 0.0033971587399629403, 'mean_word_length': 2.31525076765609, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 17, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4834416', 'n_tokens_mistral': 864, 'n_tokens_neox': 799, 'n_words': 330}