Skip to main content

Compute APDEX from Apache-style logs.

Project description

Compute APDEX from Apache-style logs.

Overview

Parses Apache-style logs and generates several statistics intended for a website developer audience:

  • APDEX (Application Performance inDEX, see http://www.apdex.org) ratio (plotted)

    Because you want to know how satisfied your users are.

  • hit count (plotted)

    Because achieving 100% APDEX is easy when there is nobody around.

  • HTTP status codes, with optional detailed output of the most frequent URLs per error status code, along with their most frequent referers

    Because your forgot to update a link to that conditionally-used browser compatibility javascript you renamed.

  • Hottest pages (pages which use rendering time the most)

    Because you want to know where to invest time to get highest user experience improvement.

  • ERP5 sites: per-module statistics, with module and document views separated

    Because module and document types are not born equal in usage patterns.

Some parsing performance figures:

On a 2.3Ghz Corei5, apachedex achieves 97000 lines/s ( pypy-c-jit-62994-bd32583a3f11-linux64) and 43000 lines/s (CPython 2.7).

What APacheDEX is not

APacheDEX does not produce website audience statistics like AWStats, Google Analytics (etc) could do.

APacheDEX does not monitor website availability & resource usage like Zabbix, Cacti, Ganglia, Nagios (etc) could do.

Requirements

Dependencies

As such, apachedex has no dependencies outside of standard python 2.7 installation. But generated output needs a few javascript files which come from other projects:

  • jquery.js

  • jquery.flot.js

  • jquery.flot.time.js (official flot plugin)

  • jquery.flot.axislabels.js (third-party flot plugin)

If you installed apachedex (using an egg or with a distribution’s package) you should have them already. If you are running from repository, you need to fetch them first:

python setup.py deps

Input

All default “combined” log format fields are supported (more can easily be added), plus %D.

Mandatory fields are (in any order) %t, %r (for request’s URL), %>s, %{Referer}i, %D. Just tell apachedex the value from your apache log configuration (see –logformat argument documentation).

Input files may be provided gzip’ed.

Output

The output is HTML + CSS + JS, so you need a web browser to read it.

Usage

A few usage examples. See embedded help (-h/–help) for further options.

Most basic usage:

apachedex --default website access.log

Generate stand-alone output (suitable for inclusion in a mail, for example):

apachedex --default website --js-embed access.log --out attachment.html

A log file with requests for 2 websites for which individual stats are desired, and hits outside those base urls are ignored:

apachedex --base /site1 /site2

A log file with a site section to ignore. Order does not matter:

apachedex --skip-base /ignored --default website

A mix of both above examples. Order matters !:

apachedex --skip-base /site1/ignored --base /site1 /site2

Notes

When there are no hits for more than a graph period, placeholders are generated for 0 hit (which is the reality) and 100% apdex (this is arbitrary). Those placeholders only affect graphs, and do not affect averages nor table content.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

APacheDEX-1.1.tar.gz (85.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page