Git Product home page Git Product logo

areplay's Introduction

Apache Replay: Replay Apache log in real time.

Apache Replay is a command line tool that reads Apache log files and replays it on a remote server in real time. It's goal it's to load test HTTP/HTTPS servers with the same traffic that is received on another server.

This tool is written in Python and it uses apache-log-parser, requests and gevent libraries.

Main Features

  • Real time replay load testing
  • Accept any Apache log format
  • Support Basic Authentication
  • URL match and ignore filters

Installation

On Linux, first install python development and libevent packages using system package manager:

# Debian-based distributions (eg Ubuntu, ...):
$ sudo apt-get install python-dev libevent-dev

# RPM-based distributions:
$ yum install python-devel libevent-* 

Then it can be installed from PyPi using pip :

$ pip install areplay

Basic usage

$ areplay http://test.example.com /var/log/apache2/access.log

Synopsis:

$ areplay --help


usage: areplay [-h] [-v] [-a AUTH] [-w WORKERS] [-m MATCH] [-i IGNORE]
               [-d] [-f FORMAT] [-sv] [-iu IGNORE_URL]
               server log_file

 positional arguments:

  server                      Remote Server
  log_file                    Apache log file path

 optional arguments:

   -h, --help                           Show this help message and exit
   -v, --version                        Show program's version number and exit
   -a AUTH, --auth AUTH                 Basic authentication user:password
   -w NUM, --workers NUM                Workers pool size
   -d, --dry-run                        Only prints URLs
   -f FORMAT, --format FORMAT           Apache log format
   -i IGNORE, --ignore IGNORE           Ignore matching requests
   -iu URL, --ignore-url URL            URL to hit when URL from log is ignored
   -m MATCH, --match MATCH              Only process matching requests
   -sv, --skip-verify                   Skip SSL certificate verify

Examples

Basic auth:

$ areplay -a username:password http://test.example.com access.log

URL filtering - ignore js and css - use | (pipe) to separate keywords:

$ areplay -i '.css|.js' http://test.example.com access.log

URL filtering - process only js and css - use | (pipe) to separate keywords:

$ areplay -m '.css|.js' http://test.example.com access.log

Custom Apache Log format - get LogFormat for Apache configuration file:

$ cat /etc/apache2/apache2.conf | grep LogFormat | grep combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

$ areplay -f "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" http://test.example.com access.log

Change Log

Please see CHANGELOG.

Licence

Please see LICENSE.

Acknowledgments

Thank you to the people from Boom! for inspiration and Dinko Korunic for snippet (GeventTail).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.