sidekiq-influxdb 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e2aa43ef989ddeb19590a4aea63e35a4969ed0e992535edecb1d676a13d6bdd
4
- data.tar.gz: 0ce207ffe7b3be565d079b2d6347492a1e5212d6a328a165c77f0298ebac51a7
3
+ metadata.gz: 86db3cec30cc69e87ab0faed79f470aad55dc80bff4d9212e949cff105298bf9
4
+ data.tar.gz: b43207ea0256653a496c916864c15c47be36e387bc80ed2350ffa947f740886c
5
5
  SHA512:
6
- metadata.gz: 75a775a08db08522d7bf0151643d46b4e4f0a4164dfb277ede4757a1a7ce097e53d4d30ebcf2f1f8c0c8f364862d8b961a110ad9ea9d3efb2e1efcb2fe05c061
7
- data.tar.gz: 461184d903b385e215f42fbc2c431562b8c03879b06f76a60763f078fa58ec0b877eee7e0658f661d7487996c7ff48c4072f8f64bef5835f1ecb9cbadb91df02
6
+ metadata.gz: 24576df64619787d527e21077567d12d3d75e97639e75c9fa661aabbc2fd3daed52fae4d13f7eb8b1fb580f37e771429e662ffb2175adca2d225157ae30793fc
7
+ data.tar.gz: 0eb7dabd092930f40b5e359f84e18f951ead507a67310761517287cfca205ae2806a5008e64d0f327c454bdd6ea84429c977297da78c9cfca82c6609165f1a0e
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ repo_token: XaCJb7OLyYpeiDwmrm8xFal4PWZze5OyR
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.0.0
data/.travis.yml ADDED
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 3.0
5
+ - 2.7
6
+ - 2.6
7
+ - 2.5
8
+ - 2.4
9
+ - 2.3
10
+ - jruby
11
+
12
+ script: make
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Sidekiq-InfluxDB Changelog
2
2
 
3
+ ## 1.4.0 (2021-03-01)
4
+
5
+ * Added queue sizes collection class
6
+ * Added various Sidekiq internal statistics collection class
7
+ * Added Ruby 3.0
8
+
3
9
  ## 1.3.0 (2020-09-23)
4
10
 
5
11
  * Dropped dependency on Bundler and Rake for development. The `gem` command is enough, really.
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,14 @@
1
+ # Sidekiq-InfluxDB
2
+
3
+ ## Contributing Guidelines
4
+
5
+ 1. All code should be covered by tests. This library is used in high load Sidekiq deployments. Failures are unacceptable.
6
+ 1. Code should be easy for an average Rubyist to understand.
7
+ 1. Each pull request should contain changes for a single goal.
8
+ 1. All logic should be described in the README for users of the library in the most understandable and ready-to-use way.
9
+ 1. This library uses an existing InfluxDB client object supplied by the user. It does not modify the client in any way.
10
+ 1. It is better to write a little too many metrics than a little too few. It is good to let the user disable stuff they don't need.
11
+ 1. It should work in as many Ruby versions as possible. People run a lot of old versions in production. Same for Sidekiq and InfluxDB.
12
+ 1. RuboCop is not necessary and is not welcome in this project.
13
+
14
+ Thank you for your contributions!
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Sidekiq::InfluxDB
2
2
 
3
+ [![Gem Version](https://img.shields.io/gem/v/sidekiq-influxdb.svg)](https://rubygems.org/gems/sidekiq-influxdb)
4
+ [![Travis CI](https://img.shields.io/travis/com/funbox/sidekiq-influxdb)](https://travis-ci.com/github/funbox/sidekiq-influxdb)
5
+ [![Coveralls](https://img.shields.io/coveralls/funbox/sidekiq-influxdb.svg)](https://coveralls.io/github/funbox/sidekiq-influxdb)
6
+
3
7
  [Sidekiq](https://github.com/mperham/sidekiq/wiki) middleware that writes job lifecycle events as points to an [InfluxDB](http://docs.influxdata.com/influxdb/v1.3/) database.
4
8
 
5
9
  ## Installation
@@ -89,12 +93,80 @@ SELECT COUNT(jid) FROM sidekiq_jobs WHERE event = 'error' AND time > now() - 1d
89
93
 
90
94
  Et cetera.
91
95
 
96
+ ### Stats and Queues metrics
97
+
98
+ To collect metrics for task stats and queues, you need to run the following code periodically. For example, you can use the gem `clockwork` for that. You can add settings like this to `clock.rb`:
99
+
100
+ ```ruby
101
+ require "sidekiq/metrics/stats"
102
+ require "sidekiq/metrics/queues"
103
+
104
+ every(1.minute, 'sidekiq_metrics') do
105
+ Sidekiq::Metrics::Stats.new(influxdb_client: InfluxDB::Client.new(options)).publish
106
+ Sidekiq::Metrics::Queues.new(influxdb_client: InfluxDB::Client.new(options)).publish
107
+ end
108
+ ```
109
+
110
+ For stats metrics:
111
+
112
+ ```ruby
113
+ require "sidekiq/metrics/stats"
114
+
115
+ Sidekiq::Metrics::Stats.new(
116
+ influxdb_client: InfluxDB::Client.new(options), # REQUIRED
117
+ series_name: 'sidekiq_stats', # optional, default shown
118
+ retention_policy: nil, # optional, default nil
119
+ tags: {}, # optional, default {}
120
+ ).publish
121
+ ```
122
+
123
+ For queues metrics:
124
+
125
+ ```ruby
126
+ require "sidekiq/metrics/queues"
127
+
128
+ Sidekiq::Metrics::Queues.new(
129
+ influxdb_client: InfluxDB::Client.new(options), # REQUIRED
130
+ series_name: 'sidekiq_queues', # optional, default shown
131
+ retention_policy: nil, # optional, default nil
132
+ tags: {}, # optional, default {}
133
+ ).publish
134
+ ```
135
+
136
+ When you run the scripts, you will get the following series in your InfluxDB database:
137
+
138
+ ```
139
+ > select * from sidekiq_stats
140
+ name: sidekiq_stats
141
+ time size stat
142
+ ---- ---- ----
143
+ 1582502419000000000 9999 dead
144
+ 1582502419000000000 0 workers
145
+ 1582502419000000000 0 enqueued
146
+ 1582502419000000000 23020182 processed
147
+ ```
148
+
149
+ ```
150
+ > select * from sidekiq_queues
151
+ name: sidekiq_queues
152
+ time queue size
153
+ ---- ----- ----
154
+ 1582502418000000000 default 0
155
+ 1582502418000000000 queue_name_1 0
156
+ ```
157
+
158
+ ## Visualization
159
+
160
+ ### Grafana
161
+
162
+ You can import the ready-made dashboard from [grafana_dashboard.json](grafana_dashboard.json).
163
+
92
164
  ## Development
93
165
 
94
166
  * [Sidekiq middleware](https://github.com/mperham/sidekiq/wiki/Middleware)
95
167
  * [InfluxDB client](https://github.com/influxdata/influxdb-ruby)
96
168
 
97
- After checking out the repo, run `bin/setup` to install dependencies.
169
+ After checking out the repo, run `bin/setup` to install dependencies.
98
170
  You can also run `bin/console` for an interactive prompt that will allow you to experiment.
99
171
 
100
172
  ## Contributing
@@ -104,7 +176,7 @@ This project is intended to be a safe, welcoming space for collaboration, and co
104
176
 
105
177
  ## Code of Conduct
106
178
 
107
- Everyone interacting in the `Sidekiq::InfluxDB` project’s codebases, issue trackers,
179
+ Everyone interacting in the `Sidekiq::InfluxDB` project’s codebases, issue trackers,
108
180
  chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/funbox/sidekiq-influxdb/blob/master/CODE_OF_CONDUCT.md).
109
181
 
110
182
  [![Sponsored by FunBox](https://funbox.ru/badges/sponsored_by_funbox_centered.svg)](https://funbox.ru)
@@ -0,0 +1,1222 @@
1
+ {
2
+ "annotations": {
3
+ "list": [
4
+ {
5
+ "builtIn": 1,
6
+ "datasource": "-- Grafana --",
7
+ "enable": true,
8
+ "hide": true,
9
+ "iconColor": "rgba(0, 211, 255, 1)",
10
+ "name": "Annotations & Alerts",
11
+ "type": "dashboard"
12
+ }
13
+ ]
14
+ },
15
+ "editable": true,
16
+ "gnetId": null,
17
+ "graphTooltip": 0,
18
+ "id": 23,
19
+ "links": [],
20
+ "panels": [
21
+ {
22
+ "aliasColors": {},
23
+ "bars": false,
24
+ "dashLength": 10,
25
+ "dashes": false,
26
+ "datasource": "datasource_name",
27
+ "decimals": 0,
28
+ "editable": true,
29
+ "error": false,
30
+ "fieldConfig": {
31
+ "defaults": {
32
+ "custom": {},
33
+ "links": []
34
+ },
35
+ "overrides": []
36
+ },
37
+ "fill": 1,
38
+ "fillGradient": 0,
39
+ "grid": {},
40
+ "gridPos": {
41
+ "h": 8,
42
+ "w": 12,
43
+ "x": 0,
44
+ "y": 0
45
+ },
46
+ "hiddenSeries": false,
47
+ "id": 8,
48
+ "interval": "1m",
49
+ "isNew": true,
50
+ "legend": {
51
+ "alignAsTable": true,
52
+ "avg": false,
53
+ "current": true,
54
+ "hideEmpty": false,
55
+ "hideZero": false,
56
+ "max": true,
57
+ "min": false,
58
+ "rightSide": true,
59
+ "show": true,
60
+ "sideWidth": null,
61
+ "sort": "max",
62
+ "sortDesc": true,
63
+ "total": false,
64
+ "values": true
65
+ },
66
+ "lines": true,
67
+ "linewidth": 2,
68
+ "links": [],
69
+ "nullPointMode": "connected",
70
+ "percentage": false,
71
+ "pluginVersion": "7.1.5",
72
+ "pointradius": 5,
73
+ "points": false,
74
+ "renderer": "flot",
75
+ "seriesOverrides": [],
76
+ "spaceLength": 10,
77
+ "stack": false,
78
+ "steppedLine": false,
79
+ "targets": [
80
+ {
81
+ "alias": "$tag_queue",
82
+ "dsType": "influxdb",
83
+ "groupBy": [
84
+ {
85
+ "params": [
86
+ "$__interval"
87
+ ],
88
+ "type": "time"
89
+ },
90
+ {
91
+ "params": [
92
+ "queue"
93
+ ],
94
+ "type": "tag"
95
+ }
96
+ ],
97
+ "measurement": "sidekiq_queues",
98
+ "orderByTime": "ASC",
99
+ "policy": "default",
100
+ "refId": "B",
101
+ "resultFormat": "time_series",
102
+ "select": [
103
+ [
104
+ {
105
+ "params": [
106
+ "size"
107
+ ],
108
+ "type": "field"
109
+ },
110
+ {
111
+ "params": [],
112
+ "type": "max"
113
+ }
114
+ ]
115
+ ],
116
+ "tags": []
117
+ }
118
+ ],
119
+ "thresholds": [],
120
+ "timeFrom": null,
121
+ "timeRegions": [],
122
+ "timeShift": null,
123
+ "title": "Queue size",
124
+ "tooltip": {
125
+ "msResolution": false,
126
+ "shared": true,
127
+ "sort": 0,
128
+ "value_type": "cumulative"
129
+ },
130
+ "type": "graph",
131
+ "xaxis": {
132
+ "buckets": null,
133
+ "mode": "time",
134
+ "name": null,
135
+ "show": true,
136
+ "values": []
137
+ },
138
+ "yaxes": [
139
+ {
140
+ "decimals": 0,
141
+ "format": "short",
142
+ "label": null,
143
+ "logBase": 1,
144
+ "max": null,
145
+ "min": 0,
146
+ "show": true
147
+ },
148
+ {
149
+ "format": "short",
150
+ "label": null,
151
+ "logBase": 1,
152
+ "max": null,
153
+ "min": null,
154
+ "show": false
155
+ }
156
+ ],
157
+ "yaxis": {
158
+ "align": false,
159
+ "alignLevel": null
160
+ }
161
+ },
162
+ {
163
+ "aliasColors": {},
164
+ "bars": false,
165
+ "dashLength": 10,
166
+ "dashes": false,
167
+ "datasource": "datasource_name",
168
+ "decimals": 0,
169
+ "description": "",
170
+ "editable": true,
171
+ "error": false,
172
+ "fieldConfig": {
173
+ "defaults": {
174
+ "custom": {},
175
+ "links": []
176
+ },
177
+ "overrides": []
178
+ },
179
+ "fill": 1,
180
+ "fillGradient": 0,
181
+ "grid": {},
182
+ "gridPos": {
183
+ "h": 8,
184
+ "w": 12,
185
+ "x": 12,
186
+ "y": 0
187
+ },
188
+ "hiddenSeries": false,
189
+ "id": 10,
190
+ "interval": "1m",
191
+ "isNew": true,
192
+ "legend": {
193
+ "alignAsTable": true,
194
+ "avg": false,
195
+ "current": true,
196
+ "hideEmpty": false,
197
+ "hideZero": false,
198
+ "max": true,
199
+ "min": true,
200
+ "rightSide": true,
201
+ "show": true,
202
+ "sideWidth": null,
203
+ "sort": "max",
204
+ "sortDesc": true,
205
+ "total": false,
206
+ "values": true
207
+ },
208
+ "lines": true,
209
+ "linewidth": 2,
210
+ "links": [],
211
+ "nullPointMode": "connected",
212
+ "percentage": false,
213
+ "pluginVersion": "7.1.5",
214
+ "pointradius": 5,
215
+ "points": false,
216
+ "renderer": "flot",
217
+ "seriesOverrides": [],
218
+ "spaceLength": 10,
219
+ "stack": false,
220
+ "steppedLine": false,
221
+ "targets": [
222
+ {
223
+ "alias": "$tag_stat",
224
+ "dsType": "influxdb",
225
+ "groupBy": [
226
+ {
227
+ "params": [
228
+ "$interval"
229
+ ],
230
+ "type": "time"
231
+ },
232
+ {
233
+ "params": [
234
+ "stat"
235
+ ],
236
+ "type": "tag"
237
+ }
238
+ ],
239
+ "measurement": "sidekiq_stats",
240
+ "orderByTime": "ASC",
241
+ "policy": "default",
242
+ "refId": "A",
243
+ "resultFormat": "time_series",
244
+ "select": [
245
+ [
246
+ {
247
+ "params": [
248
+ "size"
249
+ ],
250
+ "type": "field"
251
+ },
252
+ {
253
+ "params": [],
254
+ "type": "mean"
255
+ }
256
+ ]
257
+ ],
258
+ "tags": [
259
+ {
260
+ "key": "stat",
261
+ "operator": "<>",
262
+ "value": "processed"
263
+ },
264
+ {
265
+ "condition": "AND",
266
+ "key": "stat",
267
+ "operator": "<>",
268
+ "value": "processes_size"
269
+ },
270
+ {
271
+ "condition": "AND",
272
+ "key": "stat",
273
+ "operator": "<>",
274
+ "value": "workers_size"
275
+ }
276
+ ]
277
+ }
278
+ ],
279
+ "thresholds": [],
280
+ "timeFrom": null,
281
+ "timeRegions": [],
282
+ "timeShift": null,
283
+ "title": "Other statistics",
284
+ "tooltip": {
285
+ "msResolution": false,
286
+ "shared": true,
287
+ "sort": 0,
288
+ "value_type": "cumulative"
289
+ },
290
+ "type": "graph",
291
+ "xaxis": {
292
+ "buckets": null,
293
+ "mode": "time",
294
+ "name": null,
295
+ "show": true,
296
+ "values": []
297
+ },
298
+ "yaxes": [
299
+ {
300
+ "decimals": 0,
301
+ "format": "short",
302
+ "label": null,
303
+ "logBase": 1,
304
+ "max": null,
305
+ "min": null,
306
+ "show": true
307
+ },
308
+ {
309
+ "format": "short",
310
+ "label": null,
311
+ "logBase": 1,
312
+ "max": null,
313
+ "min": null,
314
+ "show": true
315
+ }
316
+ ],
317
+ "yaxis": {
318
+ "align": false,
319
+ "alignLevel": null
320
+ }
321
+ },
322
+ {
323
+ "aliasColors": {
324
+ "dead_size": "semi-dark-red",
325
+ "failed": "semi-dark-yellow",
326
+ "processed": "semi-dark-green"
327
+ },
328
+ "bars": true,
329
+ "dashLength": 10,
330
+ "dashes": false,
331
+ "datasource": "datasource_name",
332
+ "decimals": 0,
333
+ "editable": true,
334
+ "error": false,
335
+ "fieldConfig": {
336
+ "defaults": {
337
+ "custom": {},
338
+ "links": []
339
+ },
340
+ "overrides": []
341
+ },
342
+ "fill": 1,
343
+ "fillGradient": 0,
344
+ "grid": {},
345
+ "gridPos": {
346
+ "h": 8,
347
+ "w": 12,
348
+ "x": 0,
349
+ "y": 8
350
+ },
351
+ "hiddenSeries": false,
352
+ "id": 58,
353
+ "interval": "1m",
354
+ "isNew": true,
355
+ "legend": {
356
+ "alignAsTable": true,
357
+ "avg": false,
358
+ "current": false,
359
+ "hideEmpty": false,
360
+ "hideZero": false,
361
+ "max": true,
362
+ "min": false,
363
+ "rightSide": true,
364
+ "show": true,
365
+ "sort": "total",
366
+ "sortDesc": true,
367
+ "total": true,
368
+ "values": true
369
+ },
370
+ "lines": false,
371
+ "linewidth": 2,
372
+ "links": [],
373
+ "nullPointMode": "connected",
374
+ "percentage": false,
375
+ "pluginVersion": "7.1.5",
376
+ "pointradius": 5,
377
+ "points": false,
378
+ "renderer": "flot",
379
+ "seriesOverrides": [],
380
+ "spaceLength": 10,
381
+ "stack": false,
382
+ "steppedLine": false,
383
+ "targets": [
384
+ {
385
+ "alias": "$tag_stat",
386
+ "dsType": "influxdb",
387
+ "groupBy": [
388
+ {
389
+ "params": [
390
+ "$interval"
391
+ ],
392
+ "type": "time"
393
+ },
394
+ {
395
+ "params": [
396
+ "stat"
397
+ ],
398
+ "type": "tag"
399
+ }
400
+ ],
401
+ "measurement": "sidekiq_stats",
402
+ "orderByTime": "ASC",
403
+ "policy": "default",
404
+ "refId": "A",
405
+ "resultFormat": "time_series",
406
+ "select": [
407
+ [
408
+ {
409
+ "params": [
410
+ "size"
411
+ ],
412
+ "type": "field"
413
+ },
414
+ {
415
+ "params": [],
416
+ "type": "max"
417
+ },
418
+ {
419
+ "params": [],
420
+ "type": "difference"
421
+ }
422
+ ]
423
+ ],
424
+ "tags": [
425
+ {
426
+ "key": "stat",
427
+ "operator": "=",
428
+ "value": "processed"
429
+ },
430
+ {
431
+ "condition": "OR",
432
+ "key": "stat",
433
+ "operator": "=",
434
+ "value": "failed"
435
+ },
436
+ {
437
+ "condition": "OR",
438
+ "key": "stat",
439
+ "operator": "=",
440
+ "value": "dead_size"
441
+ }
442
+ ]
443
+ }
444
+ ],
445
+ "thresholds": [],
446
+ "timeFrom": null,
447
+ "timeRegions": [],
448
+ "timeShift": null,
449
+ "title": "Processed, failed and dead",
450
+ "tooltip": {
451
+ "msResolution": false,
452
+ "shared": true,
453
+ "sort": 0,
454
+ "value_type": "cumulative"
455
+ },
456
+ "type": "graph",
457
+ "xaxis": {
458
+ "buckets": null,
459
+ "mode": "time",
460
+ "name": null,
461
+ "show": true,
462
+ "values": []
463
+ },
464
+ "yaxes": [
465
+ {
466
+ "decimals": 0,
467
+ "format": "short",
468
+ "label": null,
469
+ "logBase": 1,
470
+ "max": null,
471
+ "min": "0",
472
+ "show": true
473
+ },
474
+ {
475
+ "format": "short",
476
+ "label": null,
477
+ "logBase": 1,
478
+ "max": null,
479
+ "min": null,
480
+ "show": true
481
+ }
482
+ ],
483
+ "yaxis": {
484
+ "align": false,
485
+ "alignLevel": null
486
+ }
487
+ },
488
+ {
489
+ "aliasColors": {},
490
+ "bars": true,
491
+ "dashLength": 10,
492
+ "dashes": false,
493
+ "datasource": "datasource_name",
494
+ "decimals": 0,
495
+ "fieldConfig": {
496
+ "defaults": {
497
+ "custom": {},
498
+ "links": []
499
+ },
500
+ "overrides": []
501
+ },
502
+ "fill": 1,
503
+ "fillGradient": 0,
504
+ "gridPos": {
505
+ "h": 8,
506
+ "w": 12,
507
+ "x": 12,
508
+ "y": 8
509
+ },
510
+ "hiddenSeries": false,
511
+ "id": 14,
512
+ "interval": "1m",
513
+ "legend": {
514
+ "alignAsTable": true,
515
+ "avg": false,
516
+ "current": true,
517
+ "hideEmpty": false,
518
+ "hideZero": true,
519
+ "max": true,
520
+ "min": true,
521
+ "rightSide": true,
522
+ "show": true,
523
+ "total": false,
524
+ "values": true
525
+ },
526
+ "lines": false,
527
+ "linewidth": 2,
528
+ "links": [],
529
+ "nullPointMode": "connected",
530
+ "percentage": false,
531
+ "pluginVersion": "7.1.5",
532
+ "pointradius": 1,
533
+ "points": false,
534
+ "renderer": "flot",
535
+ "seriesOverrides": [],
536
+ "spaceLength": 10,
537
+ "stack": false,
538
+ "steppedLine": false,
539
+ "targets": [
540
+ {
541
+ "alias": "$tag_stat",
542
+ "groupBy": [
543
+ {
544
+ "params": [
545
+ "$__interval"
546
+ ],
547
+ "type": "time"
548
+ },
549
+ {
550
+ "params": [
551
+ "stat"
552
+ ],
553
+ "type": "tag"
554
+ }
555
+ ],
556
+ "measurement": "sidekiq_stats",
557
+ "orderByTime": "ASC",
558
+ "policy": "default",
559
+ "refId": "A",
560
+ "resultFormat": "time_series",
561
+ "select": [
562
+ [
563
+ {
564
+ "params": [
565
+ "size"
566
+ ],
567
+ "type": "field"
568
+ },
569
+ {
570
+ "params": [],
571
+ "type": "max"
572
+ }
573
+ ]
574
+ ],
575
+ "tags": [
576
+ {
577
+ "key": "stat",
578
+ "operator": "=",
579
+ "value": "workers_size"
580
+ },
581
+ {
582
+ "condition": "OR",
583
+ "key": "stat",
584
+ "operator": "=",
585
+ "value": "processes_size"
586
+ }
587
+ ]
588
+ }
589
+ ],
590
+ "thresholds": [],
591
+ "timeFrom": null,
592
+ "timeRegions": [],
593
+ "timeShift": null,
594
+ "title": "Size processes and workers",
595
+ "tooltip": {
596
+ "shared": true,
597
+ "sort": 0,
598
+ "value_type": "individual"
599
+ },
600
+ "type": "graph",
601
+ "xaxis": {
602
+ "buckets": null,
603
+ "mode": "time",
604
+ "name": null,
605
+ "show": true,
606
+ "values": []
607
+ },
608
+ "yaxes": [
609
+ {
610
+ "decimals": 0,
611
+ "format": "short",
612
+ "label": null,
613
+ "logBase": 1,
614
+ "max": null,
615
+ "min": "0",
616
+ "show": true
617
+ },
618
+ {
619
+ "format": "short",
620
+ "label": null,
621
+ "logBase": 1,
622
+ "max": null,
623
+ "min": null,
624
+ "show": false
625
+ }
626
+ ],
627
+ "yaxis": {
628
+ "align": false,
629
+ "alignLevel": null
630
+ }
631
+ },
632
+ {
633
+ "aliasColors": {},
634
+ "bars": true,
635
+ "dashLength": 10,
636
+ "dashes": false,
637
+ "datasource": "datasource_name",
638
+ "decimals": 0,
639
+ "fieldConfig": {
640
+ "defaults": {
641
+ "custom": {},
642
+ "links": []
643
+ },
644
+ "overrides": []
645
+ },
646
+ "fill": 1,
647
+ "fillGradient": 0,
648
+ "gridPos": {
649
+ "h": 8,
650
+ "w": 12,
651
+ "x": 0,
652
+ "y": 16
653
+ },
654
+ "hiddenSeries": false,
655
+ "id": 64,
656
+ "interval": "1m",
657
+ "legend": {
658
+ "alignAsTable": true,
659
+ "avg": false,
660
+ "current": false,
661
+ "hideEmpty": false,
662
+ "hideZero": false,
663
+ "max": true,
664
+ "min": false,
665
+ "rightSide": true,
666
+ "show": true,
667
+ "sideWidth": null,
668
+ "sort": "max",
669
+ "sortDesc": true,
670
+ "total": false,
671
+ "values": true
672
+ },
673
+ "lines": false,
674
+ "linewidth": 1,
675
+ "links": [],
676
+ "nullPointMode": "connected",
677
+ "percentage": false,
678
+ "pluginVersion": "7.1.5",
679
+ "pointradius": 5,
680
+ "points": false,
681
+ "renderer": "flot",
682
+ "seriesOverrides": [],
683
+ "spaceLength": 10,
684
+ "stack": false,
685
+ "steppedLine": false,
686
+ "targets": [
687
+ {
688
+ "alias": "$tag_class",
689
+ "groupBy": [
690
+ {
691
+ "params": [
692
+ "$interval"
693
+ ],
694
+ "type": "time"
695
+ },
696
+ {
697
+ "params": [
698
+ "class"
699
+ ],
700
+ "type": "tag"
701
+ }
702
+ ],
703
+ "measurement": "sidekiq_jobs",
704
+ "orderByTime": "ASC",
705
+ "policy": "default",
706
+ "refId": "A",
707
+ "resultFormat": "time_series",
708
+ "select": [
709
+ [
710
+ {
711
+ "params": [
712
+ "waited"
713
+ ],
714
+ "type": "field"
715
+ },
716
+ {
717
+ "params": [],
718
+ "type": "max"
719
+ }
720
+ ]
721
+ ],
722
+ "tags": []
723
+ }
724
+ ],
725
+ "thresholds": [],
726
+ "timeFrom": null,
727
+ "timeRegions": [],
728
+ "timeShift": null,
729
+ "title": "Long waiting",
730
+ "tooltip": {
731
+ "shared": true,
732
+ "sort": 0,
733
+ "value_type": "individual"
734
+ },
735
+ "type": "graph",
736
+ "xaxis": {
737
+ "buckets": null,
738
+ "mode": "time",
739
+ "name": null,
740
+ "show": true,
741
+ "values": []
742
+ },
743
+ "yaxes": [
744
+ {
745
+ "decimals": 0,
746
+ "format": "s",
747
+ "label": "",
748
+ "logBase": 1,
749
+ "max": null,
750
+ "min": null,
751
+ "show": true
752
+ },
753
+ {
754
+ "format": "short",
755
+ "label": null,
756
+ "logBase": 1,
757
+ "max": null,
758
+ "min": null,
759
+ "show": false
760
+ }
761
+ ],
762
+ "yaxis": {
763
+ "align": false,
764
+ "alignLevel": null
765
+ }
766
+ },
767
+ {
768
+ "aliasColors": {},
769
+ "bars": true,
770
+ "dashLength": 10,
771
+ "dashes": false,
772
+ "datasource": "datasource_name",
773
+ "decimals": 0,
774
+ "fieldConfig": {
775
+ "defaults": {
776
+ "custom": {},
777
+ "links": []
778
+ },
779
+ "overrides": []
780
+ },
781
+ "fill": 1,
782
+ "fillGradient": 0,
783
+ "gridPos": {
784
+ "h": 8,
785
+ "w": 12,
786
+ "x": 12,
787
+ "y": 16
788
+ },
789
+ "hiddenSeries": false,
790
+ "id": 66,
791
+ "interval": "1m",
792
+ "legend": {
793
+ "alignAsTable": true,
794
+ "avg": false,
795
+ "current": false,
796
+ "hideEmpty": false,
797
+ "hideZero": false,
798
+ "max": true,
799
+ "min": false,
800
+ "rightSide": true,
801
+ "show": true,
802
+ "sort": "max",
803
+ "sortDesc": true,
804
+ "total": false,
805
+ "values": true
806
+ },
807
+ "lines": false,
808
+ "linewidth": 1,
809
+ "links": [],
810
+ "nullPointMode": "connected",
811
+ "percentage": false,
812
+ "pluginVersion": "7.1.5",
813
+ "pointradius": 5,
814
+ "points": false,
815
+ "renderer": "flot",
816
+ "seriesOverrides": [],
817
+ "spaceLength": 10,
818
+ "stack": false,
819
+ "steppedLine": false,
820
+ "targets": [
821
+ {
822
+ "alias": "$tag_class",
823
+ "groupBy": [
824
+ {
825
+ "params": [
826
+ "$interval"
827
+ ],
828
+ "type": "time"
829
+ },
830
+ {
831
+ "params": [
832
+ "class"
833
+ ],
834
+ "type": "tag"
835
+ }
836
+ ],
837
+ "measurement": "sidekiq_jobs",
838
+ "orderByTime": "ASC",
839
+ "policy": "default",
840
+ "refId": "A",
841
+ "resultFormat": "time_series",
842
+ "select": [
843
+ [
844
+ {
845
+ "params": [
846
+ "worked"
847
+ ],
848
+ "type": "field"
849
+ },
850
+ {
851
+ "params": [],
852
+ "type": "max"
853
+ }
854
+ ]
855
+ ],
856
+ "tags": []
857
+ }
858
+ ],
859
+ "thresholds": [],
860
+ "timeFrom": null,
861
+ "timeRegions": [],
862
+ "timeShift": null,
863
+ "title": "Long run",
864
+ "tooltip": {
865
+ "shared": true,
866
+ "sort": 0,
867
+ "value_type": "individual"
868
+ },
869
+ "type": "graph",
870
+ "xaxis": {
871
+ "buckets": null,
872
+ "mode": "time",
873
+ "name": null,
874
+ "show": true,
875
+ "values": []
876
+ },
877
+ "yaxes": [
878
+ {
879
+ "decimals": 0,
880
+ "format": "s",
881
+ "label": "",
882
+ "logBase": 1,
883
+ "max": null,
884
+ "min": null,
885
+ "show": true
886
+ },
887
+ {
888
+ "format": "short",
889
+ "label": null,
890
+ "logBase": 1,
891
+ "max": null,
892
+ "min": null,
893
+ "show": false
894
+ }
895
+ ],
896
+ "yaxis": {
897
+ "align": false,
898
+ "alignLevel": null
899
+ }
900
+ },
901
+ {
902
+ "aliasColors": {},
903
+ "bars": true,
904
+ "dashLength": 10,
905
+ "dashes": false,
906
+ "datasource": "datasource_name",
907
+ "decimals": 0,
908
+ "fieldConfig": {
909
+ "defaults": {
910
+ "custom": {},
911
+ "links": []
912
+ },
913
+ "overrides": []
914
+ },
915
+ "fill": 1,
916
+ "fillGradient": 0,
917
+ "gridPos": {
918
+ "h": 8,
919
+ "w": 12,
920
+ "x": 0,
921
+ "y": 24
922
+ },
923
+ "hiddenSeries": false,
924
+ "id": 68,
925
+ "interval": "1m",
926
+ "legend": {
927
+ "alignAsTable": true,
928
+ "avg": false,
929
+ "current": false,
930
+ "hideEmpty": false,
931
+ "hideZero": false,
932
+ "max": true,
933
+ "min": false,
934
+ "rightSide": true,
935
+ "show": true,
936
+ "sideWidth": null,
937
+ "sort": "max",
938
+ "sortDesc": true,
939
+ "total": false,
940
+ "values": true
941
+ },
942
+ "lines": false,
943
+ "linewidth": 1,
944
+ "links": [],
945
+ "nullPointMode": "connected",
946
+ "percentage": false,
947
+ "pluginVersion": "7.1.5",
948
+ "pointradius": 5,
949
+ "points": false,
950
+ "renderer": "flot",
951
+ "seriesOverrides": [],
952
+ "spaceLength": 10,
953
+ "stack": true,
954
+ "steppedLine": false,
955
+ "targets": [
956
+ {
957
+ "alias": "$tag_class",
958
+ "groupBy": [
959
+ {
960
+ "params": [
961
+ "$interval"
962
+ ],
963
+ "type": "time"
964
+ },
965
+ {
966
+ "params": [
967
+ "class"
968
+ ],
969
+ "type": "tag"
970
+ }
971
+ ],
972
+ "measurement": "sidekiq_jobs",
973
+ "orderByTime": "ASC",
974
+ "policy": "default",
975
+ "refId": "A",
976
+ "resultFormat": "time_series",
977
+ "select": [
978
+ [
979
+ {
980
+ "params": [
981
+ "total"
982
+ ],
983
+ "type": "field"
984
+ },
985
+ {
986
+ "params": [],
987
+ "type": "count"
988
+ }
989
+ ]
990
+ ],
991
+ "tags": [
992
+ {
993
+ "key": "event",
994
+ "operator": "=",
995
+ "value": "finish"
996
+ }
997
+ ]
998
+ }
999
+ ],
1000
+ "thresholds": [],
1001
+ "timeFrom": null,
1002
+ "timeRegions": [],
1003
+ "timeShift": null,
1004
+ "title": "Completed",
1005
+ "tooltip": {
1006
+ "shared": true,
1007
+ "sort": 0,
1008
+ "value_type": "individual"
1009
+ },
1010
+ "type": "graph",
1011
+ "xaxis": {
1012
+ "buckets": null,
1013
+ "mode": "time",
1014
+ "name": null,
1015
+ "show": true,
1016
+ "values": []
1017
+ },
1018
+ "yaxes": [
1019
+ {
1020
+ "format": "short",
1021
+ "label": null,
1022
+ "logBase": 1,
1023
+ "max": null,
1024
+ "min": null,
1025
+ "show": true
1026
+ },
1027
+ {
1028
+ "format": "short",
1029
+ "label": null,
1030
+ "logBase": 1,
1031
+ "max": null,
1032
+ "min": null,
1033
+ "show": true
1034
+ }
1035
+ ],
1036
+ "yaxis": {
1037
+ "align": false,
1038
+ "alignLevel": null
1039
+ }
1040
+ },
1041
+ {
1042
+ "aliasColors": {},
1043
+ "bars": true,
1044
+ "dashLength": 10,
1045
+ "dashes": false,
1046
+ "datasource": "datasource_name",
1047
+ "decimals": 0,
1048
+ "fieldConfig": {
1049
+ "defaults": {
1050
+ "custom": {},
1051
+ "links": []
1052
+ },
1053
+ "overrides": []
1054
+ },
1055
+ "fill": 1,
1056
+ "fillGradient": 0,
1057
+ "gridPos": {
1058
+ "h": 8,
1059
+ "w": 12,
1060
+ "x": 12,
1061
+ "y": 24
1062
+ },
1063
+ "hiddenSeries": false,
1064
+ "id": 70,
1065
+ "interval": "1m",
1066
+ "legend": {
1067
+ "alignAsTable": true,
1068
+ "avg": false,
1069
+ "current": false,
1070
+ "hideEmpty": false,
1071
+ "hideZero": false,
1072
+ "max": true,
1073
+ "min": false,
1074
+ "rightSide": true,
1075
+ "show": true,
1076
+ "sort": "total",
1077
+ "sortDesc": true,
1078
+ "total": true,
1079
+ "values": true
1080
+ },
1081
+ "lines": false,
1082
+ "linewidth": 1,
1083
+ "links": [],
1084
+ "nullPointMode": "connected",
1085
+ "percentage": false,
1086
+ "pluginVersion": "7.1.5",
1087
+ "pointradius": 5,
1088
+ "points": false,
1089
+ "renderer": "flot",
1090
+ "seriesOverrides": [],
1091
+ "spaceLength": 10,
1092
+ "stack": true,
1093
+ "steppedLine": false,
1094
+ "targets": [
1095
+ {
1096
+ "alias": "$tag_class",
1097
+ "groupBy": [
1098
+ {
1099
+ "params": [
1100
+ "$interval"
1101
+ ],
1102
+ "type": "time"
1103
+ },
1104
+ {
1105
+ "params": [
1106
+ "class"
1107
+ ],
1108
+ "type": "tag"
1109
+ }
1110
+ ],
1111
+ "measurement": "sidekiq_jobs",
1112
+ "orderByTime": "ASC",
1113
+ "policy": "default",
1114
+ "refId": "A",
1115
+ "resultFormat": "time_series",
1116
+ "select": [
1117
+ [
1118
+ {
1119
+ "params": [
1120
+ "total"
1121
+ ],
1122
+ "type": "field"
1123
+ },
1124
+ {
1125
+ "params": [],
1126
+ "type": "count"
1127
+ }
1128
+ ]
1129
+ ],
1130
+ "tags": [
1131
+ {
1132
+ "key": "event",
1133
+ "operator": "=",
1134
+ "value": "error"
1135
+ }
1136
+ ]
1137
+ }
1138
+ ],
1139
+ "thresholds": [],
1140
+ "timeFrom": null,
1141
+ "timeRegions": [],
1142
+ "timeShift": null,
1143
+ "title": "Fallen",
1144
+ "tooltip": {
1145
+ "shared": true,
1146
+ "sort": 0,
1147
+ "value_type": "individual"
1148
+ },
1149
+ "type": "graph",
1150
+ "xaxis": {
1151
+ "buckets": null,
1152
+ "mode": "time",
1153
+ "name": null,
1154
+ "show": true,
1155
+ "values": []
1156
+ },
1157
+ "yaxes": [
1158
+ {
1159
+ "decimals": 0,
1160
+ "format": "short",
1161
+ "label": null,
1162
+ "logBase": 1,
1163
+ "max": null,
1164
+ "min": "0",
1165
+ "show": true
1166
+ },
1167
+ {
1168
+ "format": "short",
1169
+ "label": null,
1170
+ "logBase": 1,
1171
+ "max": null,
1172
+ "min": null,
1173
+ "show": true
1174
+ }
1175
+ ],
1176
+ "yaxis": {
1177
+ "align": false,
1178
+ "alignLevel": null
1179
+ }
1180
+ }
1181
+ ],
1182
+ "refresh": "5s",
1183
+ "schemaVersion": 26,
1184
+ "style": "dark",
1185
+ "tags": [],
1186
+ "templating": {
1187
+ "list": []
1188
+ },
1189
+ "time": {
1190
+ "from": "now-6h",
1191
+ "to": "now"
1192
+ },
1193
+ "timepicker": {
1194
+ "refresh_intervals": [
1195
+ "5s",
1196
+ "10s",
1197
+ "30s",
1198
+ "1m",
1199
+ "5m",
1200
+ "15m",
1201
+ "30m",
1202
+ "1h",
1203
+ "2h",
1204
+ "1d"
1205
+ ],
1206
+ "time_options": [
1207
+ "5m",
1208
+ "15m",
1209
+ "1h",
1210
+ "6h",
1211
+ "12h",
1212
+ "24h",
1213
+ "2d",
1214
+ "7d",
1215
+ "30d"
1216
+ ]
1217
+ },
1218
+ "timezone": "browser",
1219
+ "title": "sidekiq",
1220
+ "uid": "w5BtVbsik2",
1221
+ "version": 15
1222
+ }