mod_arm

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:

ProductTesting StatePlatforms
HP's OpenView Performance Agent (OVPA)VerifiedLinux, Solaris soon
BMC's Patrol - PerformSoon
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.

VersionComments
0.05Support 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.04Many fixes, hooks to support other language bindings such as PHP.
0.03Improved code layout, various fixes including removing dependency on OpenView specific ARM implementation
0.02ARM 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?