Commit | Line | Data |
---|---|---|
ebfa5166 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
89aac4d5 JG |
2 | <!-- |
3 | Copyright (c) 2014 - Jérémie Galarneau <jeremie.galarneau@efficios.com> | |
4 | ||
5 | Permission is hereby granted, free of charge, to any person obtaining a copy | |
6 | of this software and associated documentation files (the "Software"), to deal | |
7 | in the Software without restriction, including without limitation the rights | |
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
9 | copies of the Software, and to permit persons to whom the Software is | |
10 | furnished to do so, subject to the following conditions: | |
11 | ||
12 | The above copyright notice and this permission notice shall be included in | |
13 | all copies or substantial portions of the Software. | |
14 | ||
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
21 | THE SOFTWARE. | |
22 | --> | |
629bf5b0 | 23 | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" |
259c2674 | 24 | elementFormDefault="qualified" version="2.11"> |
629bf5b0 JG |
25 | |
26 | <xs:simpleType name="name_type"> | |
27 | <xs:restriction base="xs:string"> | |
28 | <xs:maxLength value="255"/> | |
29 | </xs:restriction> | |
30 | </xs:simpleType> | |
31 | ||
32 | <xs:simpleType name="uint64_type"> | |
33 | <xs:restriction base="xs:integer"> | |
34 | <xs:minInclusive value="0"/> | |
35 | <xs:maxInclusive value="18446744073709551615"/> | |
36 | </xs:restriction> | |
37 | </xs:simpleType> | |
38 | ||
39 | <xs:simpleType name="uint32_type"> | |
40 | <xs:restriction base="xs:integer"> | |
41 | <xs:minInclusive value="0"/> | |
42 | <xs:maxInclusive value="4294967295"/> | |
43 | </xs:restriction> | |
44 | </xs:simpleType> | |
45 | ||
491d1539 MD |
46 | <!-- |
47 | Maps to the range allowed for blocking timeout: -1 (block forever), | |
48 | 0 (do not block), positive integer value (blocking time in usec) limited | |
49 | by its signed 32-bit representation when converted to msec. | |
50 | --> | |
51 | <xs:simpleType name="blocking_timeout_type"> | |
52 | <xs:restriction base="xs:integer"> | |
53 | <xs:minInclusive value="-1" /> | |
54 | <xs:maxInclusive value="2147483648000" /> | |
55 | </xs:restriction> | |
56 | </xs:simpleType> | |
57 | ||
629bf5b0 JG |
58 | <xs:simpleType name="channel_overwrite_mode_type"> |
59 | <xs:restriction base="xs:string"> | |
60 | <xs:enumeration value="DISCARD"/> | |
61 | <xs:enumeration value="OVERWRITE"/> | |
62 | </xs:restriction> | |
63 | </xs:simpleType> | |
64 | ||
65 | <!-- Maps to the lttng_event_output enum --> | |
66 | <xs:simpleType name="event_output_type"> | |
67 | <xs:restriction base="xs:string"> | |
68 | <xs:enumeration value="SPLICE"/> | |
69 | <xs:enumeration value="MMAP"/> | |
70 | </xs:restriction> | |
71 | </xs:simpleType> | |
72 | ||
73 | <!-- Maps to the lttng_loglevel_type enum --> | |
74 | <xs:simpleType name="loglevel_type"> | |
75 | <xs:restriction base="xs:string"> | |
76 | <xs:enumeration value="ALL"/> | |
77 | <xs:enumeration value="RANGE"/> | |
78 | <xs:enumeration value="SINGLE"/> | |
79 | </xs:restriction> | |
80 | </xs:simpleType> | |
81 | ||
82 | <!-- Maps to the lttng_event_type enum --> | |
83 | <xs:simpleType name="event_type_type"> | |
84 | <xs:restriction base="xs:string"> | |
85 | <xs:enumeration value="ALL"/> | |
86 | <xs:enumeration value="TRACEPOINT"/> | |
87 | <xs:enumeration value="PROBE"/> | |
88 | <xs:enumeration value="FUNCTION"/> | |
89 | <xs:enumeration value="FUNCTION_ENTRY"/> | |
90 | <xs:enumeration value="NOOP"/> | |
91 | <xs:enumeration value="SYSCALL"/> | |
92 | <xs:enumeration value="KPROBE"/> | |
93 | <xs:enumeration value="KRETPROBE"/> | |
94 | </xs:restriction> | |
95 | </xs:simpleType> | |
96 | ||
97 | <xs:complexType name="event_probe_attributes_type"> | |
98 | <xs:all> | |
99 | <xs:element name="symbol_name" type="name_type" minOccurs="0"/> | |
100 | <xs:element name="address" type="uint64_type" minOccurs="0"/> | |
101 | <xs:element name="offset" type="uint64_type" minOccurs="0"/> | |
102 | </xs:all> | |
103 | </xs:complexType> | |
104 | ||
105 | <xs:complexType name="event_ftrace_attributes_type"> | |
106 | <xs:all> | |
107 | <xs:element name="symbol_name" type="name_type"/> | |
108 | </xs:all> | |
109 | </xs:complexType> | |
110 | ||
111 | <xs:complexType name="event_attributes_type"> | |
112 | <xs:choice> | |
113 | <xs:element name="probe_attributes" type="event_probe_attributes_type"/> | |
114 | <xs:element name="function_attributes" type="event_ftrace_attributes_type"/> | |
115 | </xs:choice> | |
116 | </xs:complexType> | |
117 | ||
118 | <xs:complexType name="event_exclusion_list_type"> | |
119 | <xs:sequence> | |
120 | <xs:element name="exclusion" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> | |
121 | </xs:sequence> | |
122 | </xs:complexType> | |
123 | ||
124 | <xs:complexType name="event_type"> | |
125 | <xs:all> | |
126 | <xs:element name="name" type="name_type" minOccurs="0"/> | |
127 | <xs:element name="enabled" type="xs:boolean" default="true" minOccurs="0"/> | |
128 | <xs:element name="type" type="event_type_type" default="TRACEPOINT" minOccurs="0"/> | |
129 | <xs:element name="loglevel_type" type="loglevel_type" default="ALL" minOccurs="0"/> | |
130 | <xs:element name="loglevel" type="xs:int" default="-1" minOccurs="0"/> | |
131 | <xs:element name="filter" type="xs:string" minOccurs="0"/> | |
132 | <xs:element name="exclusions" type="event_exclusion_list_type" minOccurs="0"/> | |
133 | <xs:element name="attributes" type="event_attributes_type" minOccurs="0"/> | |
134 | </xs:all> | |
135 | </xs:complexType> | |
136 | ||
137 | <xs:complexType name="event_list_type"> | |
138 | <xs:sequence> | |
139 | <xs:element name="event" type="event_type" minOccurs="0" maxOccurs="unbounded"/> | |
140 | </xs:sequence> | |
141 | </xs:complexType> | |
142 | ||
143 | <xs:complexType name="event_perf_context_type"> | |
144 | <xs:all> | |
145 | <xs:element name="type" type="uint32_type"/> | |
146 | <xs:element name="config" type="uint64_type"/> | |
147 | <xs:element name="name" type="name_type"/> | |
148 | </xs:all> | |
149 | </xs:complexType> | |
150 | ||
045fc617 JG |
151 | <xs:complexType name="event_app_context_type"> |
152 | <xs:all> | |
153 | <xs:element name="provider_name" type="xs:string"/> | |
154 | <xs:element name="ctx_name" type="xs:string"/> | |
155 | </xs:all> | |
156 | </xs:complexType> | |
157 | ||
629bf5b0 JG |
158 | <!-- Maps to the lttng_event_context_type enum --> |
159 | <xs:simpleType name="event_context_type_type"> | |
160 | <xs:restriction base="xs:string"> | |
161 | <xs:enumeration value="PID"/> | |
162 | <xs:enumeration value="PROCNAME"/> | |
163 | <xs:enumeration value="PRIO"/> | |
164 | <xs:enumeration value="NICE"/> | |
165 | <xs:enumeration value="VPID"/> | |
166 | <xs:enumeration value="TID"/> | |
167 | <xs:enumeration value="VTID"/> | |
168 | <xs:enumeration value="PPID"/> | |
169 | <xs:enumeration value="VPPID"/> | |
170 | <xs:enumeration value="PTHREAD_ID"/> | |
171 | <xs:enumeration value="HOSTNAME"/> | |
172 | <xs:enumeration value="IP"/> | |
045fc617 | 173 | <xs:enumeration value="APP"/> |
629bf5b0 JG |
174 | </xs:restriction> |
175 | </xs:simpleType> | |
176 | ||
177 | <xs:complexType name="event_context_type"> | |
178 | <xs:choice> | |
179 | <xs:element name="type" type="event_context_type_type"/> | |
180 | <xs:element name="perf" type="event_perf_context_type"/> | |
045fc617 | 181 | <xs:element name="app" type="event_app_context_type"/> |
629bf5b0 JG |
182 | </xs:choice> |
183 | </xs:complexType> | |
184 | ||
185 | <xs:complexType name="event_context_list_type"> | |
186 | <xs:sequence> | |
187 | <xs:element name="context" type="event_context_type" minOccurs="0" maxOccurs="unbounded"/> | |
188 | </xs:sequence> | |
189 | </xs:complexType> | |
190 | ||
191 | <!-- Maps to struct lttng_channel --> | |
192 | <xs:complexType name="channel_type"> | |
193 | <xs:all> | |
194 | <xs:element name="name" type="name_type"/> | |
195 | <xs:element name="enabled" type="xs:boolean" default="true" minOccurs="0"/> | |
196 | <xs:element name="overwrite_mode" type="channel_overwrite_mode_type" default="DISCARD" minOccurs="0"/> | |
197 | <xs:element name="subbuffer_size" type="uint64_type" minOccurs="0"/> <!-- bytes --> | |
198 | <xs:element name="subbuffer_count" type="uint64_type" default="4" minOccurs="0"/> | |
199 | <xs:element name="switch_timer_interval" type="uint32_type" default="0" minOccurs="0"/> <!-- usec --> | |
200 | <xs:element name="read_timer_interval" type="uint32_type"/> <!-- usec --> | |
491d1539 | 201 | <xs:element name="blocking_timeout" type="blocking_timeout_type" default="0" minOccurs="0" /> <!-- usec --> |
629bf5b0 JG |
202 | <xs:element name="output_type" type="event_output_type"/> |
203 | <xs:element name="tracefile_size" type="uint64_type" default="0" minOccurs="0"/> <!-- bytes --> | |
204 | <xs:element name="tracefile_count" type="uint64_type" default="0" minOccurs="0"/> | |
205 | <xs:element name="live_timer_interval" type="uint32_type" default="0" minOccurs="0"/> <!-- usec --> | |
206 | <xs:element name="events" type="event_list_type" minOccurs="0"/> | |
207 | <xs:element name="contexts" type="event_context_list_type" minOccurs="0"/> | |
4fc2b126 | 208 | <xs:element name="monitor_timer_interval" type="uint64_type" default="0" minOccurs="0"/> <!-- usec --> |
629bf5b0 JG |
209 | </xs:all> |
210 | </xs:complexType> | |
211 | ||
212 | <!-- Maps to the lttng_domain_type enum --> | |
213 | <xs:simpleType name="domain_type_type"> | |
214 | <xs:restriction base="xs:string"> | |
215 | <xs:enumeration value="KERNEL"/> | |
216 | <xs:enumeration value="UST"/> | |
217 | <xs:enumeration value="JUL"/> | |
ff00898c | 218 | <xs:enumeration value="LOG4J"/> |
0e115563 | 219 | <xs:enumeration value="PYTHON"/> |
629bf5b0 JG |
220 | </xs:restriction> |
221 | </xs:simpleType> | |
222 | ||
223 | <!-- Maps to the lttng_buffer_type enum --> | |
224 | <xs:simpleType name="domain_buffer_type"> | |
225 | <xs:restriction base="xs:string"> | |
226 | <xs:enumeration value="PER_PID"/> | |
227 | <xs:enumeration value="PER_UID"/> | |
228 | <xs:enumeration value="GLOBAL"/> | |
229 | </xs:restriction> | |
230 | </xs:simpleType> | |
231 | ||
232 | <xs:complexType name="channel_list_type"> | |
233 | <xs:sequence> | |
847a5916 | 234 | <xs:element name="channel" type="channel_type" minOccurs="0" maxOccurs="unbounded" /> |
629bf5b0 JG |
235 | </xs:sequence> |
236 | </xs:complexType> | |
237 | ||
847a5916 | 238 | <xs:complexType name="pid_target_type"> |
96518a56 | 239 | <xs:choice minOccurs="0"> |
847a5916 | 240 | <xs:element name="pid" type="xs:integer" /> |
96518a56 MD |
241 | <xs:element name="id" type="xs:integer" /> |
242 | </xs:choice> | |
847a5916 JR |
243 | </xs:complexType> |
244 | ||
245 | <!-- Maps to a list of pid_targets--> | |
96518a56 | 246 | <xs:complexType name="pid_targets_type"> |
847a5916 | 247 | <xs:sequence> |
96518a56 MD |
248 | <xs:choice minOccurs="0" maxOccurs="unbounded" > |
249 | <xs:element name="pid_target" type="pid_target_type" /> | |
847a5916 JR |
250 | </xs:choice> |
251 | </xs:sequence> | |
252 | </xs:complexType> | |
253 | ||
254 | <!-- Maps to a pid_tracker--> | |
255 | <xs:complexType name="pid_tracker_type"> | |
256 | <xs:all> | |
96518a56 MD |
257 | <xs:element name="targets" type="pid_targets_type" /> |
258 | </xs:all> | |
259 | </xs:complexType> | |
260 | ||
261 | <xs:complexType name="vpid_target_type"> | |
262 | <xs:all> | |
263 | <xs:element name="id" type="xs:integer" /> | |
264 | </xs:all> | |
265 | </xs:complexType> | |
266 | ||
267 | <!-- Maps to a list of vpid_targets--> | |
268 | <xs:complexType name="vpid_targets_type"> | |
269 | <xs:sequence> | |
270 | <xs:element name="vpid_target" type="vpid_target_type" minOccurs="0" maxOccurs="unbounded" /> | |
271 | </xs:sequence> | |
272 | </xs:complexType> | |
273 | ||
274 | <!-- Maps to a pid_tracker--> | |
275 | <xs:complexType name="vpid_tracker_type"> | |
276 | <xs:all> | |
277 | <xs:element name="targets" type="vpid_targets_type" /> | |
278 | </xs:all> | |
279 | </xs:complexType> | |
280 | ||
281 | <xs:complexType name="uid_target_type"> | |
282 | <xs:choice> | |
283 | <xs:element name="id" type="xs:integer" /> | |
284 | <xs:element name="name" type="xs:string" /> | |
285 | </xs:choice> | |
286 | </xs:complexType> | |
287 | ||
288 | <!-- Maps to a list of uid_targets--> | |
289 | <xs:complexType name="uid_targets_type"> | |
290 | <xs:sequence> | |
291 | <xs:element name="uid_target" type="uid_target_type" minOccurs="0" maxOccurs="unbounded" /> | |
292 | </xs:sequence> | |
293 | </xs:complexType> | |
294 | ||
295 | <!-- Maps to a uid_tracker--> | |
296 | <xs:complexType name="uid_tracker_type"> | |
297 | <xs:all> | |
298 | <xs:element name="targets" type="uid_targets_type" /> | |
299 | </xs:all> | |
300 | </xs:complexType> | |
301 | ||
302 | <xs:complexType name="vuid_target_type"> | |
303 | <xs:choice> | |
304 | <xs:element name="id" type="xs:integer" /> | |
305 | <xs:element name="name" type="xs:string" /> | |
306 | </xs:choice> | |
307 | </xs:complexType> | |
308 | ||
309 | <!-- Maps to a list of vuid_targets--> | |
310 | <xs:complexType name="vuid_targets_type"> | |
311 | <xs:sequence> | |
312 | <xs:element name="vuid_target" type="vuid_target_type" minOccurs="0" maxOccurs="unbounded" /> | |
313 | </xs:sequence> | |
314 | </xs:complexType> | |
315 | ||
316 | <!-- Maps to a uid_tracker--> | |
317 | <xs:complexType name="vuid_tracker_type"> | |
318 | <xs:all> | |
319 | <xs:element name="targets" type="vuid_targets_type" /> | |
320 | </xs:all> | |
321 | </xs:complexType> | |
322 | ||
323 | <xs:complexType name="gid_target_type"> | |
324 | <xs:choice> | |
325 | <xs:element name="id" type="xs:integer" /> | |
326 | <xs:element name="name" type="xs:string" /> | |
327 | </xs:choice> | |
328 | </xs:complexType> | |
329 | ||
330 | <!-- Maps to a list of gid_targets--> | |
331 | <xs:complexType name="gid_targets_type"> | |
332 | <xs:sequence> | |
333 | <xs:element name="gid_target" type="gid_target_type" minOccurs="0" maxOccurs="unbounded" /> | |
334 | </xs:sequence> | |
335 | </xs:complexType> | |
336 | ||
337 | <!-- Maps to a gid_tracker--> | |
338 | <xs:complexType name="gid_tracker_type"> | |
339 | <xs:all> | |
340 | <xs:element name="targets" type="gid_targets_type" /> | |
341 | </xs:all> | |
342 | </xs:complexType> | |
343 | ||
344 | <xs:complexType name="vgid_target_type"> | |
345 | <xs:choice> | |
346 | <xs:element name="id" type="xs:integer" /> | |
347 | <xs:element name="name" type="xs:string" /> | |
348 | </xs:choice> | |
349 | </xs:complexType> | |
350 | ||
351 | <!-- Maps to a list of vgid_targets--> | |
352 | <xs:complexType name="vgid_targets_type"> | |
353 | <xs:sequence> | |
354 | <xs:element name="vgid_target" type="vgid_target_type" minOccurs="0" maxOccurs="unbounded" /> | |
355 | </xs:sequence> | |
356 | </xs:complexType> | |
357 | ||
358 | <!-- Maps to a gid_tracker--> | |
359 | <xs:complexType name="vgid_tracker_type"> | |
360 | <xs:all> | |
361 | <xs:element name="targets" type="vgid_targets_type" /> | |
847a5916 JR |
362 | </xs:all> |
363 | </xs:complexType> | |
364 | ||
365 | <!-- Maps to a list of trackers--> | |
366 | <xs:complexType name="trackers_type"> | |
96518a56 MD |
367 | <xs:sequence> |
368 | <xs:choice minOccurs="0" maxOccurs="unbounded" > | |
369 | <xs:element name="pid_tracker" type="pid_tracker_type" maxOccurs="1" /> | |
370 | <xs:element name="vpid_tracker" type="vpid_tracker_type" maxOccurs="1" /> | |
371 | <xs:element name="uid_tracker" type="uid_tracker_type" maxOccurs="1" /> | |
372 | <xs:element name="vuid_tracker" type="vuid_tracker_type" maxOccurs="1" /> | |
373 | <xs:element name="gid_tracker" type="gid_tracker_type" maxOccurs="1" /> | |
374 | <xs:element name="vgid_tracker" type="vgid_tracker_type" maxOccurs="1" /> | |
375 | </xs:choice> | |
847a5916 JR |
376 | </xs:sequence> |
377 | </xs:complexType> | |
378 | ||
379 | <!-- Maps to struct lttng_domain, contains channels and pid_tracker --> | |
629bf5b0 JG |
380 | <xs:complexType name="domain_type"> |
381 | <xs:all> | |
382 | <xs:element name="type" type="domain_type_type"/> | |
383 | <xs:element name="buffer_type" type="domain_buffer_type"/> | |
384 | <xs:element name="channels" type="channel_list_type" minOccurs="0"/> | |
847a5916 | 385 | <xs:element name="trackers" type="trackers_type" minOccurs="0"/> |
629bf5b0 JG |
386 | </xs:all> |
387 | </xs:complexType> | |
388 | ||
389 | <xs:complexType name="session_attributes_type"> | |
259c2674 JD |
390 | <xs:all> |
391 | <xs:element name="snapshot_mode" type="xs:boolean" minOccurs="0"/> | |
392 | <xs:element name="live_timer_interval" type="uint32_type" minOccurs="0"/> <!-- usec --> | |
329f3443 JD |
393 | <xs:element name="rotation_schedule_timer_period" type="uint64_type" minOccurs="0"/> <!-- usec --> |
394 | <xs:element name="rotation_schedule_size" type="uint64_type" minOccurs="0"/> <!-- bytes --> | |
259c2674 | 395 | </xs:all> |
629bf5b0 JG |
396 | </xs:complexType> |
397 | ||
398 | <xs:complexType name="domain_list_type"> | |
399 | <xs:sequence> | |
400 | <xs:element name="domain" type="domain_type" minOccurs="0" maxOccurs="unbounded"/> | |
401 | </xs:sequence> | |
402 | </xs:complexType> | |
403 | ||
404 | <xs:complexType name="net_output_type"> | |
405 | <xs:all> | |
406 | <xs:element name="control_uri" type="xs:string"/> | |
407 | <xs:element name="data_uri" type="xs:string"/> | |
408 | </xs:all> | |
409 | </xs:complexType> | |
410 | ||
411 | <xs:complexType name="destination_type"> | |
412 | <xs:choice> | |
413 | <xs:element name="path" type="xs:string"/> | |
414 | <xs:element name="net_output" type="net_output_type"/> | |
415 | </xs:choice> | |
416 | </xs:complexType> | |
417 | ||
418 | <xs:complexType name="consumer_output_type"> | |
419 | <xs:all> | |
420 | <xs:element name="enabled" type="xs:boolean" default="true"/> | |
421 | <xs:element name="destination" type="destination_type"/> | |
422 | </xs:all> | |
423 | </xs:complexType> | |
424 | ||
425 | <xs:complexType name="snapshot_output_type"> | |
426 | <xs:all> | |
427 | <xs:element name="name" type="name_type"/> | |
428 | <xs:element name="max_size" type="uint64_type"/> | |
429 | <xs:element name="consumer_output" type="consumer_output_type"/> | |
430 | </xs:all> | |
431 | </xs:complexType> | |
432 | ||
433 | <xs:complexType name="snapshot_output_list_type"> | |
434 | <xs:sequence> | |
435 | <xs:element name="output" type="snapshot_output_type" minOccurs="0" maxOccurs="unbounded"/> | |
436 | </xs:sequence> | |
437 | </xs:complexType> | |
438 | ||
439 | <xs:complexType name="session_output_type"> | |
440 | <xs:choice> | |
441 | <xs:element name="snapshot_outputs" type="snapshot_output_list_type"/> | |
442 | <xs:element name="consumer_output" type="consumer_output_type"/> | |
443 | </xs:choice> | |
444 | </xs:complexType> | |
445 | ||
446 | <xs:complexType name="session_type"> | |
447 | <xs:all> | |
448 | <xs:element name="name" type="name_type"/> | |
9e7c9f56 | 449 | <xs:element name="shared_memory_path" type="xs:string" minOccurs="0"/> |
629bf5b0 JG |
450 | <xs:element name="domains" type="domain_list_type" minOccurs="0"/> |
451 | <xs:element name="started" type="xs:boolean" default="0" minOccurs="0"/> | |
452 | <xs:element name="attributes" type="session_attributes_type" minOccurs="0"/> | |
453 | <xs:element name="output" type="session_output_type" minOccurs="0"/> | |
454 | </xs:all> | |
455 | </xs:complexType> | |
456 | ||
457 | <xs:element name="sessions"> | |
458 | <xs:complexType> | |
459 | <xs:sequence> | |
460 | <xs:element name="session" type="session_type" maxOccurs="unbounded"/> | |
461 | </xs:sequence> | |
462 | </xs:complexType> | |
463 | </xs:element> | |
464 | ||
465 | </xs:schema> |