sidekiq-prometheus-exporter 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: 8944a3fac4369c68e5b07fd4a76c6bb90d685d5a
4
- data.tar.gz: c0a289be0c91753b95895a5bf16376dff30b27c2
3
+ metadata.gz: f87acb03bfd483d05068f5f2a257d5975fd26412
4
+ data.tar.gz: 75dd769451f7f4986d091733af5b3bec451105f2
5
5
  SHA512:
6
- metadata.gz: db38b1581e5aa75adf94a8d01674152736f61dcb0f53b91a579902c9e4a52e9c89dc88a385e0a39b8aa2a0b98d7c90257f7f7e89d6e1a24c28788558ae1f1a02
7
- data.tar.gz: cbefbbeccba5343650001770f20ae952cf124339c67a27e584198520f35022ad9b0324f3fd7cc1cff57a3799df5a5cf2c500515e9f86866ac7fdc7ac6ac152b7
6
+ metadata.gz: 3c6252607f56c4beec9d586ad646db85767707bbaa2a408b6698add82ce0ad951511877c8b89260f182761d9865a4c2946ea2cbd576ad6e9a0a55c9dbf62be14
7
+ data.tar.gz: e4e3c7dbed335a4159687621d0eeebcb0f3bf1e204f278b90a7bbb51864133bfb3d47fe64badd30db2b6cb47be30ac446b14b78ffe8fbfb885ab49dbdccf04b2
data/.gitignore CHANGED
@@ -7,6 +7,7 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  /Gemfile.lock
10
+ /.ruby-version
10
11
 
11
12
  # rspec failure tracking
12
13
  .rspec_status
@@ -10,5 +10,11 @@ gemfile:
10
10
  - gemfiles/sidekiq_3.x.gemfile
11
11
  - gemfiles/sidekiq_4.x.gemfile
12
12
  - gemfiles/sidekiq_5.x.gemfile
13
+ addons:
14
+ code_climate:
15
+ repo_token: $CODECLIMATE_REPO_TOKEN
16
+
17
+ cache: bundler
13
18
  before_install: gem install bundler -v 1.16.1
14
- script: bundle exec appraisal rake spec
19
+ after_success: bundle exec codeclimate-test-reporter
20
+ script: bundle exec rake spec
data/Appraisals CHANGED
@@ -1,19 +1,25 @@
1
1
  appraise 'sidekiq-3.3.1' do
2
2
  gem 'slim'
3
+ gem 'redis', '>= 3.3.5'
3
4
  gem 'sinatra'
5
+ gem 'concurrent-ruby'
4
6
  gem 'sidekiq', '= 3.3.1'
5
7
  end
6
8
 
7
9
  appraise 'sidekiq-3.x' do
8
10
  gem 'slim'
11
+ gem 'redis', '>= 3.3.5'
9
12
  gem 'sinatra'
13
+ gem 'concurrent-ruby'
10
14
  gem 'sidekiq', '~> 3.0'
11
15
  end
12
16
 
13
17
  appraise 'sidekiq-4.x' do
18
+ gem 'redis', '>= 3.3.5'
14
19
  gem 'sidekiq', '~> 4.0'
15
20
  end
16
21
 
17
22
  appraise 'sidekiq-5.x' do
23
+ gem 'redis', '>= 3.3.5'
18
24
  gem 'sidekiq', '~> 5.0'
19
25
  end
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  [![Build Status](https://travis-ci.org/Strech/sidekiq-prometheus-exporter.svg?branch=master)](https://travis-ci.org/Strech/sidekiq-prometheus-exporter)
2
+ [![Maintainability](https://api.codeclimate.com/v1/badges/bb1b30cd7aca8ecc9413/maintainability)](https://codeclimate.com/github/Strech/sidekiq-prometheus-exporter/maintainability)
3
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/bb1b30cd7aca8ecc9413/test_coverage)](https://codeclimate.com/github/Strech/sidekiq-prometheus-exporter/test_coverage)
2
4
 
3
5
  # Sidekiq Prometheus Exporter
4
6
 
@@ -6,6 +8,10 @@
6
8
  >
7
9
  > — Indeed ... :thinking:
8
10
 
11
+ ![Grafana dashboard example](/examples/screenshot.png)
12
+
13
+ Open [dashboard example file](/examples/sidekiq.json), then open `https://<your grafana-url>/dashboard/import` and paste the content of the file.
14
+
9
15
  # Available metrics
10
16
 
11
17
  (starting Sidekiq `v3.3.1`)
@@ -48,8 +54,13 @@ For a fresh new application to expose metrics create `config.ru` file with
48
54
  next code inside
49
55
 
50
56
  ```ruby
57
+ require 'sidekiq'
51
58
  require 'sidekiq/prometheus/exporter'
52
59
 
60
+ Sidekiq.configure_client do |config|
61
+ config.redis = {url: 'redis://<your-redis-host>:6379/0'}
62
+ end
63
+
53
64
  run Sidekiq::Prometheus::Exporter.to_app
54
65
  ```
55
66
 
@@ -0,0 +1,49 @@
1
+ ---
2
+ version: '3.4'
3
+
4
+ services:
5
+ metrics:
6
+ build: ./metrics
7
+ volumes:
8
+ - ./metrics/config.ru:/config.ru
9
+ ports:
10
+ - 9292:9292
11
+ depends_on:
12
+ - sidekiq
13
+ - redis
14
+
15
+ sidekiq:
16
+ build: ./sidekiq
17
+ volumes:
18
+ - ./sidekiq/sidekiq.rb:/sidekiq.rb
19
+ - ./sidekiq/sidekiq.yml:/sidekiq.yml
20
+ depends_on:
21
+ - redis
22
+
23
+ prometheus:
24
+ image: prom/prometheus
25
+ volumes:
26
+ - prometheus-data:/prometheus
27
+ - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
28
+ ports:
29
+ - 9090:9090
30
+ depends_on:
31
+ - metrics
32
+
33
+ grafana:
34
+ image: grafana/grafana
35
+ volumes:
36
+ - grafana-data:/var/lib/grafana
37
+ ports:
38
+ - 3000:3000
39
+ depends_on:
40
+ - prometheus
41
+
42
+ redis:
43
+ image: redis:4.0.8-alpine
44
+
45
+ volumes:
46
+ grafana-data:
47
+ driver: local
48
+ prometheus-data:
49
+ driver: local
@@ -0,0 +1,7 @@
1
+ FROM ruby:2.3.6-alpine
2
+
3
+ RUN gem install sidekiq -v "~> 5.0"
4
+ RUN gem install sidekiq-prometheus-exporter -v "~> 0.1"
5
+
6
+ ENTRYPOINT [ "rackup" ]
7
+ CMD [ "-p", "9292", "-o", "0.0.0.0", "/config.ru" ]
@@ -0,0 +1,8 @@
1
+ require 'sidekiq'
2
+ require 'sidekiq/prometheus/exporter'
3
+
4
+ Sidekiq.configure_client do |config|
5
+ config.redis = {url: 'redis://redis:6379/0'}
6
+ end
7
+
8
+ run Sidekiq::Prometheus::Exporter.to_app
@@ -0,0 +1,8 @@
1
+ global:
2
+ scrape_interval: 5s
3
+ evaluation_interval: 5s
4
+
5
+ scrape_configs:
6
+ - job_name: 'prometheus'
7
+ static_configs:
8
+ - targets: ['metrics:9292']
Binary file
@@ -0,0 +1,827 @@
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": 1,
19
+ "links": [],
20
+ "panels": [
21
+ {
22
+ "cacheTimeout": null,
23
+ "colorBackground": false,
24
+ "colorValue": false,
25
+ "colors": [
26
+ "#299c46",
27
+ "rgba(237, 129, 40, 0.89)",
28
+ "#d44a3a"
29
+ ],
30
+ "datasource": null,
31
+ "format": "none",
32
+ "gauge": {
33
+ "maxValue": 100,
34
+ "minValue": 0,
35
+ "show": false,
36
+ "thresholdLabels": false,
37
+ "thresholdMarkers": true
38
+ },
39
+ "gridPos": {
40
+ "h": 4,
41
+ "w": 3,
42
+ "x": 0,
43
+ "y": 0
44
+ },
45
+ "id": 12,
46
+ "interval": null,
47
+ "links": [],
48
+ "mappingType": 1,
49
+ "mappingTypes": [
50
+ {
51
+ "$$hashKey": "object:2694",
52
+ "name": "value to text",
53
+ "value": 1
54
+ },
55
+ {
56
+ "$$hashKey": "object:2695",
57
+ "name": "range to text",
58
+ "value": 2
59
+ }
60
+ ],
61
+ "maxDataPoints": 100,
62
+ "nullPointMode": "connected",
63
+ "nullText": null,
64
+ "postfix": "",
65
+ "postfixFontSize": "50%",
66
+ "prefix": "",
67
+ "prefixFontSize": "50%",
68
+ "rangeMaps": [
69
+ {
70
+ "from": "null",
71
+ "text": "N/A",
72
+ "to": "null"
73
+ }
74
+ ],
75
+ "sparkline": {
76
+ "fillColor": "rgba(31, 118, 189, 0.18)",
77
+ "full": false,
78
+ "lineColor": "rgb(31, 120, 193)",
79
+ "show": true
80
+ },
81
+ "tableColumn": "",
82
+ "targets": [
83
+ {
84
+ "$$hashKey": "object:2559",
85
+ "expr": "rate(sidekiq_enqueued_jobs[1m])",
86
+ "format": "time_series",
87
+ "intervalFactor": 1,
88
+ "refId": "A"
89
+ }
90
+ ],
91
+ "thresholds": "",
92
+ "title": "Enqueuing rate",
93
+ "type": "singlestat",
94
+ "valueFontSize": "80%",
95
+ "valueMaps": [
96
+ {
97
+ "$$hashKey": "object:2697",
98
+ "op": "=",
99
+ "text": "N/A",
100
+ "value": "null"
101
+ }
102
+ ],
103
+ "valueName": "current"
104
+ },
105
+ {
106
+ "cacheTimeout": null,
107
+ "colorBackground": false,
108
+ "colorValue": false,
109
+ "colors": [
110
+ "#d44a3a",
111
+ "rgba(237, 129, 40, 0.89)",
112
+ "#299c46"
113
+ ],
114
+ "datasource": null,
115
+ "format": "none",
116
+ "gauge": {
117
+ "maxValue": 100,
118
+ "minValue": 0,
119
+ "show": false,
120
+ "thresholdLabels": false,
121
+ "thresholdMarkers": true
122
+ },
123
+ "gridPos": {
124
+ "h": 4,
125
+ "w": 3,
126
+ "x": 3,
127
+ "y": 0
128
+ },
129
+ "id": 13,
130
+ "interval": null,
131
+ "links": [],
132
+ "mappingType": 1,
133
+ "mappingTypes": [
134
+ {
135
+ "$$hashKey": "object:1808",
136
+ "name": "value to text",
137
+ "value": 1
138
+ },
139
+ {
140
+ "$$hashKey": "object:1809",
141
+ "name": "range to text",
142
+ "value": 2
143
+ }
144
+ ],
145
+ "maxDataPoints": 100,
146
+ "nullPointMode": "connected",
147
+ "nullText": null,
148
+ "postfix": "",
149
+ "postfixFontSize": "50%",
150
+ "prefix": "",
151
+ "prefixFontSize": "50%",
152
+ "rangeMaps": [
153
+ {
154
+ "from": "null",
155
+ "text": "N/A",
156
+ "to": "null"
157
+ }
158
+ ],
159
+ "sparkline": {
160
+ "fillColor": "rgba(31, 118, 189, 0.18)",
161
+ "full": false,
162
+ "lineColor": "rgb(31, 120, 193)",
163
+ "show": true
164
+ },
165
+ "tableColumn": "",
166
+ "targets": [
167
+ {
168
+ "$$hashKey": "object:1387",
169
+ "expr": "rate(sidekiq_processed_jobs_total[1m])",
170
+ "format": "time_series",
171
+ "intervalFactor": 1,
172
+ "refId": "A"
173
+ }
174
+ ],
175
+ "thresholds": "",
176
+ "title": "Processing rate",
177
+ "type": "singlestat",
178
+ "valueFontSize": "80%",
179
+ "valueMaps": [
180
+ {
181
+ "$$hashKey": "object:1811",
182
+ "op": "=",
183
+ "text": "N/A",
184
+ "value": "null"
185
+ }
186
+ ],
187
+ "valueName": "current"
188
+ },
189
+ {
190
+ "cacheTimeout": null,
191
+ "colorBackground": false,
192
+ "colorValue": true,
193
+ "colors": [
194
+ "#299c46",
195
+ "rgba(237, 129, 40, 0.89)",
196
+ "#d44a3a"
197
+ ],
198
+ "datasource": null,
199
+ "format": "none",
200
+ "gauge": {
201
+ "maxValue": 100,
202
+ "minValue": 0,
203
+ "show": false,
204
+ "thresholdLabels": false,
205
+ "thresholdMarkers": true
206
+ },
207
+ "gridPos": {
208
+ "h": 4,
209
+ "w": 3,
210
+ "x": 6,
211
+ "y": 0
212
+ },
213
+ "id": 10,
214
+ "interval": null,
215
+ "links": [],
216
+ "mappingType": 1,
217
+ "mappingTypes": [
218
+ {
219
+ "$$hashKey": "object:1808",
220
+ "name": "value to text",
221
+ "value": 1
222
+ },
223
+ {
224
+ "$$hashKey": "object:1809",
225
+ "name": "range to text",
226
+ "value": 2
227
+ }
228
+ ],
229
+ "maxDataPoints": 100,
230
+ "nullPointMode": "connected",
231
+ "nullText": null,
232
+ "postfix": "",
233
+ "postfixFontSize": "50%",
234
+ "prefix": "",
235
+ "prefixFontSize": "50%",
236
+ "rangeMaps": [
237
+ {
238
+ "from": "null",
239
+ "text": "N/A",
240
+ "to": "null"
241
+ }
242
+ ],
243
+ "sparkline": {
244
+ "fillColor": "rgba(31, 118, 189, 0.18)",
245
+ "full": false,
246
+ "lineColor": "rgb(31, 120, 193)",
247
+ "show": true
248
+ },
249
+ "tableColumn": "",
250
+ "targets": [
251
+ {
252
+ "$$hashKey": "object:1387",
253
+ "expr": "increase(sidekiq_failed_jobs_total[1m])",
254
+ "format": "time_series",
255
+ "intervalFactor": 1,
256
+ "refId": "A"
257
+ }
258
+ ],
259
+ "thresholds": "1,10",
260
+ "title": "Failed growth",
261
+ "type": "singlestat",
262
+ "valueFontSize": "80%",
263
+ "valueMaps": [
264
+ {
265
+ "$$hashKey": "object:1811",
266
+ "op": "=",
267
+ "text": "N/A",
268
+ "value": "null"
269
+ }
270
+ ],
271
+ "valueName": "current"
272
+ },
273
+ {
274
+ "cacheTimeout": null,
275
+ "colorBackground": false,
276
+ "colorValue": true,
277
+ "colors": [
278
+ "#299c46",
279
+ "rgba(237, 129, 40, 0.89)",
280
+ "#d44a3a"
281
+ ],
282
+ "datasource": null,
283
+ "format": "none",
284
+ "gauge": {
285
+ "maxValue": 100,
286
+ "minValue": 0,
287
+ "show": false,
288
+ "thresholdLabels": false,
289
+ "thresholdMarkers": true
290
+ },
291
+ "gridPos": {
292
+ "h": 4,
293
+ "w": 3,
294
+ "x": 9,
295
+ "y": 0
296
+ },
297
+ "id": 14,
298
+ "interval": null,
299
+ "links": [],
300
+ "mappingType": 1,
301
+ "mappingTypes": [
302
+ {
303
+ "$$hashKey": "object:1808",
304
+ "name": "value to text",
305
+ "value": 1
306
+ },
307
+ {
308
+ "$$hashKey": "object:1809",
309
+ "name": "range to text",
310
+ "value": 2
311
+ }
312
+ ],
313
+ "maxDataPoints": 100,
314
+ "nullPointMode": "connected",
315
+ "nullText": null,
316
+ "postfix": "",
317
+ "postfixFontSize": "50%",
318
+ "prefix": "",
319
+ "prefixFontSize": "50%",
320
+ "rangeMaps": [
321
+ {
322
+ "from": "null",
323
+ "text": "N/A",
324
+ "to": "null"
325
+ }
326
+ ],
327
+ "sparkline": {
328
+ "fillColor": "rgba(31, 118, 189, 0.18)",
329
+ "full": false,
330
+ "lineColor": "rgb(31, 120, 193)",
331
+ "show": true
332
+ },
333
+ "tableColumn": "",
334
+ "targets": [
335
+ {
336
+ "$$hashKey": "object:1387",
337
+ "expr": "sidekiq_retry_jobs",
338
+ "format": "time_series",
339
+ "intervalFactor": 1,
340
+ "refId": "A"
341
+ }
342
+ ],
343
+ "thresholds": "1,10",
344
+ "title": "Retry jobs",
345
+ "type": "singlestat",
346
+ "valueFontSize": "80%",
347
+ "valueMaps": [
348
+ {
349
+ "$$hashKey": "object:1811",
350
+ "op": "=",
351
+ "text": "N/A",
352
+ "value": "null"
353
+ }
354
+ ],
355
+ "valueName": "current"
356
+ },
357
+ {
358
+ "cacheTimeout": null,
359
+ "colorBackground": false,
360
+ "colorValue": true,
361
+ "colors": [
362
+ "#299c46",
363
+ "rgba(237, 129, 40, 0.89)",
364
+ "#d44a3a"
365
+ ],
366
+ "datasource": null,
367
+ "format": "none",
368
+ "gauge": {
369
+ "maxValue": 100,
370
+ "minValue": 0,
371
+ "show": false,
372
+ "thresholdLabels": false,
373
+ "thresholdMarkers": true
374
+ },
375
+ "gridPos": {
376
+ "h": 4,
377
+ "w": 3,
378
+ "x": 12,
379
+ "y": 0
380
+ },
381
+ "id": 8,
382
+ "interval": null,
383
+ "links": [],
384
+ "mappingType": 1,
385
+ "mappingTypes": [
386
+ {
387
+ "name": "value to text",
388
+ "value": 1
389
+ },
390
+ {
391
+ "name": "range to text",
392
+ "value": 2
393
+ }
394
+ ],
395
+ "maxDataPoints": 100,
396
+ "nullPointMode": "connected",
397
+ "nullText": null,
398
+ "postfix": "",
399
+ "postfixFontSize": "50%",
400
+ "prefix": "",
401
+ "prefixFontSize": "50%",
402
+ "rangeMaps": [
403
+ {
404
+ "from": "null",
405
+ "text": "N/A",
406
+ "to": "null"
407
+ }
408
+ ],
409
+ "sparkline": {
410
+ "fillColor": "rgba(31, 118, 189, 0.18)",
411
+ "full": false,
412
+ "lineColor": "rgb(31, 120, 193)",
413
+ "show": true
414
+ },
415
+ "tableColumn": "",
416
+ "targets": [
417
+ {
418
+ "$$hashKey": "object:1387",
419
+ "expr": "sidekiq_dead_jobs",
420
+ "format": "time_series",
421
+ "intervalFactor": 1,
422
+ "refId": "A"
423
+ }
424
+ ],
425
+ "thresholds": "10,20",
426
+ "title": "Dead jobs",
427
+ "type": "singlestat",
428
+ "valueFontSize": "80%",
429
+ "valueMaps": [
430
+ {
431
+ "op": "=",
432
+ "text": "N/A",
433
+ "value": "null"
434
+ }
435
+ ],
436
+ "valueName": "current"
437
+ },
438
+ {
439
+ "cacheTimeout": null,
440
+ "colorBackground": false,
441
+ "colorValue": false,
442
+ "colors": [
443
+ "#299c46",
444
+ "rgba(237, 129, 40, 0.89)",
445
+ "#d44a3a"
446
+ ],
447
+ "datasource": null,
448
+ "format": "none",
449
+ "gauge": {
450
+ "maxValue": 100,
451
+ "minValue": 0,
452
+ "show": false,
453
+ "thresholdLabels": false,
454
+ "thresholdMarkers": true
455
+ },
456
+ "gridPos": {
457
+ "h": 4,
458
+ "w": 3,
459
+ "x": 15,
460
+ "y": 0
461
+ },
462
+ "id": 9,
463
+ "interval": null,
464
+ "links": [],
465
+ "mappingType": 1,
466
+ "mappingTypes": [
467
+ {
468
+ "name": "value to text",
469
+ "value": 1
470
+ },
471
+ {
472
+ "name": "range to text",
473
+ "value": 2
474
+ }
475
+ ],
476
+ "maxDataPoints": 100,
477
+ "nullPointMode": "connected",
478
+ "nullText": null,
479
+ "postfix": "",
480
+ "postfixFontSize": "50%",
481
+ "prefix": "",
482
+ "prefixFontSize": "50%",
483
+ "rangeMaps": [
484
+ {
485
+ "from": "null",
486
+ "text": "N/A",
487
+ "to": "null"
488
+ }
489
+ ],
490
+ "sparkline": {
491
+ "fillColor": "rgba(31, 118, 189, 0.18)",
492
+ "full": false,
493
+ "lineColor": "rgb(31, 120, 193)",
494
+ "show": true
495
+ },
496
+ "tableColumn": "",
497
+ "targets": [
498
+ {
499
+ "$$hashKey": "object:1387",
500
+ "expr": "sidekiq_enqueued_jobs",
501
+ "format": "time_series",
502
+ "intervalFactor": 1,
503
+ "refId": "A"
504
+ }
505
+ ],
506
+ "thresholds": "",
507
+ "title": "Enqueued jobs",
508
+ "type": "singlestat",
509
+ "valueFontSize": "80%",
510
+ "valueMaps": [
511
+ {
512
+ "op": "=",
513
+ "text": "N/A",
514
+ "value": "null"
515
+ }
516
+ ],
517
+ "valueName": "current"
518
+ },
519
+ {
520
+ "cacheTimeout": null,
521
+ "colorBackground": false,
522
+ "colorValue": false,
523
+ "colors": [
524
+ "#299c46",
525
+ "rgba(237, 129, 40, 0.89)",
526
+ "#d44a3a"
527
+ ],
528
+ "datasource": null,
529
+ "format": "none",
530
+ "gauge": {
531
+ "maxValue": 100,
532
+ "minValue": 0,
533
+ "show": false,
534
+ "thresholdLabels": false,
535
+ "thresholdMarkers": true
536
+ },
537
+ "gridPos": {
538
+ "h": 4,
539
+ "w": 3,
540
+ "x": 18,
541
+ "y": 0
542
+ },
543
+ "id": 4,
544
+ "interval": null,
545
+ "links": [],
546
+ "mappingType": 1,
547
+ "mappingTypes": [
548
+ {
549
+ "$$hashKey": "object:1142",
550
+ "name": "value to text",
551
+ "value": 1
552
+ },
553
+ {
554
+ "$$hashKey": "object:1143",
555
+ "name": "range to text",
556
+ "value": 2
557
+ }
558
+ ],
559
+ "maxDataPoints": 100,
560
+ "nullPointMode": "connected",
561
+ "nullText": null,
562
+ "postfix": "",
563
+ "postfixFontSize": "50%",
564
+ "prefix": "",
565
+ "prefixFontSize": "50%",
566
+ "rangeMaps": [
567
+ {
568
+ "from": "null",
569
+ "text": "N/A",
570
+ "to": "null"
571
+ }
572
+ ],
573
+ "sparkline": {
574
+ "fillColor": "rgba(31, 118, 189, 0.18)",
575
+ "full": false,
576
+ "lineColor": "rgb(31, 120, 193)",
577
+ "show": true
578
+ },
579
+ "tableColumn": "",
580
+ "targets": [
581
+ {
582
+ "$$hashKey": "object:897",
583
+ "expr": "sidekiq_busy_workers",
584
+ "format": "time_series",
585
+ "intervalFactor": 1,
586
+ "refId": "A"
587
+ }
588
+ ],
589
+ "thresholds": "",
590
+ "title": "Busy workers",
591
+ "type": "singlestat",
592
+ "valueFontSize": "80%",
593
+ "valueMaps": [
594
+ {
595
+ "$$hashKey": "object:1145",
596
+ "op": "=",
597
+ "text": "N/A",
598
+ "value": "null"
599
+ }
600
+ ],
601
+ "valueName": "current"
602
+ },
603
+ {
604
+ "cacheTimeout": null,
605
+ "colorBackground": false,
606
+ "colorValue": false,
607
+ "colors": [
608
+ "#299c46",
609
+ "rgba(237, 129, 40, 0.89)",
610
+ "#d44a3a"
611
+ ],
612
+ "datasource": null,
613
+ "format": "none",
614
+ "gauge": {
615
+ "maxValue": 100,
616
+ "minValue": 0,
617
+ "show": false,
618
+ "thresholdLabels": false,
619
+ "thresholdMarkers": true
620
+ },
621
+ "gridPos": {
622
+ "h": 4,
623
+ "w": 3,
624
+ "x": 21,
625
+ "y": 0
626
+ },
627
+ "id": 6,
628
+ "interval": null,
629
+ "links": [],
630
+ "mappingType": 1,
631
+ "mappingTypes": [
632
+ {
633
+ "$$hashKey": "object:1282",
634
+ "name": "value to text",
635
+ "value": 1
636
+ },
637
+ {
638
+ "$$hashKey": "object:1283",
639
+ "name": "range to text",
640
+ "value": 2
641
+ }
642
+ ],
643
+ "maxDataPoints": 100,
644
+ "nullPointMode": "connected",
645
+ "nullText": null,
646
+ "postfix": "",
647
+ "postfixFontSize": "50%",
648
+ "prefix": "",
649
+ "prefixFontSize": "50%",
650
+ "rangeMaps": [
651
+ {
652
+ "from": "null",
653
+ "text": "N/A",
654
+ "to": "null"
655
+ }
656
+ ],
657
+ "sparkline": {
658
+ "fillColor": "rgba(31, 118, 189, 0.18)",
659
+ "full": false,
660
+ "lineColor": "rgb(31, 120, 193)",
661
+ "show": true
662
+ },
663
+ "tableColumn": "",
664
+ "targets": [
665
+ {
666
+ "$$hashKey": "object:1192",
667
+ "expr": "sidekiq_scheduled_jobs",
668
+ "format": "time_series",
669
+ "intervalFactor": 1,
670
+ "refId": "A"
671
+ }
672
+ ],
673
+ "thresholds": "",
674
+ "title": "Scheduled jobs",
675
+ "type": "singlestat",
676
+ "valueFontSize": "80%",
677
+ "valueMaps": [
678
+ {
679
+ "$$hashKey": "object:1285",
680
+ "op": "=",
681
+ "text": "N/A",
682
+ "value": "null"
683
+ }
684
+ ],
685
+ "valueName": "current"
686
+ },
687
+ {
688
+ "aliasColors": {},
689
+ "bars": false,
690
+ "dashLength": 10,
691
+ "dashes": false,
692
+ "datasource": null,
693
+ "fill": 1,
694
+ "gridPos": {
695
+ "h": 14,
696
+ "w": 24,
697
+ "x": 0,
698
+ "y": 4
699
+ },
700
+ "id": 2,
701
+ "legend": {
702
+ "avg": false,
703
+ "current": false,
704
+ "max": false,
705
+ "min": false,
706
+ "show": true,
707
+ "total": false,
708
+ "values": false
709
+ },
710
+ "lines": true,
711
+ "linewidth": 1,
712
+ "links": [],
713
+ "nullPointMode": "null",
714
+ "percentage": false,
715
+ "pointradius": 5,
716
+ "points": false,
717
+ "renderer": "flot",
718
+ "seriesOverrides": [
719
+ {
720
+ "$$hashKey": "object:2088",
721
+ "alias": "processing rate",
722
+ "color": "#447ebc",
723
+ "fill": 0,
724
+ "yaxis": 2
725
+ }
726
+ ],
727
+ "spaceLength": 10,
728
+ "stack": false,
729
+ "steppedLine": false,
730
+ "targets": [
731
+ {
732
+ "$$hashKey": "object:2024",
733
+ "expr": "rate(sidekiq_queue_latency_seconds[1m])",
734
+ "format": "time_series",
735
+ "intervalFactor": 1,
736
+ "legendFormat": "{{name}}",
737
+ "refId": "A"
738
+ },
739
+ {
740
+ "$$hashKey": "object:2045",
741
+ "expr": "rate(sidekiq_processed_jobs_total[1m])",
742
+ "format": "time_series",
743
+ "intervalFactor": 1,
744
+ "legendFormat": "processing rate",
745
+ "refId": "B"
746
+ }
747
+ ],
748
+ "thresholds": [],
749
+ "timeFrom": null,
750
+ "timeShift": null,
751
+ "title": "Queues latency",
752
+ "tooltip": {
753
+ "shared": true,
754
+ "sort": 0,
755
+ "value_type": "individual"
756
+ },
757
+ "type": "graph",
758
+ "xaxis": {
759
+ "buckets": null,
760
+ "mode": "time",
761
+ "name": null,
762
+ "show": true,
763
+ "values": []
764
+ },
765
+ "yaxes": [
766
+ {
767
+ "$$hashKey": "object:2097",
768
+ "format": "s",
769
+ "label": null,
770
+ "logBase": 1,
771
+ "max": null,
772
+ "min": "0",
773
+ "show": true
774
+ },
775
+ {
776
+ "$$hashKey": "object:2098",
777
+ "format": "short",
778
+ "label": null,
779
+ "logBase": 1,
780
+ "max": null,
781
+ "min": null,
782
+ "show": false
783
+ }
784
+ ]
785
+ }
786
+ ],
787
+ "refresh": "5s",
788
+ "schemaVersion": 16,
789
+ "style": "dark",
790
+ "tags": [],
791
+ "templating": {
792
+ "list": []
793
+ },
794
+ "time": {
795
+ "from": "now-30m",
796
+ "to": "now"
797
+ },
798
+ "timepicker": {
799
+ "refresh_intervals": [
800
+ "5s",
801
+ "10s",
802
+ "30s",
803
+ "1m",
804
+ "5m",
805
+ "15m",
806
+ "30m",
807
+ "1h",
808
+ "2h",
809
+ "1d"
810
+ ],
811
+ "time_options": [
812
+ "5m",
813
+ "15m",
814
+ "1h",
815
+ "6h",
816
+ "12h",
817
+ "24h",
818
+ "2d",
819
+ "7d",
820
+ "30d"
821
+ ]
822
+ },
823
+ "timezone": "",
824
+ "title": "Sidekiq",
825
+ "uid": "SwCwV7qkz",
826
+ "version": 6
827
+ }