Sha256: 00d978018e161df086bd63cbe2c585cae6edec2775d90126af8afce24868e721

Contents?: true

Size: 1.91 KB

Versions: 48

Compression:

Stored size: 1.91 KB

Contents

=== Request-log-analyzer
RLA is set up like a simple pipe and filter system.

This allows you to easily add extra reports, filters and outputs.
                             -> Aggregator  (database)
  Source -> Filter -> Filter -> Aggregator  (summary report)  -> Output
                             -> Aggregator  (...)

When the pipeline has been constructed, we Start chunk producer (source) and push requests through pipeline.

  Controller.start

=== Source
RequestLogAnalyzer::Source is an Object that pushes requests into the chain.
At the moment you can only use the log-parser as a source.
It accepts files or stdin and can parse then into request objects using a RequestLogAnalyzer::FileFormat definition.
In the future we want to be able to have a generated request database as source as this will make interactive
down drilling possible.

=== Filter
The filters are all subclasses of the RequestLogAnalyzer::Filter class.
They accept a request object, manipulate or drop it, and then pass the request object on to the next filter
in the chain.
At the moment there are three types of filters available: Anonymize, Field and Timespan.

=== Aggregator
The Aggregators all inherit from the RequestLogAnalyzer::Aggregator class.
All the requests that come out of the Filterchain are fed into all the aggregators in parallel.
These aggregators can do anything what they want with the given request.
For example: the Database aggregator will just store all the requests into a SQLite database while the Summarizer will
generate a wide range of statistical reports from them.

=== Running the pipeline
All Aggregators are asked to report what they have done. For example the database will report: I stuffed x requests
into SQLite database Y. The Summarizer will output its reports.

  Controller.report

The output is pushed to a RequestLogAnalyzer::Output object, which takes care of the output.
It can generate either ASCII, UTF8 or even HTML output.

Version data entries

48 entries across 48 versions & 3 rubygems

Version Path
wvanbergen-request-log-analyzer-1.2.1 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.2.3 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.2.4 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.2.5 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.2.6 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.2.7 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.2.8 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.2.9 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.0 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.1 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.2 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.3 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.4 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.5 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.6 DESIGN.rdoc
wvanbergen-request-log-analyzer-1.3.7 DESIGN.rdoc
request-log-analyzer-1.8.1 DESIGN.rdoc
request-log-analyzer-1.8.0 DESIGN.rdoc
request-log-analyzer-1.7.0 DESIGN.rdoc
request-log-analyzer-1.6.4 DESIGN.rdoc