mod_arm
Table of Contents
mod_arm provides a simple, seamless, and application independent interface to ARM (Application Response Measurement) Version 2. This allows system administrators to get an accurate idea of how long an application takes on a running server - for a single instance or as a step in a multi-tier transaction. This is definitely a work in progress.
For a version that works with ARM Version 4, see the mod_arm4 page.
News
11/30/2004: Version 0.05 released. This version supports Apache 1.3 as well as Apache 2, although PHP support is only available for Apache 2. This has been tested with Apache 1.3.28 and Apache 2.0.48. NOTE: This has only been lightly tested at this point, so please use it carefully.
11/24/2004: Version 0.04 released. As promised, the php interface is also available.
7/12/2004: Version 0.03 released. A php interface is coming soon! How to use it
ARM measurements can be selectively enabled across the web site through the use of location/directory configuration directives. It doesn't provide any collection infrastructure, but instead relies on the use of third party tools. Here's the current state of testing with third party tools:
| Product | Testing State | Platforms |
| HP's OpenView Performance Agent (OVPA) | Verified | Linux, Solaris soon |
| BMC's Patrol - Perform | Soon | |
| IBM's Tivoli | ? | ? |
| Others??? | ? | ? |
I'm fortunate enough to have access to many of these collectors on many platforms, so the list of tested configurations will only grow. Also let me know your test results.
Unfortunately, this isn't yet a tutorial on ARM. Maybe later. In the meantime, check the documentation on your performance data collector, or check the documentation at the standards bodies mentioned above.
Configuration Directives
Arm Syntax: Arm state
- When state is on, ARM measurements will be taken for this directory
- When state is application, ARM measurements will be controlled by the application scripting language such as PHP (not yet implemented)
- When state is off, no measurements are taken for this directory
ArmApplication Syntax: ArmApplication application_name
- Specifies the application name to use for this directory. If none is specified, the default value of "Apache" is used.
ArmUser Syntax: ArmUser user_name
- Specifies the user name for the transaction. If none is specified, the default value of "*" is used
ArmTransaction Syntax: ArmTransaction transaction_name
- Specifies the name of the transaction. If none is specified, the default value will be the URI of the object requested.
ArmTransactionInfo Syntax: ArmTransactionInfo transaction_info
- This is an informational string used to descibe the transaction, primarily for use by transaction correlators. If not specifed, the default value is "Apache web page".
Example:
<Directory /srv/www/vhosts/www.anywhere.but.here.com/html/webmail_appication> Arm on ArmApplication webmail ArmUser anywhere.but.here ArmTransaction mail ArmTransactionInfo "Web interface to email" Options... </Directory>
Availability
All downloads are now available in the SourceForge downloads area.
| Version | Comments |
| 0.05 | Support for Apache 1.3, although the PHP interface is only supported on Apache 2 |
| NOTE: This version has only been lightly tested. Please use carefully. | |
| 0.04 | Many fixes, hooks to support other language bindings such as PHP. |
| 0.03 | Improved code layout, various fixes including removing dependency on OpenView specific ARM implementation |
| 0.02 | ARM compliant, an actual Apache module. |
mod_arm is available here under the Apache License, Version 2.0. If this doesn't meet your needs, drop me a line and we'll talk.
NOTE: This code is under extremely active development, so what you see now is not what you're likely to see a week from now.
Build Directions
There is a makefile that works on my linux system (SuSE 9.0). You'll need to modify this as appropriate for your system. An automake system is in the works, but this may take a while.
The exact syntax will depend on your OS and ARM library.
To-Do
- automake builds
- Testing. Testing. Testing.
- Validation. How does this compare against externally measured results?
- ARM Version 4 integration as collectors begin to support the standard.
- Tutorial?
