sidekiq-influxdb 1.3.0 → 1.4.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.
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
+ }