1 |
<?xml version="1.0"?> |
2 |
<!DOCTYPE modulesynopsis SYSTEM "style/modulesynopsis.dtd"> |
3 |
<?xml-stylesheet type="text/xsl" href="style/manual.en.xsl"?> |
4 |
<!-- $LastChangedRevision: 106849 $ --> |
5 |
|
6 |
<!-- |
7 |
Copyright 2002-2005 The Apache Software Foundation |
8 |
|
9 |
Licensed under the Apache License, Version 2.0 (the "License"); |
10 |
you may not use this file except in compliance with the License. |
11 |
You may obtain a copy of the License at |
12 |
|
13 |
http://www.apache.org/licenses/LICENSE-2.0 |
14 |
|
15 |
Unless required by applicable law or agreed to in writing, software |
16 |
distributed under the License is distributed on an "AS IS" BASIS, |
17 |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
18 |
See the License for the specific language governing permissions and |
19 |
limitations under the License. |
20 |
--> |
21 |
|
22 |
<modulesynopsis metafile="mod_arm4.xml.meta"> |
23 |
|
24 |
<name>mod_arm4</name> |
25 |
<description>Application Response Measurement (ARM) 4.0 Instrumentation</description> |
26 |
<status>Base</status> |
27 |
<sourcefile>mod_arm4.c</sourcefile> |
28 |
<identifier>arm4_module</identifier> |
29 |
<compatibility>2.0 and 2.1(?)</compatibility> |
30 |
|
31 |
<summary> |
32 |
<p>This module makes the Apache HTTP Server version 2.0 aware of |
33 |
and a participant in ARM instrumentation flows. This module |
34 |
requires the services of an ARM agent library. |
35 |
http://www.opengroup.org/tech/management/arm/</p> |
36 |
</summary> |
37 |
|
38 |
<directivesynopsis> |
39 |
<name>ArmLoadLibrary</name> |
40 |
<description>Sets the path to the ARM4 agent shared library.</description> |
41 |
<syntax>ArmLoadLibrary <var>file-path</var></syntax> |
42 |
<default>ArmLoadLibrary libarm4 (.dll on windows, .a on AIX, .so everywhere else)</default> |
43 |
<contextlist><context>server config</context> |
44 |
</contextlist> |
45 |
<override></override> |
46 |
|
47 |
<usage> |
48 |
<p>The <directive>ArmLoadLibrary</directive> can be used to |
49 |
configure <module>mod_arm4</module> to use a specific ARM4 agent |
50 |
library. <var>File-path</var> is the path to the ARM4 agent library. |
51 |
q: abs or relative path?</p> |
52 |
|
53 |
<example><title>Example:</title> |
54 |
ArmLoadLibrary libewlmarm4.so |
55 |
ArmLoadLibrary ewlmarm4.dll |
56 |
</example> |
57 |
|
58 |
</usage> |
59 |
</directivesynopsis> |
60 |
|
61 |
<directivesynopsis> |
62 |
<name>ArmTransactionName</name> |
63 |
<description>Sets the transaction name registered with the ARM agent</description> |
64 |
<syntax>ArmTransactionName <var>string</var></syntax> |
65 |
<default>ArmTransactionName "HTTP Request"</default> |
66 |
<contextlist><context>server config</context> |
67 |
</contextlist> |
68 |
<override></override> |
69 |
|
70 |
<usage> |
71 |
<p>The <directive>ArmTransactionName</directive> directive sets the name |
72 |
of the transaction registered to the ARM agent. (need more...) |
73 |
</p> |
74 |
|
75 |
<example><title>Example:</title> |
76 |
ArmTransactionName "HTTP" |
77 |
</example> |
78 |
</usage> |
79 |
</directivesynopsis> |
80 |
|
81 |
<directivesynopsis> |
82 |
<name>ArmApplicationName</name> |
83 |
<description>Sets the name of the application registered with the ARM4 agent</description> |
84 |
<syntax>ArmApplicationName <var>string</var></syntax> |
85 |
<default>ArmApplicationName "Apache HTTP Server"</default> |
86 |
<contextlist><context>server config</context> |
87 |
</contextlist> |
88 |
<override></override> |
89 |
|
90 |
<usage> |
91 |
<p>The directive is used to control the name of the application as |
92 |
registered with the ARM4 agent. |
93 |
</p> |
94 |
|
95 |
<example><title>Example:</title> |
96 |
ArmApplicationName "httpd" |
97 |
</example> |
98 |
</usage> |
99 |
</directivesynopsis> |
100 |
|
101 |
<directivesynopsis> |
102 |
<name>ArmInstrumentHandler</name> |
103 |
<description>Enables the arm_block/arm_unlock calls to be made across |
104 |
invocations of module handlers. </description> |
105 |
<syntax>ArmInstrumentHandler <var>"on|off"</var></syntax> |
106 |
<default>ArmInstrumentHandler off</default> |
107 |
<contextlist><context>server config</context> |
108 |
</contextlist> |
109 |
<override></override> |
110 |
|
111 |
<usage> |
112 |
<p>The ARM4 standard defines agent functions, arm_block() and |
113 |
arm_unblock() that can be called to record when a process is about |
114 |
to perform an 'out-of-process' operation (e.g., network i/o) and |
115 |
to record when that 'out-of-process' operation completes. Ideally, |
116 |
Apache HTTP Server handlers that go "out-of-process" would be |
117 |
instrumented to make use of the optional callbacks defined by |
118 |
<module>mod_arm4</module>, arm_ap_block_transaction() and |
119 |
arm_ap_unblock_transaction to record "out-of-process" events with |
120 |
the ARM4 agent.</p> |
121 |
<p>Setting "ArmInstrumentHandler on" causes this module to call |
122 |
arm_block() and arm_unblock on behalf of a handler that is not |
123 |
instrumented. There are a couple of problems with using this |
124 |
directive as implemented. First, <module>mod_arm4</module> has no |
125 |
knowledge if a handler really goes "out-of-process". Second, the |
126 |
arm_block() is called in the fixups hook and the arm_unblock is |
127 |
called in the logging hook, so it is relatively coarse grained. A |
128 |
lot of "in-process" cycles can be consumed between these two hooks |
129 |
which would be incorrectly attributed to the "out-of-process" |
130 |
activity. |
131 |
</p> |
132 |
|
133 |
<example><title>Example:</title> |
134 |
ArmInstrumentHandler on |
135 |
</example> |
136 |
</usage> |
137 |
</directivesynopsis> |
138 |
|
139 |
</modulesynopsis> |