splunker 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,39 @@
1
+ module Splunker
2
+ module Errors
3
+ class ConfigurationError < RuntimeError; end
4
+
5
+ class ClientError < RuntimeError; end
6
+
7
+ # HTTP Status Errors
8
+ class AuthenticationFailureError < ClientError; end
9
+ class FeatureDisabledError < ClientError; end
10
+ class PermissionDeniedError < ClientError; end
11
+ class ObjectDoesNotExistError < ClientError; end
12
+ class MethodNotAllowedError < ClientError; end
13
+ class InvalidOperationError < ClientError; end
14
+ class InternalServerError < ClientError; end
15
+
16
+ STATUS_CODE_TO_ERROR_MAP = {
17
+ 401 => AuthenticationFailureError,
18
+ 402 => FeatureDisabledError,
19
+ 403 => PermissionDeniedError,
20
+ 404 => ObjectDoesNotExistError,
21
+ 405 => MethodNotAllowedError,
22
+ 409 => InvalidOperationError,
23
+ 500 => InternalServerError
24
+ }
25
+
26
+ def self.raise_error_for_status!(http_status, body)
27
+ return nil if (200..299).include?(http_status)
28
+
29
+ if STATUS_CODE_TO_ERROR_MAP[http_status]
30
+ raise STATUS_CODE_TO_ERROR_MAP[http_status], body
31
+ else
32
+ raise ClientError, body
33
+ end
34
+
35
+ nil
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,15 @@
1
+ require 'nokogiri'
2
+ module Splunker
3
+ class FaradayMiddleware < Faraday::Response::Middleware
4
+ def initialize(app)
5
+ super(app)
6
+ end
7
+
8
+ def on_complete(env)
9
+ env[:body] = Nokogiri::XML(env[:body])
10
+ Splunker.logger.debug("Response Body: #{env[:body]}")
11
+ Splunker::Errors.raise_error_for_status!(env[:status], env[:body])
12
+ Splunker.logger.debug "Request successful!"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,35 @@
1
+ module Models
2
+ module Finders
3
+ module ClassMethods
4
+ def where(options={})
5
+ find(:all, options)
6
+ end
7
+
8
+ def find(*arguments)
9
+ scope = arguments.slice!(0)
10
+ options = arguments.slice!(0) || {}
11
+ case scope
12
+ when :all
13
+ find_all(options)
14
+ when :first
15
+ find_all(options).first
16
+ else
17
+ find_by_id(scope, options)
18
+ end
19
+ end
20
+
21
+ def find_all(options)
22
+ self.client.get @service_path, options
23
+ end
24
+
25
+ def find_by_id(object_id, options)
26
+ object_path = assemble_path("#{@service_path}/#{escape_object_id(id)}")
27
+ self.client.get object_path
28
+ end
29
+ end
30
+
31
+ def self.included(base)
32
+ base.send(:extend, ClassMethods)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ module Splunker
2
+ module Models
3
+ require 'cgi'
4
+
5
+ class Resource
6
+
7
+ include Finders
8
+
9
+ def self.service_path(path)
10
+ @service_path = path
11
+ end
12
+
13
+ def self.client
14
+ Splunker.client
15
+ end
16
+
17
+ protected
18
+
19
+ # Basic path validation. Does nothing useful atm.
20
+ def self.assemble_path(path_str)
21
+ path_str.gsub(/\/+/,"/")
22
+ end
23
+
24
+ # Escapes a object ID for use in a URI
25
+ def self.escape_object_id(id_str)
26
+ CGI.escape(id_str)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,12 @@
1
+ module Splunker
2
+ module Models
3
+ class Search::Jobs < Resource
4
+ # http://docs.splunk.com/Documentation/Splunk/4.3.3/RESTAPI/RESTsearch#search.2Fjobs
5
+ # Jobs are a data structure in themselves
6
+ # Jobs have subresources for:
7
+ # * scheduled search results
8
+ def self.results(scheduled_search_id)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ module Splunker
2
+ module Models
3
+ class Search::Results < Resource
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,17 @@
1
+ module Splunker
2
+ module Models
3
+ class Search::Saved < Resource
4
+ # http://docs.splunk.com/Documentation/Splunk/4.3.3/RESTAPI/RESTsearch#search.2Fjobs
5
+ service_path "saved/searches"
6
+ # service_path
7
+ # service_path/id
8
+
9
+ # Dispatch these?
10
+ def acknowledge; end
11
+ def dispatch; end
12
+ def history; end
13
+ def scheduled_times; end
14
+ def suppress; end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,38 @@
1
+ require 'splunker/connection'
2
+
3
+ module Splunker
4
+ module Request
5
+
6
+ def authenticate; end
7
+
8
+ def authenticated?
9
+ true
10
+ end
11
+
12
+ def authenticate_connection(conn)
13
+ conn
14
+ end
15
+
16
+ def get(resource, parameters={})
17
+ request(:get, resource, parameters)
18
+ end
19
+
20
+ #def post(resource, body={})
21
+ # request(:post, resource, nil, body)
22
+ #end
23
+
24
+ ###
25
+ # put/delete can come as needed.
26
+ ###
27
+
28
+ def request(method, resource, parameters={}, body={})
29
+ authenticate unless authenticated?
30
+ authenticate_connection(self.connection)
31
+ self.connection.send(method, resource).body
32
+ end
33
+
34
+ def self.included(base)
35
+ base.send(:include, Splunker::Connection)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,3 @@
1
+ module Splunker
2
+ VERSION = File.read(File.dirname(__FILE__) + "/../../VERSION").chomp
3
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+
4
+ ENV["SPLUNKER_CONSOLE"] = "true"
5
+
6
+ # Quick hack -- find a better way to do this.
7
+ cli_location = if Dir.pwd.match(/script$/)
8
+ File.dirname(__FILE__) + '/../lib/splunker/cli'
9
+ else
10
+ 'splunker/cli'
11
+ end
12
+ require cli_location
13
+
14
+ Splunker::CLI::ConsoleCLI.execute(STDOUT, ARGV)
@@ -0,0 +1,613 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <results preview='0'>
3
+ <meta>
4
+ <fieldOrder>
5
+ <field>_time</field>
6
+ <field>avg(time_total)</field>
7
+ <field>median(time_total)</field>
8
+ <field>avg(time_activerecord)</field>
9
+ <field>_span</field>
10
+ <field>_spandays</field>
11
+ </fieldOrder>
12
+ </meta>
13
+ <result offset='0'>
14
+ <field k='_time'>
15
+ <value><text>2012-07-29T00:00:00.000-05:00</text></value>
16
+ </field>
17
+ <field k='avg(time_total)'>
18
+ <value><text>626.604469</text></value>
19
+ </field>
20
+ <field k='median(time_total)'>
21
+ <value><text>280</text></value>
22
+ </field>
23
+ <field k='avg(time_activerecord)'>
24
+ <value><text>202.880036</text></value>
25
+ </field>
26
+ <field k='_span'>
27
+ <value><text>86400</text></value>
28
+ </field>
29
+ <field k='_spandays'>
30
+ <value><text>1</text></value>
31
+ </field>
32
+ </result>
33
+ <result offset='1'>
34
+ <field k='_time'>
35
+ <value><text>2012-07-30T00:00:00.000-05:00</text></value>
36
+ </field>
37
+ <field k='avg(time_total)'>
38
+ <value><text>765.829547</text></value>
39
+ </field>
40
+ <field k='median(time_total)'>
41
+ <value><text>350</text></value>
42
+ </field>
43
+ <field k='avg(time_activerecord)'>
44
+ <value><text>210.220184</text></value>
45
+ </field>
46
+ <field k='_span'>
47
+ <value><text>86400</text></value>
48
+ </field>
49
+ <field k='_spandays'>
50
+ <value><text>1</text></value>
51
+ </field>
52
+ </result>
53
+ <result offset='2'>
54
+ <field k='_time'>
55
+ <value><text>2012-07-31T00:00:00.000-05:00</text></value>
56
+ </field>
57
+ <field k='avg(time_total)'>
58
+ <value><text>652.741255</text></value>
59
+ </field>
60
+ <field k='median(time_total)'>
61
+ <value><text>240</text></value>
62
+ </field>
63
+ <field k='avg(time_activerecord)'>
64
+ <value><text>186.827163</text></value>
65
+ </field>
66
+ <field k='_span'>
67
+ <value><text>86400</text></value>
68
+ </field>
69
+ <field k='_spandays'>
70
+ <value><text>1</text></value>
71
+ </field>
72
+ </result>
73
+ <result offset='3'>
74
+ <field k='_time'>
75
+ <value><text>2012-08-01T00:00:00.000-05:00</text></value>
76
+ </field>
77
+ <field k='avg(time_total)'>
78
+ <value><text>664.572138</text></value>
79
+ </field>
80
+ <field k='median(time_total)'>
81
+ <value><text>280</text></value>
82
+ </field>
83
+ <field k='avg(time_activerecord)'>
84
+ <value><text>168.159492</text></value>
85
+ </field>
86
+ <field k='_span'>
87
+ <value><text>86400</text></value>
88
+ </field>
89
+ <field k='_spandays'>
90
+ <value><text>1</text></value>
91
+ </field>
92
+ </result>
93
+ <result offset='4'>
94
+ <field k='_time'>
95
+ <value><text>2012-08-02T00:00:00.000-05:00</text></value>
96
+ </field>
97
+ <field k='avg(time_total)'>
98
+ <value><text>677.916186</text></value>
99
+ </field>
100
+ <field k='median(time_total)'>
101
+ <value><text>290</text></value>
102
+ </field>
103
+ <field k='avg(time_activerecord)'>
104
+ <value><text>186.891872</text></value>
105
+ </field>
106
+ <field k='_span'>
107
+ <value><text>86400</text></value>
108
+ </field>
109
+ <field k='_spandays'>
110
+ <value><text>1</text></value>
111
+ </field>
112
+ </result>
113
+ <result offset='5'>
114
+ <field k='_time'>
115
+ <value><text>2012-08-03T00:00:00.000-05:00</text></value>
116
+ </field>
117
+ <field k='avg(time_total)'>
118
+ <value><text>654.896272</text></value>
119
+ </field>
120
+ <field k='median(time_total)'>
121
+ <value><text>290</text></value>
122
+ </field>
123
+ <field k='avg(time_activerecord)'>
124
+ <value><text>174.369437</text></value>
125
+ </field>
126
+ <field k='_span'>
127
+ <value><text>86400</text></value>
128
+ </field>
129
+ <field k='_spandays'>
130
+ <value><text>1</text></value>
131
+ </field>
132
+ </result>
133
+ <result offset='6'>
134
+ <field k='_time'>
135
+ <value><text>2012-08-04T00:00:00.000-05:00</text></value>
136
+ </field>
137
+ <field k='avg(time_total)'>
138
+ <value><text>637.126326</text></value>
139
+ </field>
140
+ <field k='median(time_total)'>
141
+ <value><text>260</text></value>
142
+ </field>
143
+ <field k='avg(time_activerecord)'>
144
+ <value><text>190.163538</text></value>
145
+ </field>
146
+ <field k='_span'>
147
+ <value><text>86400</text></value>
148
+ </field>
149
+ <field k='_spandays'>
150
+ <value><text>1</text></value>
151
+ </field>
152
+ </result>
153
+ <result offset='7'>
154
+ <field k='_time'>
155
+ <value><text>2012-08-05T00:00:00.000-05:00</text></value>
156
+ </field>
157
+ <field k='avg(time_total)'>
158
+ <value><text>603.891516</text></value>
159
+ </field>
160
+ <field k='median(time_total)'>
161
+ <value><text>240</text></value>
162
+ </field>
163
+ <field k='avg(time_activerecord)'>
164
+ <value><text>158.610610</text></value>
165
+ </field>
166
+ <field k='_span'>
167
+ <value><text>86400</text></value>
168
+ </field>
169
+ <field k='_spandays'>
170
+ <value><text>1</text></value>
171
+ </field>
172
+ </result>
173
+ <result offset='8'>
174
+ <field k='_time'>
175
+ <value><text>2012-08-06T00:00:00.000-05:00</text></value>
176
+ </field>
177
+ <field k='avg(time_total)'>
178
+ <value><text>666.383901</text></value>
179
+ </field>
180
+ <field k='median(time_total)'>
181
+ <value><text>280</text></value>
182
+ </field>
183
+ <field k='avg(time_activerecord)'>
184
+ <value><text>171.397636</text></value>
185
+ </field>
186
+ <field k='_span'>
187
+ <value><text>86400</text></value>
188
+ </field>
189
+ <field k='_spandays'>
190
+ <value><text>1</text></value>
191
+ </field>
192
+ </result>
193
+ <result offset='9'>
194
+ <field k='_time'>
195
+ <value><text>2012-08-07T00:00:00.000-05:00</text></value>
196
+ </field>
197
+ <field k='avg(time_total)'>
198
+ <value><text>710.033606</text></value>
199
+ </field>
200
+ <field k='median(time_total)'>
201
+ <value><text>340</text></value>
202
+ </field>
203
+ <field k='avg(time_activerecord)'>
204
+ <value><text>169.977604</text></value>
205
+ </field>
206
+ <field k='_span'>
207
+ <value><text>86400</text></value>
208
+ </field>
209
+ <field k='_spandays'>
210
+ <value><text>1</text></value>
211
+ </field>
212
+ </result>
213
+ <result offset='10'>
214
+ <field k='_time'>
215
+ <value><text>2012-08-08T00:00:00.000-05:00</text></value>
216
+ </field>
217
+ <field k='avg(time_total)'>
218
+ <value><text>728.604476</text></value>
219
+ </field>
220
+ <field k='median(time_total)'>
221
+ <value><text>330</text></value>
222
+ </field>
223
+ <field k='avg(time_activerecord)'>
224
+ <value><text>190.032143</text></value>
225
+ </field>
226
+ <field k='_span'>
227
+ <value><text>86400</text></value>
228
+ </field>
229
+ <field k='_spandays'>
230
+ <value><text>1</text></value>
231
+ </field>
232
+ </result>
233
+ <result offset='11'>
234
+ <field k='_time'>
235
+ <value><text>2012-08-09T00:00:00.000-05:00</text></value>
236
+ </field>
237
+ <field k='avg(time_total)'>
238
+ <value><text>634.322688</text></value>
239
+ </field>
240
+ <field k='median(time_total)'>
241
+ <value><text>290</text></value>
242
+ </field>
243
+ <field k='avg(time_activerecord)'>
244
+ <value><text>169.738905</text></value>
245
+ </field>
246
+ <field k='_span'>
247
+ <value><text>86400</text></value>
248
+ </field>
249
+ <field k='_spandays'>
250
+ <value><text>1</text></value>
251
+ </field>
252
+ </result>
253
+ <result offset='12'>
254
+ <field k='_time'>
255
+ <value><text>2012-08-10T00:00:00.000-05:00</text></value>
256
+ </field>
257
+ <field k='avg(time_total)'>
258
+ <value><text>742.061410</text></value>
259
+ </field>
260
+ <field k='median(time_total)'>
261
+ <value><text>350</text></value>
262
+ </field>
263
+ <field k='avg(time_activerecord)'>
264
+ <value><text>181.697409</text></value>
265
+ </field>
266
+ <field k='_span'>
267
+ <value><text>86400</text></value>
268
+ </field>
269
+ <field k='_spandays'>
270
+ <value><text>1</text></value>
271
+ </field>
272
+ </result>
273
+ <result offset='13'>
274
+ <field k='_time'>
275
+ <value><text>2012-08-11T00:00:00.000-05:00</text></value>
276
+ </field>
277
+ <field k='avg(time_total)'>
278
+ <value><text>626.823697</text></value>
279
+ </field>
280
+ <field k='median(time_total)'>
281
+ <value><text>290</text></value>
282
+ </field>
283
+ <field k='avg(time_activerecord)'>
284
+ <value><text>177.017975</text></value>
285
+ </field>
286
+ <field k='_span'>
287
+ <value><text>86400</text></value>
288
+ </field>
289
+ <field k='_spandays'>
290
+ <value><text>1</text></value>
291
+ </field>
292
+ </result>
293
+ <result offset='14'>
294
+ <field k='_time'>
295
+ <value><text>2012-08-12T00:00:00.000-05:00</text></value>
296
+ </field>
297
+ <field k='avg(time_total)'>
298
+ <value><text>592.350352</text></value>
299
+ </field>
300
+ <field k='median(time_total)'>
301
+ <value><text>240</text></value>
302
+ </field>
303
+ <field k='avg(time_activerecord)'>
304
+ <value><text>151.324866</text></value>
305
+ </field>
306
+ <field k='_span'>
307
+ <value><text>86400</text></value>
308
+ </field>
309
+ <field k='_spandays'>
310
+ <value><text>1</text></value>
311
+ </field>
312
+ </result>
313
+ <result offset='15'>
314
+ <field k='_time'>
315
+ <value><text>2012-08-13T00:00:00.000-05:00</text></value>
316
+ </field>
317
+ <field k='avg(time_total)'>
318
+ <value><text>742.861477</text></value>
319
+ </field>
320
+ <field k='median(time_total)'>
321
+ <value><text>340</text></value>
322
+ </field>
323
+ <field k='avg(time_activerecord)'>
324
+ <value><text>168.279218</text></value>
325
+ </field>
326
+ <field k='_span'>
327
+ <value><text>86400</text></value>
328
+ </field>
329
+ <field k='_spandays'>
330
+ <value><text>1</text></value>
331
+ </field>
332
+ </result>
333
+ <result offset='16'>
334
+ <field k='_time'>
335
+ <value><text>2012-08-14T00:00:00.000-05:00</text></value>
336
+ </field>
337
+ <field k='avg(time_total)'>
338
+ <value><text>726.718603</text></value>
339
+ </field>
340
+ <field k='median(time_total)'>
341
+ <value><text>300</text></value>
342
+ </field>
343
+ <field k='avg(time_activerecord)'>
344
+ <value><text>200.393329</text></value>
345
+ </field>
346
+ <field k='_span'>
347
+ <value><text>86400</text></value>
348
+ </field>
349
+ <field k='_spandays'>
350
+ <value><text>1</text></value>
351
+ </field>
352
+ </result>
353
+ <result offset='17'>
354
+ <field k='_time'>
355
+ <value><text>2012-08-15T00:00:00.000-05:00</text></value>
356
+ </field>
357
+ <field k='avg(time_total)'>
358
+ <value><text>498.480094</text></value>
359
+ </field>
360
+ <field k='median(time_total)'>
361
+ <value><text>220</text></value>
362
+ </field>
363
+ <field k='avg(time_activerecord)'>
364
+ <value><text>173.405023</text></value>
365
+ </field>
366
+ <field k='_span'>
367
+ <value><text>86400</text></value>
368
+ </field>
369
+ <field k='_spandays'>
370
+ <value><text>1</text></value>
371
+ </field>
372
+ </result>
373
+ <result offset='18'>
374
+ <field k='_time'>
375
+ <value><text>2012-08-16T00:00:00.000-05:00</text></value>
376
+ </field>
377
+ <field k='avg(time_total)'>
378
+ <value><text>512.156039</text></value>
379
+ </field>
380
+ <field k='median(time_total)'>
381
+ <value><text>220</text></value>
382
+ </field>
383
+ <field k='avg(time_activerecord)'>
384
+ <value><text>189.428320</text></value>
385
+ </field>
386
+ <field k='_span'>
387
+ <value><text>86400</text></value>
388
+ </field>
389
+ <field k='_spandays'>
390
+ <value><text>1</text></value>
391
+ </field>
392
+ </result>
393
+ <result offset='19'>
394
+ <field k='_time'>
395
+ <value><text>2012-08-17T00:00:00.000-05:00</text></value>
396
+ </field>
397
+ <field k='avg(time_total)'>
398
+ <value><text>503.245491</text></value>
399
+ </field>
400
+ <field k='median(time_total)'>
401
+ <value><text>230</text></value>
402
+ </field>
403
+ <field k='avg(time_activerecord)'>
404
+ <value><text>179.633252</text></value>
405
+ </field>
406
+ <field k='_span'>
407
+ <value><text>86400</text></value>
408
+ </field>
409
+ <field k='_spandays'>
410
+ <value><text>1</text></value>
411
+ </field>
412
+ </result>
413
+ <result offset='20'>
414
+ <field k='_time'>
415
+ <value><text>2012-08-18T00:00:00.000-05:00</text></value>
416
+ </field>
417
+ <field k='avg(time_total)'>
418
+ <value><text>479.941121</text></value>
419
+ </field>
420
+ <field k='median(time_total)'>
421
+ <value><text>200</text></value>
422
+ </field>
423
+ <field k='avg(time_activerecord)'>
424
+ <value><text>181.827986</text></value>
425
+ </field>
426
+ <field k='_span'>
427
+ <value><text>86400</text></value>
428
+ </field>
429
+ <field k='_spandays'>
430
+ <value><text>1</text></value>
431
+ </field>
432
+ </result>
433
+ <result offset='21'>
434
+ <field k='_time'>
435
+ <value><text>2012-08-19T00:00:00.000-05:00</text></value>
436
+ </field>
437
+ <field k='avg(time_total)'>
438
+ <value><text>457.144052</text></value>
439
+ </field>
440
+ <field k='median(time_total)'>
441
+ <value><text>170</text></value>
442
+ </field>
443
+ <field k='avg(time_activerecord)'>
444
+ <value><text>162.570323</text></value>
445
+ </field>
446
+ <field k='_span'>
447
+ <value><text>86400</text></value>
448
+ </field>
449
+ <field k='_spandays'>
450
+ <value><text>1</text></value>
451
+ </field>
452
+ </result>
453
+ <result offset='22'>
454
+ <field k='_time'>
455
+ <value><text>2012-08-20T00:00:00.000-05:00</text></value>
456
+ </field>
457
+ <field k='avg(time_total)'>
458
+ <value><text>618.670077</text></value>
459
+ </field>
460
+ <field k='median(time_total)'>
461
+ <value><text>310</text></value>
462
+ </field>
463
+ <field k='avg(time_activerecord)'>
464
+ <value><text>162.755082</text></value>
465
+ </field>
466
+ <field k='_span'>
467
+ <value><text>86400</text></value>
468
+ </field>
469
+ <field k='_spandays'>
470
+ <value><text>1</text></value>
471
+ </field>
472
+ </result>
473
+ <result offset='23'>
474
+ <field k='_time'>
475
+ <value><text>2012-08-21T00:00:00.000-05:00</text></value>
476
+ </field>
477
+ <field k='avg(time_total)'>
478
+ <value><text>575.648056</text></value>
479
+ </field>
480
+ <field k='median(time_total)'>
481
+ <value><text>272</text></value>
482
+ </field>
483
+ <field k='avg(time_activerecord)'>
484
+ <value><text>168.678373</text></value>
485
+ </field>
486
+ <field k='_span'>
487
+ <value><text>86400</text></value>
488
+ </field>
489
+ <field k='_spandays'>
490
+ <value><text>1</text></value>
491
+ </field>
492
+ </result>
493
+ <result offset='24'>
494
+ <field k='_time'>
495
+ <value><text>2012-08-22T00:00:00.000-05:00</text></value>
496
+ </field>
497
+ <field k='avg(time_total)'>
498
+ <value><text>617.559827</text></value>
499
+ </field>
500
+ <field k='median(time_total)'>
501
+ <value><text>260</text></value>
502
+ </field>
503
+ <field k='avg(time_activerecord)'>
504
+ <value><text>183.527234</text></value>
505
+ </field>
506
+ <field k='_span'>
507
+ <value><text>86400</text></value>
508
+ </field>
509
+ <field k='_spandays'>
510
+ <value><text>1</text></value>
511
+ </field>
512
+ </result>
513
+ <result offset='25'>
514
+ <field k='_time'>
515
+ <value><text>2012-08-23T00:00:00.000-05:00</text></value>
516
+ </field>
517
+ <field k='avg(time_total)'>
518
+ <value><text>601.278826</text></value>
519
+ </field>
520
+ <field k='median(time_total)'>
521
+ <value><text>290</text></value>
522
+ </field>
523
+ <field k='avg(time_activerecord)'>
524
+ <value><text>181.859341</text></value>
525
+ </field>
526
+ <field k='_span'>
527
+ <value><text>86400</text></value>
528
+ </field>
529
+ <field k='_spandays'>
530
+ <value><text>1</text></value>
531
+ </field>
532
+ </result>
533
+ <result offset='26'>
534
+ <field k='_time'>
535
+ <value><text>2012-08-24T00:00:00.000-05:00</text></value>
536
+ </field>
537
+ <field k='avg(time_total)'>
538
+ <value><text>571.693309</text></value>
539
+ </field>
540
+ <field k='median(time_total)'>
541
+ <value><text>290</text></value>
542
+ </field>
543
+ <field k='avg(time_activerecord)'>
544
+ <value><text>178.030219</text></value>
545
+ </field>
546
+ <field k='_span'>
547
+ <value><text>86400</text></value>
548
+ </field>
549
+ <field k='_spandays'>
550
+ <value><text>1</text></value>
551
+ </field>
552
+ </result>
553
+ <result offset='27'>
554
+ <field k='_time'>
555
+ <value><text>2012-08-25T00:00:00.000-05:00</text></value>
556
+ </field>
557
+ <field k='avg(time_total)'>
558
+ <value><text>535.178737</text></value>
559
+ </field>
560
+ <field k='median(time_total)'>
561
+ <value><text>252</text></value>
562
+ </field>
563
+ <field k='avg(time_activerecord)'>
564
+ <value><text>191.702902</text></value>
565
+ </field>
566
+ <field k='_span'>
567
+ <value><text>86400</text></value>
568
+ </field>
569
+ <field k='_spandays'>
570
+ <value><text>1</text></value>
571
+ </field>
572
+ </result>
573
+ <result offset='28'>
574
+ <field k='_time'>
575
+ <value><text>2012-08-26T00:00:00.000-05:00</text></value>
576
+ </field>
577
+ <field k='avg(time_total)'>
578
+ <value><text>457.910322</text></value>
579
+ </field>
580
+ <field k='median(time_total)'>
581
+ <value><text>200</text></value>
582
+ </field>
583
+ <field k='avg(time_activerecord)'>
584
+ <value><text>161.903179</text></value>
585
+ </field>
586
+ <field k='_span'>
587
+ <value><text>86400</text></value>
588
+ </field>
589
+ <field k='_spandays'>
590
+ <value><text>1</text></value>
591
+ </field>
592
+ </result>
593
+ <result offset='29'>
594
+ <field k='_time'>
595
+ <value><text>2012-08-27T00:00:00.000-05:00</text></value>
596
+ </field>
597
+ <field k='avg(time_total)'>
598
+ <value><text>503.689011</text></value>
599
+ </field>
600
+ <field k='median(time_total)'>
601
+ <value><text>240</text></value>
602
+ </field>
603
+ <field k='avg(time_activerecord)'>
604
+ <value><text>167.311769</text></value>
605
+ </field>
606
+ <field k='_span'>
607
+ <value><text>86400</text></value>
608
+ </field>
609
+ <field k='_spandays'>
610
+ <value><text>1</text></value>
611
+ </field>
612
+ </result>
613
+ </results>