qpid_benchmark_stats
====================

Table of contents:
-----------------
Introduction
Prerequisites
Kit contents
Usage


Introduction
------------
The "qpid_benchmark_stats" application processes measured throughput and latency
of Red Hat Enterprise MRG Messaging broker. 

The application runs the “qpid_benchmark_mod.py“ tool, a slightly modified 
“qpid-cpp-benchmark“ application, usually used for measuring of throughput and 
latency of the Red Hat Enterprise MRG Messaging broker; gets data from its 
standard output and processes them. The results are: mean, 
standard mean deviation, count of processed values, minimum and maximum value 
for every measurement. In the end the all data, including measured values, are 
serialized into a file for later usage.

The application is developed under the Apache license 2.0.


Prerequisites
-------------
The "qpid_benchmark_stats" application runs on client side, but requires access 
to running Red Hat Enterprise MRG Messaging broker.

Server side:
 - Operating system Red Hat Enterprise Linux version 5 or 6
 - Red Hat Enterprise MRG Messaging broker version 2.2 (qpid-cpp-0.14-22) or later

Client side:
 - Operating system: 
   - Red Hat Enterprise Linux version 5 or 6
   - Microsoft Windows XP, 7, Server 2003 or Server 2008
 - Python version 2.4 or later
 - "unzip" tool 
 - C++ compiler

Kit contents
------------
DOC:
 - README
 - LICENCE
 - fulltext.pdf - full text of the diploma thesis

SRC:
 - qpid_benchmark_stats.zip:
   - qpid_benchmark_stats.py - runable python application; tool to process data
   - qpid_benchmark_stats_tools.py - python module to import
   - qpid_benchmark_mod.py - runable python application what is run by 
                             "qpid_benchmark_stats.py" application
   - compare_data.py - runable python application; example how to read, parse 
                       and compare serialized data 

DATA:
 - bench_stats_stdout.log - standard output example transcript of 
                            "qpid_benchmark_stats" 
 - data - folder with serialized data
 - compare_stdout.log - standard output example transcript of "compare_data.py" 
                        application


Usage
-----
1. Download and compile "qpid-send" and "qpid-receive" tools, if needed. 

Download source files:
 - qpid-send.cpp
 - qpid-receive.cpp
 - Statistics.cpp
 - Statistics.h
 - TestOptions.h
 - ConnectionOptions.h

from the Apache-SVN pages

http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/

Place them into one directory, and from the directory run commands:

g++ -Wall –I. Statistics.cpp qpid-send.cpp -o qpid-send –lqpidmessaging
g++ -Wall –I. Statistics.cpp qpid-receive.cpp –o qpid-receive –lqpidmessaging
chmod a+x qpid-send
chmod a+x qpid-receive


2. Unpack the "qpid_benchmark_stats.zip" package:
 
unzip qpid_benchmark_stats.zip


3. Run the "qpid_benchmark_stats.py" application:

python qpid_benchmark_stats.py [options]

All possible options values can be displayed by "--help" option:

python qpid_benchmark_stats.py --help


4. To compare two sets of measurements run "compare_data.py" tool.
All possible options values can be displayed by 

python compare_data.py --help.








