influxdb-rails 1.0.0.beta3 → 1.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -0
  3. data/CHANGELOG.md +12 -10
  4. data/README.md +193 -168
  5. data/influxdb-rails.gemspec +13 -7
  6. data/lib/influxdb/rails/configuration.rb +88 -192
  7. data/lib/influxdb/rails/context.rb +19 -1
  8. data/lib/influxdb/rails/instrumentation.rb +4 -4
  9. data/lib/influxdb/rails/middleware/render_subscriber.rb +7 -0
  10. data/lib/influxdb/rails/middleware/request_subscriber.rb +22 -24
  11. data/lib/influxdb/rails/middleware/simple_subscriber.rb +12 -25
  12. data/lib/influxdb/rails/middleware/sql_subscriber.rb +7 -3
  13. data/lib/influxdb/rails/middleware/subscriber.rb +19 -8
  14. data/lib/influxdb/rails/railtie.rb +29 -32
  15. data/lib/influxdb/rails/version.rb +1 -1
  16. data/lib/influxdb-rails.rb +20 -81
  17. data/lib/rails/generators/influxdb/influxdb_generator.rb +1 -1
  18. data/lib/rails/generators/influxdb/templates/initializer.rb +39 -9
  19. data/sample-dashboard/Dockerfile +25 -0
  20. data/sample-dashboard/README.md +74 -0
  21. data/sample-dashboard/Rakefile +8 -0
  22. data/sample-dashboard/Ruby On Rails Performance (per Request).json +1053 -0
  23. data/sample-dashboard/Ruby On Rails Performance.json +2011 -0
  24. data/sample-dashboard/docker-compose.yml +33 -0
  25. data/sample-dashboard/provisioning/grafana-dashboards.yml +12 -0
  26. data/sample-dashboard/provisioning/grafana-datasource.yml +10 -0
  27. data/sample-dashboard/provisioning/performance-request.json +1053 -0
  28. data/sample-dashboard/provisioning/performance.json +2011 -0
  29. data/spec/integration/metrics_spec.rb +12 -13
  30. data/spec/shared_examples/data.rb +61 -0
  31. data/spec/spec_helper.rb +3 -1
  32. data/spec/support/rails4/app.rb +4 -0
  33. data/spec/support/rails5/app.rb +4 -0
  34. data/spec/unit/configuration_spec.rb +47 -65
  35. data/spec/unit/middleware/render_subscriber_spec.rb +13 -9
  36. data/spec/unit/middleware/request_subscriber_spec.rb +33 -21
  37. data/spec/unit/middleware/sql_subscriber_spec.rb +35 -8
  38. metadata +42 -30
  39. data/lib/influxdb/rails/air_traffic_controller.rb +0 -41
  40. data/lib/influxdb/rails/backtrace.rb +0 -44
  41. data/lib/influxdb/rails/exception_presenter.rb +0 -94
  42. data/lib/influxdb/rails/logger.rb +0 -16
  43. data/lib/influxdb/rails/middleware/hijack_render_exception.rb +0 -16
  44. data/lib/influxdb/rails/middleware/hijack_rescue_action_everywhere.rb +0 -31
  45. data/lib/influxdb/rails/rack.rb +0 -24
  46. data/spec/integration/exceptions_spec.rb +0 -37
  47. data/spec/shared_examples/tags.rb +0 -42
  48. data/spec/unit/backtrace_spec.rb +0 -85
  49. data/spec/unit/exception_presenter_spec.rb +0 -23
  50. data/spec/unit/influxdb_rails_spec.rb +0 -78
@@ -0,0 +1,2011 @@
1
+ {
2
+ "__inputs": [
3
+ {
4
+ "name": "DS_INFLUXDB",
5
+ "label": "InfluxDB",
6
+ "description": "",
7
+ "type": "datasource",
8
+ "pluginId": "influxdb",
9
+ "pluginName": "InfluxDB"
10
+ }
11
+ ],
12
+ "__requires": [
13
+ {
14
+ "type": "grafana",
15
+ "id": "grafana",
16
+ "name": "Grafana",
17
+ "version": "6.2.4"
18
+ },
19
+ {
20
+ "type": "panel",
21
+ "id": "graph",
22
+ "name": "Graph",
23
+ "version": ""
24
+ },
25
+ {
26
+ "type": "datasource",
27
+ "id": "influxdb",
28
+ "name": "InfluxDB",
29
+ "version": "1.0.0"
30
+ },
31
+ {
32
+ "type": "panel",
33
+ "id": "singlestat",
34
+ "name": "Singlestat",
35
+ "version": ""
36
+ },
37
+ {
38
+ "type": "panel",
39
+ "id": "table",
40
+ "name": "Table",
41
+ "version": ""
42
+ }
43
+ ],
44
+ "annotations": {
45
+ "list": [
46
+ {
47
+ "builtIn": 1,
48
+ "datasource": "-- Grafana --",
49
+ "enable": true,
50
+ "hide": true,
51
+ "iconColor": "rgba(0, 211, 255, 1)",
52
+ "name": "Annotations & Alerts",
53
+ "type": "dashboard"
54
+ }
55
+ ]
56
+ },
57
+ "description": "Ruby on Rails Performance Insights based on influxdb and influxdb-rails",
58
+ "editable": true,
59
+ "gnetId": 10428,
60
+ "graphTooltip": 0,
61
+ "id": null,
62
+ "iteration": 1565379563803,
63
+ "links": [],
64
+ "panels": [
65
+ {
66
+ "cacheTimeout": null,
67
+ "colorBackground": false,
68
+ "colorValue": true,
69
+ "colors": [
70
+ "#299c46",
71
+ "rgba(237, 129, 40, 0.89)",
72
+ "#d44a3a"
73
+ ],
74
+ "datasource": "${DS_INFLUXDB}",
75
+ "description": "",
76
+ "format": "ms",
77
+ "gauge": {
78
+ "maxValue": 100,
79
+ "minValue": 0,
80
+ "show": false,
81
+ "thresholdLabels": false,
82
+ "thresholdMarkers": true
83
+ },
84
+ "id": 10,
85
+ "interval": null,
86
+ "links": [],
87
+ "mappingType": 1,
88
+ "mappingTypes": [
89
+ {
90
+ "name": "value to text",
91
+ "value": 1
92
+ },
93
+ {
94
+ "name": "range to text",
95
+ "value": 2
96
+ }
97
+ ],
98
+ "maxDataPoints": 100,
99
+ "nullPointMode": "connected",
100
+ "nullText": null,
101
+ "options": {},
102
+ "postfix": "",
103
+ "postfixFontSize": "50%",
104
+ "prefix": "",
105
+ "prefixFontSize": "50%",
106
+ "rangeMaps": [
107
+ {
108
+ "from": "null",
109
+ "text": "N/A",
110
+ "to": "null"
111
+ }
112
+ ],
113
+ "sparkline": {
114
+ "fillColor": "rgba(31, 118, 189, 0.18)",
115
+ "full": false,
116
+ "lineColor": "rgb(31, 120, 193)",
117
+ "show": true
118
+ },
119
+ "tableColumn": "",
120
+ "targets": [
121
+ {
122
+ "groupBy": [
123
+ {
124
+ "params": [
125
+ "$__interval"
126
+ ],
127
+ "type": "time"
128
+ },
129
+ {
130
+ "params": [
131
+ "null"
132
+ ],
133
+ "type": "fill"
134
+ }
135
+ ],
136
+ "hide": false,
137
+ "measurement": "rails",
138
+ "orderByTime": "ASC",
139
+ "policy": "default",
140
+ "refId": "A",
141
+ "resultFormat": "time_series",
142
+ "select": [
143
+ [
144
+ {
145
+ "params": [
146
+ "controller"
147
+ ],
148
+ "type": "field"
149
+ },
150
+ {
151
+ "params": [],
152
+ "type": "mean"
153
+ }
154
+ ]
155
+ ],
156
+ "tags": [
157
+ {
158
+ "key": "hook",
159
+ "operator": "=",
160
+ "value": "process_action"
161
+ }
162
+ ]
163
+ }
164
+ ],
165
+ "thresholds": "200,300",
166
+ "title": "Average Controller Action Time",
167
+ "type": "singlestat",
168
+ "valueFontSize": "80%",
169
+ "valueMaps": [
170
+ {
171
+ "op": "=",
172
+ "text": "N/A",
173
+ "value": "null"
174
+ }
175
+ ],
176
+ "valueName": "avg"
177
+ },
178
+ {
179
+ "cacheTimeout": null,
180
+ "colorBackground": false,
181
+ "colorValue": true,
182
+ "colors": [
183
+ "#299c46",
184
+ "rgba(237, 129, 40, 0.89)",
185
+ "#d44a3a"
186
+ ],
187
+ "datasource": "${DS_INFLUXDB}",
188
+ "format": "ms",
189
+ "gauge": {
190
+ "maxValue": 100,
191
+ "minValue": 0,
192
+ "show": false,
193
+ "thresholdLabels": false,
194
+ "thresholdMarkers": true
195
+ },
196
+ "gridPos": {
197
+ "h": 3,
198
+ "w": 6,
199
+ "x": 6,
200
+ "y": 0
201
+ },
202
+ "id": 12,
203
+ "interval": null,
204
+ "links": [],
205
+ "mappingType": 1,
206
+ "mappingTypes": [
207
+ {
208
+ "name": "value to text",
209
+ "value": 1
210
+ },
211
+ {
212
+ "name": "range to text",
213
+ "value": 2
214
+ }
215
+ ],
216
+ "maxDataPoints": 100,
217
+ "nullPointMode": "connected",
218
+ "nullText": null,
219
+ "options": {},
220
+ "postfix": "",
221
+ "postfixFontSize": "50%",
222
+ "prefix": "",
223
+ "prefixFontSize": "50%",
224
+ "rangeMaps": [
225
+ {
226
+ "from": "null",
227
+ "text": "N/A",
228
+ "to": "null"
229
+ }
230
+ ],
231
+ "sparkline": {
232
+ "fillColor": "rgba(31, 118, 189, 0.18)",
233
+ "full": false,
234
+ "lineColor": "rgb(31, 120, 193)",
235
+ "show": true
236
+ },
237
+ "tableColumn": "",
238
+ "targets": [
239
+ {
240
+ "groupBy": [
241
+ {
242
+ "params": [
243
+ "$__interval"
244
+ ],
245
+ "type": "time"
246
+ },
247
+ {
248
+ "params": [
249
+ "null"
250
+ ],
251
+ "type": "fill"
252
+ }
253
+ ],
254
+ "measurement": "rails",
255
+ "orderByTime": "ASC",
256
+ "policy": "default",
257
+ "refId": "A",
258
+ "resultFormat": "time_series",
259
+ "select": [
260
+ [
261
+ {
262
+ "params": [
263
+ "db"
264
+ ],
265
+ "type": "field"
266
+ },
267
+ {
268
+ "params": [],
269
+ "type": "mean"
270
+ }
271
+ ]
272
+ ],
273
+ "tags": [
274
+ {
275
+ "key": "hook",
276
+ "operator": "=",
277
+ "value": "process_action"
278
+ }
279
+ ]
280
+ }
281
+ ],
282
+ "thresholds": "50,100",
283
+ "title": "Average Database Query Time",
284
+ "type": "singlestat",
285
+ "valueFontSize": "80%",
286
+ "valueMaps": [
287
+ {
288
+ "op": "=",
289
+ "text": "N/A",
290
+ "value": "null"
291
+ }
292
+ ],
293
+ "valueName": "avg"
294
+ },
295
+ {
296
+ "cacheTimeout": null,
297
+ "colorBackground": false,
298
+ "colorValue": true,
299
+ "colors": [
300
+ "#299c46",
301
+ "rgba(237, 129, 40, 0.89)",
302
+ "#d44a3a"
303
+ ],
304
+ "datasource": "${DS_INFLUXDB}",
305
+ "format": "ms",
306
+ "gauge": {
307
+ "maxValue": 100,
308
+ "minValue": 0,
309
+ "show": false,
310
+ "thresholdLabels": false,
311
+ "thresholdMarkers": true
312
+ },
313
+ "gridPos": {
314
+ "h": 3,
315
+ "w": 6,
316
+ "x": 12,
317
+ "y": 0
318
+ },
319
+ "id": 14,
320
+ "interval": null,
321
+ "links": [],
322
+ "mappingType": 1,
323
+ "mappingTypes": [
324
+ {
325
+ "name": "value to text",
326
+ "value": 1
327
+ },
328
+ {
329
+ "name": "range to text",
330
+ "value": 2
331
+ }
332
+ ],
333
+ "maxDataPoints": 100,
334
+ "nullPointMode": "connected",
335
+ "nullText": null,
336
+ "options": {},
337
+ "postfix": "",
338
+ "postfixFontSize": "50%",
339
+ "prefix": "",
340
+ "prefixFontSize": "50%",
341
+ "rangeMaps": [
342
+ {
343
+ "from": "null",
344
+ "text": "N/A",
345
+ "to": "null"
346
+ }
347
+ ],
348
+ "sparkline": {
349
+ "fillColor": "rgba(31, 118, 189, 0.18)",
350
+ "full": false,
351
+ "lineColor": "rgb(31, 120, 193)",
352
+ "show": true
353
+ },
354
+ "tableColumn": "",
355
+ "targets": [
356
+ {
357
+ "groupBy": [
358
+ {
359
+ "params": [
360
+ "$interval"
361
+ ],
362
+ "type": "time"
363
+ }
364
+ ],
365
+ "measurement": "rails",
366
+ "orderByTime": "ASC",
367
+ "policy": "default",
368
+ "refId": "A",
369
+ "resultFormat": "time_series",
370
+ "select": [
371
+ [
372
+ {
373
+ "params": [
374
+ "view"
375
+ ],
376
+ "type": "field"
377
+ },
378
+ {
379
+ "params": [],
380
+ "type": "mean"
381
+ }
382
+ ]
383
+ ],
384
+ "tags": [
385
+ {
386
+ "key": "hook",
387
+ "operator": "=",
388
+ "value": "process_action"
389
+ }
390
+ ]
391
+ }
392
+ ],
393
+ "thresholds": "50,100",
394
+ "title": "Average View Rendering Time",
395
+ "type": "singlestat",
396
+ "valueFontSize": "80%",
397
+ "valueMaps": [
398
+ {
399
+ "op": "=",
400
+ "text": "N/A",
401
+ "value": "null"
402
+ }
403
+ ],
404
+ "valueName": "avg"
405
+ },
406
+ {
407
+ "cacheTimeout": null,
408
+ "colorBackground": false,
409
+ "colorValue": false,
410
+ "colors": [
411
+ "#299c46",
412
+ "rgba(237, 129, 40, 0.89)",
413
+ "#d44a3a"
414
+ ],
415
+ "datasource": "${DS_INFLUXDB}",
416
+ "decimals": null,
417
+ "format": "short",
418
+ "gauge": {
419
+ "maxValue": 100,
420
+ "minValue": 0,
421
+ "show": false,
422
+ "thresholdLabels": false,
423
+ "thresholdMarkers": true
424
+ },
425
+ "gridPos": {
426
+ "h": 3,
427
+ "w": 6,
428
+ "x": 18,
429
+ "y": 0
430
+ },
431
+ "id": 16,
432
+ "interval": null,
433
+ "links": [],
434
+ "mappingType": 1,
435
+ "mappingTypes": [
436
+ {
437
+ "name": "value to text",
438
+ "value": 1
439
+ },
440
+ {
441
+ "name": "range to text",
442
+ "value": 2
443
+ }
444
+ ],
445
+ "maxDataPoints": 100,
446
+ "nullPointMode": "connected",
447
+ "nullText": null,
448
+ "options": {},
449
+ "postfix": "",
450
+ "postfixFontSize": "50%",
451
+ "prefix": "",
452
+ "prefixFontSize": "50%",
453
+ "rangeMaps": [
454
+ {
455
+ "from": "null",
456
+ "text": "N/A",
457
+ "to": "null"
458
+ }
459
+ ],
460
+ "sparkline": {
461
+ "fillColor": "rgba(31, 118, 189, 0.18)",
462
+ "full": false,
463
+ "lineColor": "rgb(31, 120, 193)",
464
+ "show": false
465
+ },
466
+ "tableColumn": "",
467
+ "targets": [
468
+ {
469
+ "groupBy": [],
470
+ "hide": false,
471
+ "measurement": "rails",
472
+ "orderByTime": "ASC",
473
+ "policy": "default",
474
+ "refId": "A",
475
+ "resultFormat": "time_series",
476
+ "select": [
477
+ [
478
+ {
479
+ "params": [
480
+ "request"
481
+ ],
482
+ "type": "field"
483
+ },
484
+ {
485
+ "params": [],
486
+ "type": "count"
487
+ }
488
+ ]
489
+ ],
490
+ "tags": [
491
+ {
492
+ "key": "hook",
493
+ "operator": "=",
494
+ "value": "process_action"
495
+ }
496
+ ]
497
+ }
498
+ ],
499
+ "thresholds": "",
500
+ "title": "Total Number of Requests",
501
+ "type": "singlestat",
502
+ "valueFontSize": "80%",
503
+ "valueMaps": [
504
+ {
505
+ "op": "=",
506
+ "text": "N/A",
507
+ "value": "null"
508
+ }
509
+ ],
510
+ "valueName": "current"
511
+ },
512
+ {
513
+ "aliasColors": {
514
+ "rails.controller.mean": "#1f78c1"
515
+ },
516
+ "bars": false,
517
+ "dashLength": 10,
518
+ "dashes": false,
519
+ "datasource": "${DS_INFLUXDB}",
520
+ "description": "Time spent in controller actions",
521
+ "fill": 1,
522
+ "gridPos": {
523
+ "h": 9,
524
+ "w": 8,
525
+ "x": 0,
526
+ "y": 3
527
+ },
528
+ "id": 6,
529
+ "legend": {
530
+ "alignAsTable": false,
531
+ "avg": false,
532
+ "current": false,
533
+ "max": false,
534
+ "min": false,
535
+ "rightSide": false,
536
+ "show": false,
537
+ "total": false,
538
+ "values": false
539
+ },
540
+ "lines": true,
541
+ "linewidth": 1,
542
+ "links": [],
543
+ "nullPointMode": "null",
544
+ "options": {},
545
+ "paceLength": 10,
546
+ "percentage": false,
547
+ "pointradius": 5,
548
+ "points": false,
549
+ "renderer": "flot",
550
+ "seriesOverrides": [
551
+ {
552
+ "alias": "Maximum",
553
+ "fillBelowTo": "Minimum",
554
+ "lines": false
555
+ },
556
+ {
557
+ "alias": "Minimum",
558
+ "lines": false
559
+ }
560
+ ],
561
+ "spaceLength": 10,
562
+ "stack": false,
563
+ "steppedLine": false,
564
+ "targets": [
565
+ {
566
+ "alias": "Maximum",
567
+ "groupBy": [
568
+ {
569
+ "params": [
570
+ "$__interval"
571
+ ],
572
+ "type": "time"
573
+ },
574
+ {
575
+ "params": [
576
+ "0"
577
+ ],
578
+ "type": "fill"
579
+ }
580
+ ],
581
+ "measurement": "rails",
582
+ "orderByTime": "ASC",
583
+ "policy": "default",
584
+ "refId": "C",
585
+ "resultFormat": "time_series",
586
+ "select": [
587
+ [
588
+ {
589
+ "params": [
590
+ "controller"
591
+ ],
592
+ "type": "field"
593
+ },
594
+ {
595
+ "params": [],
596
+ "type": "max"
597
+ }
598
+ ]
599
+ ],
600
+ "tags": [
601
+ {
602
+ "key": "hook",
603
+ "operator": "=",
604
+ "value": "process_action"
605
+ }
606
+ ]
607
+ },
608
+ {
609
+ "alias": "Mean",
610
+ "groupBy": [
611
+ {
612
+ "params": [
613
+ "$__interval"
614
+ ],
615
+ "type": "time"
616
+ },
617
+ {
618
+ "params": [
619
+ "0"
620
+ ],
621
+ "type": "fill"
622
+ }
623
+ ],
624
+ "measurement": "rails",
625
+ "orderByTime": "ASC",
626
+ "policy": "default",
627
+ "refId": "A",
628
+ "resultFormat": "time_series",
629
+ "select": [
630
+ [
631
+ {
632
+ "params": [
633
+ "controller"
634
+ ],
635
+ "type": "field"
636
+ },
637
+ {
638
+ "params": [],
639
+ "type": "mean"
640
+ }
641
+ ]
642
+ ],
643
+ "tags": [
644
+ {
645
+ "key": "hook",
646
+ "operator": "=",
647
+ "value": "process_action"
648
+ }
649
+ ]
650
+ },
651
+ {
652
+ "alias": "Minimum",
653
+ "groupBy": [
654
+ {
655
+ "params": [
656
+ "$__interval"
657
+ ],
658
+ "type": "time"
659
+ },
660
+ {
661
+ "params": [
662
+ "0"
663
+ ],
664
+ "type": "fill"
665
+ }
666
+ ],
667
+ "measurement": "rails",
668
+ "orderByTime": "ASC",
669
+ "policy": "default",
670
+ "refId": "B",
671
+ "resultFormat": "time_series",
672
+ "select": [
673
+ [
674
+ {
675
+ "params": [
676
+ "controller"
677
+ ],
678
+ "type": "field"
679
+ },
680
+ {
681
+ "params": [],
682
+ "type": "min"
683
+ }
684
+ ]
685
+ ],
686
+ "tags": [
687
+ {
688
+ "key": "hook",
689
+ "operator": "=",
690
+ "value": "process_action"
691
+ }
692
+ ]
693
+ }
694
+ ],
695
+ "thresholds": [],
696
+ "timeFrom": null,
697
+ "timeRegions": [],
698
+ "timeShift": null,
699
+ "title": "Controller Action Runtime",
700
+ "tooltip": {
701
+ "shared": true,
702
+ "sort": 0,
703
+ "value_type": "individual"
704
+ },
705
+ "type": "graph",
706
+ "xaxis": {
707
+ "buckets": null,
708
+ "mode": "time",
709
+ "name": null,
710
+ "show": true,
711
+ "values": []
712
+ },
713
+ "yaxes": [
714
+ {
715
+ "format": "dtdurationms",
716
+ "label": null,
717
+ "logBase": 2,
718
+ "max": null,
719
+ "min": null,
720
+ "show": true
721
+ },
722
+ {
723
+ "format": "short",
724
+ "label": null,
725
+ "logBase": 1,
726
+ "max": null,
727
+ "min": null,
728
+ "show": true
729
+ }
730
+ ],
731
+ "yaxis": {
732
+ "align": false,
733
+ "alignLevel": null
734
+ }
735
+ },
736
+ {
737
+ "aliasColors": {},
738
+ "bars": false,
739
+ "dashLength": 10,
740
+ "dashes": false,
741
+ "datasource": "${DS_INFLUXDB}",
742
+ "description": "Time spent in executing database queries",
743
+ "fill": 1,
744
+ "gridPos": {
745
+ "h": 9,
746
+ "w": 8,
747
+ "x": 8,
748
+ "y": 3
749
+ },
750
+ "id": 2,
751
+ "legend": {
752
+ "avg": false,
753
+ "current": false,
754
+ "max": false,
755
+ "min": false,
756
+ "show": false,
757
+ "total": false,
758
+ "values": false
759
+ },
760
+ "lines": true,
761
+ "linewidth": 1,
762
+ "links": [],
763
+ "nullPointMode": "null",
764
+ "options": {},
765
+ "paceLength": 10,
766
+ "percentage": false,
767
+ "pointradius": 5,
768
+ "points": false,
769
+ "renderer": "flot",
770
+ "seriesOverrides": [
771
+ {
772
+ "alias": "Maximum",
773
+ "fillBelowTo": "Minimum",
774
+ "lines": false
775
+ },
776
+ {
777
+ "alias": "Minimum",
778
+ "lines": false
779
+ }
780
+ ],
781
+ "spaceLength": 10,
782
+ "stack": false,
783
+ "steppedLine": false,
784
+ "targets": [
785
+ {
786
+ "alias": "Maximum",
787
+ "groupBy": [
788
+ {
789
+ "params": [
790
+ "$__interval"
791
+ ],
792
+ "type": "time"
793
+ },
794
+ {
795
+ "params": [
796
+ "0"
797
+ ],
798
+ "type": "fill"
799
+ }
800
+ ],
801
+ "measurement": "rails",
802
+ "orderByTime": "ASC",
803
+ "policy": "default",
804
+ "refId": "B",
805
+ "resultFormat": "time_series",
806
+ "select": [
807
+ [
808
+ {
809
+ "params": [
810
+ "db"
811
+ ],
812
+ "type": "field"
813
+ },
814
+ {
815
+ "params": [],
816
+ "type": "max"
817
+ }
818
+ ]
819
+ ],
820
+ "tags": [
821
+ {
822
+ "key": "hook",
823
+ "operator": "=",
824
+ "value": "process_action"
825
+ }
826
+ ]
827
+ },
828
+ {
829
+ "alias": "Mean",
830
+ "groupBy": [
831
+ {
832
+ "params": [
833
+ "$__interval"
834
+ ],
835
+ "type": "time"
836
+ },
837
+ {
838
+ "params": [
839
+ "0"
840
+ ],
841
+ "type": "fill"
842
+ }
843
+ ],
844
+ "measurement": "rails",
845
+ "orderByTime": "ASC",
846
+ "policy": "default",
847
+ "refId": "A",
848
+ "resultFormat": "time_series",
849
+ "select": [
850
+ [
851
+ {
852
+ "params": [
853
+ "db"
854
+ ],
855
+ "type": "field"
856
+ },
857
+ {
858
+ "params": [],
859
+ "type": "mean"
860
+ }
861
+ ]
862
+ ],
863
+ "tags": [
864
+ {
865
+ "key": "hook",
866
+ "operator": "=",
867
+ "value": "process_action"
868
+ }
869
+ ]
870
+ },
871
+ {
872
+ "alias": "Minimum",
873
+ "groupBy": [
874
+ {
875
+ "params": [
876
+ "$__interval"
877
+ ],
878
+ "type": "time"
879
+ },
880
+ {
881
+ "params": [
882
+ "0"
883
+ ],
884
+ "type": "fill"
885
+ }
886
+ ],
887
+ "measurement": "rails",
888
+ "orderByTime": "ASC",
889
+ "policy": "default",
890
+ "refId": "C",
891
+ "resultFormat": "time_series",
892
+ "select": [
893
+ [
894
+ {
895
+ "params": [
896
+ "db"
897
+ ],
898
+ "type": "field"
899
+ },
900
+ {
901
+ "params": [],
902
+ "type": "min"
903
+ }
904
+ ]
905
+ ],
906
+ "tags": [
907
+ {
908
+ "key": "hook",
909
+ "operator": "=",
910
+ "value": "process_action"
911
+ }
912
+ ]
913
+ }
914
+ ],
915
+ "thresholds": [],
916
+ "timeFrom": null,
917
+ "timeRegions": [],
918
+ "timeShift": null,
919
+ "title": "Database Query Runtime",
920
+ "tooltip": {
921
+ "shared": true,
922
+ "sort": 0,
923
+ "value_type": "individual"
924
+ },
925
+ "type": "graph",
926
+ "xaxis": {
927
+ "buckets": null,
928
+ "mode": "time",
929
+ "name": null,
930
+ "show": true,
931
+ "values": []
932
+ },
933
+ "yaxes": [
934
+ {
935
+ "format": "dtdurationms",
936
+ "label": null,
937
+ "logBase": 2,
938
+ "max": null,
939
+ "min": null,
940
+ "show": true
941
+ },
942
+ {
943
+ "format": "short",
944
+ "label": null,
945
+ "logBase": 1,
946
+ "max": null,
947
+ "min": null,
948
+ "show": true
949
+ }
950
+ ],
951
+ "yaxis": {
952
+ "align": false,
953
+ "alignLevel": null
954
+ }
955
+ },
956
+ {
957
+ "aliasColors": {
958
+ "rails.view.mean": "#eab839"
959
+ },
960
+ "bars": false,
961
+ "dashLength": 10,
962
+ "dashes": false,
963
+ "datasource": "${DS_INFLUXDB}",
964
+ "description": "Time spent in rendering views",
965
+ "fill": 0,
966
+ "gridPos": {
967
+ "h": 9,
968
+ "w": 8,
969
+ "x": 16,
970
+ "y": 3
971
+ },
972
+ "id": 4,
973
+ "legend": {
974
+ "avg": false,
975
+ "current": false,
976
+ "max": false,
977
+ "min": false,
978
+ "show": false,
979
+ "total": false,
980
+ "values": false
981
+ },
982
+ "lines": true,
983
+ "linewidth": 1,
984
+ "links": [],
985
+ "nullPointMode": "null",
986
+ "options": {},
987
+ "paceLength": 10,
988
+ "percentage": false,
989
+ "pointradius": 5,
990
+ "points": false,
991
+ "renderer": "flot",
992
+ "seriesOverrides": [
993
+ {
994
+ "alias": "Maximum",
995
+ "fillBelowTo": "Minimum",
996
+ "lines": false
997
+ },
998
+ {
999
+ "alias": "Minimum",
1000
+ "lines": false
1001
+ }
1002
+ ],
1003
+ "spaceLength": 10,
1004
+ "stack": false,
1005
+ "steppedLine": false,
1006
+ "targets": [
1007
+ {
1008
+ "alias": "Maximum",
1009
+ "groupBy": [
1010
+ {
1011
+ "params": [
1012
+ "$__interval"
1013
+ ],
1014
+ "type": "time"
1015
+ },
1016
+ {
1017
+ "params": [
1018
+ "0"
1019
+ ],
1020
+ "type": "fill"
1021
+ }
1022
+ ],
1023
+ "measurement": "rails",
1024
+ "orderByTime": "ASC",
1025
+ "policy": "default",
1026
+ "refId": "C",
1027
+ "resultFormat": "time_series",
1028
+ "select": [
1029
+ [
1030
+ {
1031
+ "params": [
1032
+ "view"
1033
+ ],
1034
+ "type": "field"
1035
+ },
1036
+ {
1037
+ "params": [],
1038
+ "type": "max"
1039
+ }
1040
+ ]
1041
+ ],
1042
+ "tags": [
1043
+ {
1044
+ "key": "hook",
1045
+ "operator": "=",
1046
+ "value": "process_action"
1047
+ }
1048
+ ]
1049
+ },
1050
+ {
1051
+ "alias": "Mean",
1052
+ "groupBy": [
1053
+ {
1054
+ "params": [
1055
+ "$__interval"
1056
+ ],
1057
+ "type": "time"
1058
+ },
1059
+ {
1060
+ "params": [
1061
+ "0"
1062
+ ],
1063
+ "type": "fill"
1064
+ }
1065
+ ],
1066
+ "measurement": "rails",
1067
+ "orderByTime": "ASC",
1068
+ "policy": "default",
1069
+ "refId": "A",
1070
+ "resultFormat": "time_series",
1071
+ "select": [
1072
+ [
1073
+ {
1074
+ "params": [
1075
+ "view"
1076
+ ],
1077
+ "type": "field"
1078
+ },
1079
+ {
1080
+ "params": [],
1081
+ "type": "mean"
1082
+ }
1083
+ ]
1084
+ ],
1085
+ "tags": [
1086
+ {
1087
+ "key": "hook",
1088
+ "operator": "=",
1089
+ "value": "process_action"
1090
+ }
1091
+ ]
1092
+ },
1093
+ {
1094
+ "alias": "Minimum",
1095
+ "groupBy": [
1096
+ {
1097
+ "params": [
1098
+ "$__interval"
1099
+ ],
1100
+ "type": "time"
1101
+ },
1102
+ {
1103
+ "params": [
1104
+ "0"
1105
+ ],
1106
+ "type": "fill"
1107
+ }
1108
+ ],
1109
+ "measurement": "rails",
1110
+ "orderByTime": "ASC",
1111
+ "policy": "default",
1112
+ "refId": "B",
1113
+ "resultFormat": "time_series",
1114
+ "select": [
1115
+ [
1116
+ {
1117
+ "params": [
1118
+ "view"
1119
+ ],
1120
+ "type": "field"
1121
+ },
1122
+ {
1123
+ "params": [],
1124
+ "type": "min"
1125
+ }
1126
+ ]
1127
+ ],
1128
+ "tags": [
1129
+ {
1130
+ "key": "hook",
1131
+ "operator": "=",
1132
+ "value": "process_action"
1133
+ }
1134
+ ]
1135
+ }
1136
+ ],
1137
+ "thresholds": [],
1138
+ "timeFrom": null,
1139
+ "timeRegions": [],
1140
+ "timeShift": null,
1141
+ "title": "View Rendering Runtime",
1142
+ "tooltip": {
1143
+ "shared": true,
1144
+ "sort": 0,
1145
+ "value_type": "individual"
1146
+ },
1147
+ "type": "graph",
1148
+ "xaxis": {
1149
+ "buckets": null,
1150
+ "mode": "time",
1151
+ "name": null,
1152
+ "show": true,
1153
+ "values": []
1154
+ },
1155
+ "yaxes": [
1156
+ {
1157
+ "format": "dtdurationms",
1158
+ "label": null,
1159
+ "logBase": 2,
1160
+ "max": null,
1161
+ "min": null,
1162
+ "show": true
1163
+ },
1164
+ {
1165
+ "format": "short",
1166
+ "label": null,
1167
+ "logBase": 1,
1168
+ "max": null,
1169
+ "min": null,
1170
+ "show": true
1171
+ }
1172
+ ],
1173
+ "yaxis": {
1174
+ "align": false,
1175
+ "alignLevel": null
1176
+ }
1177
+ },
1178
+ {
1179
+ "columns": [],
1180
+ "datasource": "${DS_INFLUXDB}",
1181
+ "description": "Data for the selected range by controller action.\n\n- Count: Number of occurrences\n- Mean: Average time spent\n- Median: Median time spent\n- Maximum: Slowest occurrence\n\n[Average vs. Median?](https://www.differencebetween.com/difference-between-mean-and-median/)",
1182
+ "fontSize": "100%",
1183
+ "gridPos": {
1184
+ "h": 13,
1185
+ "w": 12,
1186
+ "x": 0,
1187
+ "y": 12
1188
+ },
1189
+ "id": 18,
1190
+ "links": [],
1191
+ "options": {},
1192
+ "pageSize": null,
1193
+ "scroll": true,
1194
+ "showHeader": true,
1195
+ "sort": {
1196
+ "col": 5,
1197
+ "desc": true
1198
+ },
1199
+ "styles": [
1200
+ {
1201
+ "alias": "Time",
1202
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1203
+ "pattern": "Time",
1204
+ "type": "hidden"
1205
+ },
1206
+ {
1207
+ "alias": "Mean",
1208
+ "colorMode": null,
1209
+ "colors": [
1210
+ "rgba(245, 54, 54, 0.9)",
1211
+ "rgba(237, 129, 40, 0.89)",
1212
+ "rgba(50, 172, 45, 0.97)"
1213
+ ],
1214
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1215
+ "decimals": 2,
1216
+ "mappingType": 1,
1217
+ "pattern": "mean",
1218
+ "thresholds": [],
1219
+ "type": "number",
1220
+ "unit": "ms"
1221
+ },
1222
+ {
1223
+ "alias": "Count",
1224
+ "colorMode": null,
1225
+ "colors": [
1226
+ "rgba(245, 54, 54, 0.9)",
1227
+ "rgba(237, 129, 40, 0.89)",
1228
+ "rgba(50, 172, 45, 0.97)"
1229
+ ],
1230
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1231
+ "decimals": 0,
1232
+ "mappingType": 1,
1233
+ "pattern": "count",
1234
+ "thresholds": [],
1235
+ "type": "number",
1236
+ "unit": "short"
1237
+ },
1238
+ {
1239
+ "alias": "Median",
1240
+ "colorMode": null,
1241
+ "colors": [
1242
+ "rgba(245, 54, 54, 0.9)",
1243
+ "rgba(237, 129, 40, 0.89)",
1244
+ "rgba(50, 172, 45, 0.97)"
1245
+ ],
1246
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1247
+ "decimals": 2,
1248
+ "mappingType": 1,
1249
+ "pattern": "median",
1250
+ "thresholds": [],
1251
+ "type": "number",
1252
+ "unit": "ms"
1253
+ },
1254
+ {
1255
+ "alias": "Controller Action",
1256
+ "colorMode": null,
1257
+ "colors": [
1258
+ "rgba(245, 54, 54, 0.9)",
1259
+ "rgba(237, 129, 40, 0.89)",
1260
+ "rgba(50, 172, 45, 0.97)"
1261
+ ],
1262
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1263
+ "decimals": 2,
1264
+ "mappingType": 1,
1265
+ "pattern": "method",
1266
+ "thresholds": [],
1267
+ "type": "number",
1268
+ "unit": "short"
1269
+ },
1270
+ {
1271
+ "alias": "Maximum",
1272
+ "colorMode": null,
1273
+ "colors": [
1274
+ "rgba(245, 54, 54, 0.9)",
1275
+ "rgba(237, 129, 40, 0.89)",
1276
+ "rgba(50, 172, 45, 0.97)"
1277
+ ],
1278
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1279
+ "decimals": 2,
1280
+ "mappingType": 1,
1281
+ "pattern": "max",
1282
+ "thresholds": [],
1283
+ "type": "number",
1284
+ "unit": "ms"
1285
+ },
1286
+ {
1287
+ "alias": "",
1288
+ "colorMode": null,
1289
+ "colors": [
1290
+ "rgba(245, 54, 54, 0.9)",
1291
+ "rgba(237, 129, 40, 0.89)",
1292
+ "rgba(50, 172, 45, 0.97)"
1293
+ ],
1294
+ "decimals": 2,
1295
+ "pattern": "/.*/",
1296
+ "thresholds": [],
1297
+ "type": "number",
1298
+ "unit": "short"
1299
+ }
1300
+ ],
1301
+ "targets": [
1302
+ {
1303
+ "groupBy": [
1304
+ {
1305
+ "params": [
1306
+ "method"
1307
+ ],
1308
+ "type": "tag"
1309
+ }
1310
+ ],
1311
+ "limit": "",
1312
+ "measurement": "rails",
1313
+ "orderByTime": "ASC",
1314
+ "policy": "default",
1315
+ "refId": "A",
1316
+ "resultFormat": "table",
1317
+ "select": [
1318
+ [
1319
+ {
1320
+ "params": [
1321
+ "controller"
1322
+ ],
1323
+ "type": "field"
1324
+ },
1325
+ {
1326
+ "params": [],
1327
+ "type": "count"
1328
+ }
1329
+ ],
1330
+ [
1331
+ {
1332
+ "params": [
1333
+ "controller"
1334
+ ],
1335
+ "type": "field"
1336
+ },
1337
+ {
1338
+ "params": [],
1339
+ "type": "mean"
1340
+ }
1341
+ ],
1342
+ [
1343
+ {
1344
+ "params": [
1345
+ "controller"
1346
+ ],
1347
+ "type": "field"
1348
+ },
1349
+ {
1350
+ "params": [],
1351
+ "type": "median"
1352
+ }
1353
+ ],
1354
+ [
1355
+ {
1356
+ "params": [
1357
+ "controller"
1358
+ ],
1359
+ "type": "field"
1360
+ },
1361
+ {
1362
+ "params": [],
1363
+ "type": "max"
1364
+ }
1365
+ ]
1366
+ ],
1367
+ "tags": [
1368
+ {
1369
+ "key": "hook",
1370
+ "operator": "=",
1371
+ "value": "process_action"
1372
+ }
1373
+ ]
1374
+ }
1375
+ ],
1376
+ "title": "By Controller Action",
1377
+ "transform": "table",
1378
+ "type": "table"
1379
+ },
1380
+ {
1381
+ "columns": [],
1382
+ "datasource": "${DS_INFLUXDB}",
1383
+ "description": "Data for the selected range by database query.\n\n- Count: Number of occurrences\n- Mean: Average time spent\n- Median: Median time spent\n- Maximum: Slowest occurrence\n\n[Average vs. Median?](https://www.differencebetween.com/difference-between-mean-and-median/)",
1384
+ "fontSize": "100%",
1385
+ "gridPos": {
1386
+ "h": 13,
1387
+ "w": 12,
1388
+ "x": 12,
1389
+ "y": 12
1390
+ },
1391
+ "id": 29,
1392
+ "links": [],
1393
+ "options": {},
1394
+ "pageSize": null,
1395
+ "scroll": true,
1396
+ "showHeader": true,
1397
+ "sort": {
1398
+ "col": 6,
1399
+ "desc": true
1400
+ },
1401
+ "styles": [
1402
+ {
1403
+ "alias": "Time",
1404
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1405
+ "pattern": "Time",
1406
+ "type": "hidden"
1407
+ },
1408
+ {
1409
+ "alias": "Count",
1410
+ "colorMode": null,
1411
+ "colors": [
1412
+ "rgba(245, 54, 54, 0.9)",
1413
+ "rgba(237, 129, 40, 0.89)",
1414
+ "rgba(50, 172, 45, 0.97)"
1415
+ ],
1416
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1417
+ "decimals": null,
1418
+ "mappingType": 1,
1419
+ "pattern": "count",
1420
+ "thresholds": [],
1421
+ "type": "number",
1422
+ "unit": "short"
1423
+ },
1424
+ {
1425
+ "alias": "Mean",
1426
+ "colorMode": null,
1427
+ "colors": [
1428
+ "rgba(245, 54, 54, 0.9)",
1429
+ "rgba(237, 129, 40, 0.89)",
1430
+ "rgba(50, 172, 45, 0.97)"
1431
+ ],
1432
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1433
+ "decimals": 2,
1434
+ "mappingType": 1,
1435
+ "pattern": "mean",
1436
+ "thresholds": [],
1437
+ "type": "number",
1438
+ "unit": "ms"
1439
+ },
1440
+ {
1441
+ "alias": "Median",
1442
+ "colorMode": null,
1443
+ "colors": [
1444
+ "rgba(245, 54, 54, 0.9)",
1445
+ "rgba(237, 129, 40, 0.89)",
1446
+ "rgba(50, 172, 45, 0.97)"
1447
+ ],
1448
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1449
+ "decimals": 2,
1450
+ "mappingType": 1,
1451
+ "pattern": "median",
1452
+ "thresholds": [],
1453
+ "type": "number",
1454
+ "unit": "ms"
1455
+ },
1456
+ {
1457
+ "alias": "Controller Action",
1458
+ "colorMode": null,
1459
+ "colors": [
1460
+ "rgba(245, 54, 54, 0.9)",
1461
+ "rgba(237, 129, 40, 0.89)",
1462
+ "rgba(50, 172, 45, 0.97)"
1463
+ ],
1464
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1465
+ "decimals": 2,
1466
+ "mappingType": 1,
1467
+ "pattern": "location",
1468
+ "thresholds": [],
1469
+ "type": "number",
1470
+ "unit": "short"
1471
+ },
1472
+ {
1473
+ "alias": "Name of the operation",
1474
+ "colorMode": null,
1475
+ "colors": [
1476
+ "rgba(245, 54, 54, 0.9)",
1477
+ "rgba(237, 129, 40, 0.89)",
1478
+ "rgba(50, 172, 45, 0.97)"
1479
+ ],
1480
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1481
+ "decimals": 2,
1482
+ "mappingType": 1,
1483
+ "pattern": "name",
1484
+ "thresholds": [],
1485
+ "type": "number",
1486
+ "unit": "short"
1487
+ },
1488
+ {
1489
+ "alias": "Maximum",
1490
+ "colorMode": null,
1491
+ "colors": [
1492
+ "rgba(245, 54, 54, 0.9)",
1493
+ "rgba(237, 129, 40, 0.89)",
1494
+ "rgba(50, 172, 45, 0.97)"
1495
+ ],
1496
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1497
+ "decimals": 2,
1498
+ "mappingType": 1,
1499
+ "pattern": "max",
1500
+ "thresholds": [],
1501
+ "type": "number",
1502
+ "unit": "ms"
1503
+ },
1504
+ {
1505
+ "alias": "",
1506
+ "colorMode": null,
1507
+ "colors": [
1508
+ "rgba(245, 54, 54, 0.9)",
1509
+ "rgba(237, 129, 40, 0.89)",
1510
+ "rgba(50, 172, 45, 0.97)"
1511
+ ],
1512
+ "decimals": 2,
1513
+ "pattern": "/.*/",
1514
+ "thresholds": [],
1515
+ "type": "number",
1516
+ "unit": "short"
1517
+ }
1518
+ ],
1519
+ "targets": [
1520
+ {
1521
+ "groupBy": [
1522
+ {
1523
+ "params": [
1524
+ "name"
1525
+ ],
1526
+ "type": "tag"
1527
+ },
1528
+ {
1529
+ "params": [
1530
+ "location"
1531
+ ],
1532
+ "type": "tag"
1533
+ }
1534
+ ],
1535
+ "measurement": "rails",
1536
+ "orderByTime": "ASC",
1537
+ "policy": "default",
1538
+ "refId": "A",
1539
+ "resultFormat": "table",
1540
+ "select": [
1541
+ [
1542
+ {
1543
+ "params": [
1544
+ "value"
1545
+ ],
1546
+ "type": "field"
1547
+ },
1548
+ {
1549
+ "params": [],
1550
+ "type": "count"
1551
+ }
1552
+ ],
1553
+ [
1554
+ {
1555
+ "params": [
1556
+ "value"
1557
+ ],
1558
+ "type": "field"
1559
+ },
1560
+ {
1561
+ "params": [],
1562
+ "type": "mean"
1563
+ }
1564
+ ],
1565
+ [
1566
+ {
1567
+ "params": [
1568
+ "value"
1569
+ ],
1570
+ "type": "field"
1571
+ },
1572
+ {
1573
+ "params": [],
1574
+ "type": "median"
1575
+ }
1576
+ ],
1577
+ [
1578
+ {
1579
+ "params": [
1580
+ "value"
1581
+ ],
1582
+ "type": "field"
1583
+ },
1584
+ {
1585
+ "params": [],
1586
+ "type": "max"
1587
+ }
1588
+ ]
1589
+ ],
1590
+ "tags": [
1591
+ {
1592
+ "key": "hook",
1593
+ "operator": "=",
1594
+ "value": "sql"
1595
+ }
1596
+ ]
1597
+ }
1598
+ ],
1599
+ "title": "By Database Query",
1600
+ "transform": "table",
1601
+ "type": "table"
1602
+ },
1603
+ {
1604
+ "columns": [],
1605
+ "datasource": "${DS_INFLUXDB}",
1606
+ "description": "Data for the selected range by view rendering.\n\n- Count: Number of occurrences\n- Mean: Average time spent\n- Median: Median time spent\n- Maximum: Slowest occurrence\n\n[Average vs. Median?](https://www.differencebetween.com/difference-between-mean-and-median/)",
1607
+ "fontSize": "100%",
1608
+ "gridPos": {
1609
+ "h": 13,
1610
+ "w": 12,
1611
+ "x": 0,
1612
+ "y": 25
1613
+ },
1614
+ "id": 27,
1615
+ "links": [],
1616
+ "options": {},
1617
+ "pageSize": null,
1618
+ "scroll": true,
1619
+ "showHeader": true,
1620
+ "sort": {
1621
+ "col": 5,
1622
+ "desc": true
1623
+ },
1624
+ "styles": [
1625
+ {
1626
+ "alias": "Time",
1627
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1628
+ "pattern": "Time",
1629
+ "type": "hidden"
1630
+ },
1631
+ {
1632
+ "alias": "Count",
1633
+ "colorMode": null,
1634
+ "colors": [
1635
+ "rgba(245, 54, 54, 0.9)",
1636
+ "rgba(237, 129, 40, 0.89)",
1637
+ "rgba(50, 172, 45, 0.97)"
1638
+ ],
1639
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1640
+ "decimals": 0,
1641
+ "mappingType": 1,
1642
+ "pattern": "count",
1643
+ "thresholds": [],
1644
+ "type": "number",
1645
+ "unit": "short"
1646
+ },
1647
+ {
1648
+ "alias": "Mean",
1649
+ "colorMode": null,
1650
+ "colors": [
1651
+ "rgba(245, 54, 54, 0.9)",
1652
+ "rgba(237, 129, 40, 0.89)",
1653
+ "rgba(50, 172, 45, 0.97)"
1654
+ ],
1655
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1656
+ "decimals": 2,
1657
+ "mappingType": 1,
1658
+ "pattern": "mean",
1659
+ "thresholds": [],
1660
+ "type": "number",
1661
+ "unit": "ms"
1662
+ },
1663
+ {
1664
+ "alias": "Median",
1665
+ "colorMode": null,
1666
+ "colors": [
1667
+ "rgba(245, 54, 54, 0.9)",
1668
+ "rgba(237, 129, 40, 0.89)",
1669
+ "rgba(50, 172, 45, 0.97)"
1670
+ ],
1671
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1672
+ "decimals": 2,
1673
+ "mappingType": 1,
1674
+ "pattern": "median",
1675
+ "thresholds": [],
1676
+ "type": "number",
1677
+ "unit": "ms"
1678
+ },
1679
+ {
1680
+ "alias": "Maximum",
1681
+ "colorMode": null,
1682
+ "colors": [
1683
+ "rgba(245, 54, 54, 0.9)",
1684
+ "rgba(237, 129, 40, 0.89)",
1685
+ "rgba(50, 172, 45, 0.97)"
1686
+ ],
1687
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1688
+ "decimals": 2,
1689
+ "mappingType": 1,
1690
+ "pattern": "max",
1691
+ "thresholds": [],
1692
+ "type": "number",
1693
+ "unit": "ms"
1694
+ },
1695
+ {
1696
+ "alias": "View",
1697
+ "colorMode": null,
1698
+ "colors": [
1699
+ "rgba(245, 54, 54, 0.9)",
1700
+ "rgba(237, 129, 40, 0.89)",
1701
+ "rgba(50, 172, 45, 0.97)"
1702
+ ],
1703
+ "decimals": 2,
1704
+ "pattern": "/.*/",
1705
+ "thresholds": [],
1706
+ "type": "number",
1707
+ "unit": "short"
1708
+ }
1709
+ ],
1710
+ "targets": [
1711
+ {
1712
+ "groupBy": [
1713
+ {
1714
+ "params": [
1715
+ "filename"
1716
+ ],
1717
+ "type": "tag"
1718
+ }
1719
+ ],
1720
+ "measurement": "rails",
1721
+ "orderByTime": "ASC",
1722
+ "policy": "default",
1723
+ "refId": "A",
1724
+ "resultFormat": "table",
1725
+ "select": [
1726
+ [
1727
+ {
1728
+ "params": [
1729
+ "value"
1730
+ ],
1731
+ "type": "field"
1732
+ },
1733
+ {
1734
+ "params": [],
1735
+ "type": "count"
1736
+ }
1737
+ ],
1738
+ [
1739
+ {
1740
+ "params": [
1741
+ "value"
1742
+ ],
1743
+ "type": "field"
1744
+ },
1745
+ {
1746
+ "params": [],
1747
+ "type": "mean"
1748
+ }
1749
+ ],
1750
+ [
1751
+ {
1752
+ "params": [
1753
+ "value"
1754
+ ],
1755
+ "type": "field"
1756
+ },
1757
+ {
1758
+ "params": [],
1759
+ "type": "median"
1760
+ }
1761
+ ],
1762
+ [
1763
+ {
1764
+ "params": [
1765
+ "value"
1766
+ ],
1767
+ "type": "field"
1768
+ },
1769
+ {
1770
+ "params": [],
1771
+ "type": "max"
1772
+ }
1773
+ ]
1774
+ ],
1775
+ "tags": [
1776
+ {
1777
+ "key": "hook",
1778
+ "operator": "=",
1779
+ "value": "render_template"
1780
+ }
1781
+ ]
1782
+ }
1783
+ ],
1784
+ "title": "By View Rendering",
1785
+ "transform": "table",
1786
+ "type": "table"
1787
+ },
1788
+ {
1789
+ "columns": [],
1790
+ "datasource": "${DS_INFLUXDB}",
1791
+ "description": "Data for the selected range by request ID.\n\n- Maximum: Slowest occurrence",
1792
+ "fontSize": "100%",
1793
+ "gridPos": {
1794
+ "h": 13,
1795
+ "w": 12,
1796
+ "x": 12,
1797
+ "y": 25
1798
+ },
1799
+ "id": 33,
1800
+ "links": [],
1801
+ "options": {},
1802
+ "pageSize": null,
1803
+ "scroll": true,
1804
+ "showHeader": true,
1805
+ "sort": {
1806
+ "col": 4,
1807
+ "desc": true
1808
+ },
1809
+ "styles": [
1810
+ {
1811
+ "alias": "Finished",
1812
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1813
+ "pattern": "Time",
1814
+ "type": "hidden"
1815
+ },
1816
+ {
1817
+ "alias": "Started",
1818
+ "colorMode": null,
1819
+ "colors": [
1820
+ "rgba(245, 54, 54, 0.9)",
1821
+ "rgba(237, 129, 40, 0.89)",
1822
+ "rgba(50, 172, 45, 0.97)"
1823
+ ],
1824
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1825
+ "decimals": 2,
1826
+ "pattern": "started",
1827
+ "thresholds": [],
1828
+ "type": "hidden",
1829
+ "unit": "short"
1830
+ },
1831
+ {
1832
+ "alias": "Maximum",
1833
+ "colorMode": null,
1834
+ "colors": [
1835
+ "rgba(245, 54, 54, 0.9)",
1836
+ "rgba(237, 129, 40, 0.89)",
1837
+ "rgba(50, 172, 45, 0.97)"
1838
+ ],
1839
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1840
+ "decimals": 2,
1841
+ "mappingType": 1,
1842
+ "pattern": "max",
1843
+ "thresholds": [],
1844
+ "type": "number",
1845
+ "unit": "ms"
1846
+ },
1847
+ {
1848
+ "alias": "Request ID",
1849
+ "colorMode": null,
1850
+ "colors": [
1851
+ "rgba(245, 54, 54, 0.9)",
1852
+ "rgba(237, 129, 40, 0.89)",
1853
+ "rgba(50, 172, 45, 0.97)"
1854
+ ],
1855
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1856
+ "decimals": 2,
1857
+ "link": true,
1858
+ "linkTargetBlank": false,
1859
+ "linkTooltip": "Details",
1860
+ "linkUrl": "/d/$REQUEST_DASHBOARD_UID/ruby-on-rails-performance-per-request?var-request_id=${__cell}&from=${__cell_2}&to=${__cell_0}&var-method=${__cell_1}",
1861
+ "mappingType": 1,
1862
+ "pattern": "request",
1863
+ "thresholds": [],
1864
+ "type": "string",
1865
+ "unit": "short"
1866
+ },
1867
+ {
1868
+ "alias": "Controller Action",
1869
+ "colorMode": null,
1870
+ "colors": [
1871
+ "rgba(245, 54, 54, 0.9)",
1872
+ "rgba(237, 129, 40, 0.89)",
1873
+ "rgba(50, 172, 45, 0.97)"
1874
+ ],
1875
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
1876
+ "decimals": 2,
1877
+ "mappingType": 1,
1878
+ "pattern": "method",
1879
+ "thresholds": [],
1880
+ "type": "number",
1881
+ "unit": "short"
1882
+ }
1883
+ ],
1884
+ "targets": [
1885
+ {
1886
+ "groupBy": [
1887
+ {
1888
+ "params": [
1889
+ "method"
1890
+ ],
1891
+ "type": "tag"
1892
+ }
1893
+ ],
1894
+ "limit": "20",
1895
+ "measurement": "rails",
1896
+ "orderByTime": "ASC",
1897
+ "policy": "default",
1898
+ "refId": "A",
1899
+ "resultFormat": "table",
1900
+ "select": [
1901
+ [
1902
+ {
1903
+ "params": [
1904
+ "started"
1905
+ ],
1906
+ "type": "field"
1907
+ }
1908
+ ],
1909
+ [
1910
+ {
1911
+ "params": [
1912
+ "request"
1913
+ ],
1914
+ "type": "field"
1915
+ }
1916
+ ],
1917
+ [
1918
+ {
1919
+ "params": [
1920
+ "controller"
1921
+ ],
1922
+ "type": "field"
1923
+ },
1924
+ {
1925
+ "params": [],
1926
+ "type": "max"
1927
+ }
1928
+ ]
1929
+ ],
1930
+ "tags": [
1931
+ {
1932
+ "key": "hook",
1933
+ "operator": "=",
1934
+ "value": "process_action"
1935
+ }
1936
+ ]
1937
+ }
1938
+ ],
1939
+ "title": "By Request ID",
1940
+ "transform": "table",
1941
+ "type": "table"
1942
+ }
1943
+ ],
1944
+ "refresh": "5m",
1945
+ "schemaVersion": 18,
1946
+ "style": "dark",
1947
+ "tags": [
1948
+ "performance",
1949
+ "ruby on rails",
1950
+ "influxdb"
1951
+ ],
1952
+ "templating": {
1953
+ "list": [
1954
+ {
1955
+ "allValue": null,
1956
+ "current": {
1957
+ "text": "H8S9fSVWz",
1958
+ "value": "H8S9fSVWz"
1959
+ },
1960
+ "hide": 2,
1961
+ "includeAll": false,
1962
+ "label": null,
1963
+ "multi": false,
1964
+ "name": "REQUEST_DASHBOARD_UID",
1965
+ "options": [
1966
+ {
1967
+ "selected": true,
1968
+ "text": "H8S9fSVWz",
1969
+ "value": "H8S9fSVWz"
1970
+ }
1971
+ ],
1972
+ "query": "H8S9fSVWz",
1973
+ "skipUrlSync": false,
1974
+ "type": "custom"
1975
+ }
1976
+ ]
1977
+ },
1978
+ "time": {
1979
+ "from": "now-1h",
1980
+ "to": "now"
1981
+ },
1982
+ "timepicker": {
1983
+ "refresh_intervals": [
1984
+ "5s",
1985
+ "10s",
1986
+ "30s",
1987
+ "1m",
1988
+ "5m",
1989
+ "15m",
1990
+ "30m",
1991
+ "1h",
1992
+ "2h",
1993
+ "1d"
1994
+ ],
1995
+ "time_options": [
1996
+ "5m",
1997
+ "15m",
1998
+ "1h",
1999
+ "6h",
2000
+ "12h",
2001
+ "24h",
2002
+ "2d",
2003
+ "7d",
2004
+ "30d"
2005
+ ]
2006
+ },
2007
+ "timezone": "",
2008
+ "title": "Ruby On Rails Performance Overview",
2009
+ "uid": "K2CJtIVZz",
2010
+ "version": 13
2011
+ }