forked from zokusai/openshift-cartridge-newrelic-agent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
extension.xsd
224 lines (218 loc) · 16.2 KB
/
extension.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<?xml version="1.1" encoding="UTF-8"?>
<xs:schema targetNamespace="https://newrelic.com/docs/java/xsd/v1.0" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:urn="https://newrelic.com/docs/java/xsd/v1.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0">
<xs:annotation>
<xs:appinfo>
<jaxb:schemaBindings>
<jaxb:package name="com.newrelic.agent.extension.beans"/>
</jaxb:schemaBindings>
</xs:appinfo>
</xs:annotation>
<xs:element name="extension">
<xs:annotation>
<xs:documentation>
An extension allows users to extend the built-in
monitoring capabilities of the New Relic Java agent
to monitor new frameworks without modifying the framework source code.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="instrumentation" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="pointcut" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Pointcuts are used to inject timing measures into
Java methods to add additional detail to transaction breakdowns.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="nameTransaction" minOccurs="0">
<xs:annotation>
<xs:documentation>
If this element is present, the agent will name the transaction using the method(s) instrumented by this pointcut.
</xs:documentation>
</xs:annotation>
<xs:complexType/>
</xs:element>
<xs:choice>
<xs:element name="methodAnnotation" type="xs:string">
<xs:annotation>
<xs:documentation>
The full name of an annotation class including the package name. All methods that are marked with this annotation will be matched.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="className">
<xs:annotation>
<xs:documentation>
The case sensitive name of the class to match including the package name.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute default="false" name="includeSubclasses" type="xs:boolean">
<xs:annotation>
<xs:documentation>
If false, this works as an exact class matcher. If true, the
methods on the class with the matching name will be matched along
with the matching methods on any child class of the class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="interfaceName" type="xs:string">
<xs:annotation>
<xs:documentation>
The case sensitive name of an interface whose implementation classes will be matched.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:element name="method" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:choice minOccurs="1">
<xs:element name="returnType" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
The case sensitive name of a class indicating a return type to match. All methods that return this class type will be matched.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"
nillable="false">
<xs:annotation>
<xs:documentation>
The exact case sensitive name of the method to
match.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="parameters" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The parameter types of the method specified in order.
If the parameters element is left off all methods
matching the name will be matched including private
and protected declarations.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
A parameter type. This is either a case sensitive class name
including the package name or a primitive
type (boolean, char, int, float, double, etc).
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:attribute name="transactionStartPoint" type="xs:boolean" default="false">
<xs:annotation>
<xs:documentation>
If a transaction is not already in progress when
this point cut is reached, then a transaction will be started.
If a transaction is already in progress, then that
transaction will continue. A new transaction will not
be created.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="metricNameFormat" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the metric to be generated for this pointcut. If not
present, the default is the concatenation of the metric prefix, the class name and the method name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="excludeFromTransactionTrace" type="xs:boolean" default="false">
<xs:annotation>
<xs:documentation>
When true the transaction trace will not be provided if this point cut initiates the transaction.
If this point cut is reached in the middle of a transaction, then the transaction
trace will still be present, but this method will be excluded from the call graph.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ignoreTransaction" type="xs:boolean" default="false">
<xs:annotation>
<xs:documentation>
When true the entire transaction will be ignored regardless of how much of the transaction has completed.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transactionType" default="background">
<xs:annotation>
<xs:documentation>
Sets the type of the transaction. Possible values are "web" and
"background", with "background" as the default.
When set to "web" the transaction will be reported as a web transaction.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="background"/>
<xs:enumeration value="web"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="metricPrefix" type="xs:string">
<xs:annotation>
<xs:documentation>
The prefix used in metric names (when metricNameFormat is not specified). Defaults to 'Custom'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>
The descriptive name of this extension.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enabled" type="xs:boolean" default="true">
<xs:annotation>
<xs:documentation>
Enables and disables this extension.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="version" type="xs:double" default="1.0">
<xs:annotation>
<xs:documentation>
The extension version. If the agent finds multiple extensions with the same name it will load the one with the highest version number.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>