sidekiq-prometheus-exporter 0.1.9 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +12 -0
  3. data/.gitignore +3 -1
  4. data/.rubocop.yml +28 -28
  5. data/.travis.yml +76 -14
  6. data/Appraisals +17 -4
  7. data/README.md +121 -28
  8. data/Rakefile +73 -0
  9. data/docker/Dockerfile +24 -0
  10. data/docker/README.md +55 -0
  11. data/docker/config.ru +38 -0
  12. data/examples/docker-compose.yml +2 -2
  13. data/examples/screenshot.png +0 -0
  14. data/examples/{sidekiq.json → sidekiq-dashboard.grafana-6.json} +10 -52
  15. data/examples/sidekiq-dashboard.grafana-7.json +845 -0
  16. data/gemfiles/sidekiq_3.3.1.gemfile +2 -1
  17. data/gemfiles/sidekiq_3.3.1.gemfile.lock +49 -48
  18. data/gemfiles/sidekiq_3.x.gemfile +2 -1
  19. data/gemfiles/sidekiq_3.x.gemfile.lock +47 -46
  20. data/gemfiles/sidekiq_4.x.gemfile +1 -1
  21. data/gemfiles/sidekiq_4.x.gemfile.lock +38 -38
  22. data/gemfiles/sidekiq_5.x.gemfile +1 -1
  23. data/gemfiles/sidekiq_5.x.gemfile.lock +40 -39
  24. data/gemfiles/sidekiq_6.x.gemfile +8 -0
  25. data/gemfiles/sidekiq_6.x.gemfile.lock +100 -0
  26. data/gemfiles/sidekiq_head.gemfile +9 -0
  27. data/gemfiles/sidekiq_head.gemfile.lock +116 -0
  28. data/helm/sidekiq-prometheus-exporter/.helmignore +22 -0
  29. data/helm/sidekiq-prometheus-exporter/Chart.yaml +6 -0
  30. data/helm/sidekiq-prometheus-exporter/README.md +87 -0
  31. data/helm/sidekiq-prometheus-exporter/templates/NOTES.txt +15 -0
  32. data/helm/sidekiq-prometheus-exporter/templates/_helpers.tpl +109 -0
  33. data/helm/sidekiq-prometheus-exporter/templates/clusterrole.yaml +20 -0
  34. data/helm/sidekiq-prometheus-exporter/templates/clusterrolebinding.yaml +17 -0
  35. data/helm/sidekiq-prometheus-exporter/templates/deployment.yaml +62 -0
  36. data/helm/sidekiq-prometheus-exporter/templates/service.yaml +17 -0
  37. data/helm/sidekiq-prometheus-exporter/templates/serviceaccount.yaml +9 -0
  38. data/helm/sidekiq-prometheus-exporter/templates/servicemonitor.yaml +26 -0
  39. data/helm/sidekiq-prometheus-exporter/values.yaml +133 -0
  40. data/lib/sidekiq/prometheus/exporter.rb +12 -1
  41. data/lib/sidekiq/prometheus/exporter/exporters.rb +5 -1
  42. data/lib/sidekiq/prometheus/exporter/scheduler.rb +48 -0
  43. data/lib/sidekiq/prometheus/exporter/standard.rb +1 -1
  44. data/lib/sidekiq/prometheus/exporter/templates/scheduler.erb +12 -0
  45. data/lib/sidekiq/prometheus/exporter/templates/standard.erb +5 -5
  46. data/lib/sidekiq/prometheus/exporter/version.rb +1 -1
  47. data/sidekiq-prometheus-exporter.gemspec +4 -4
  48. metadata +38 -16
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "redis", ">= 3.3.5"
5
+ gem "redis", "~> 3.3"
6
6
  gem "sidekiq", "~> 5.0"
7
7
 
8
8
  gemspec path: "../"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- sidekiq-prometheus-exporter (0.1.9)
4
+ sidekiq-prometheus-exporter (0.1.13)
5
5
  sidekiq (>= 3.3.1)
6
6
 
7
7
  GEM
@@ -13,59 +13,60 @@ GEM
13
13
  thor (>= 0.14.0)
14
14
  ast (2.4.0)
15
15
  byebug (10.0.2)
16
- codeclimate-test-reporter (1.0.8)
16
+ codeclimate-test-reporter (1.0.9)
17
17
  simplecov (<= 0.13)
18
18
  coderay (1.1.2)
19
19
  connection_pool (2.2.2)
20
20
  diff-lcs (1.3)
21
21
  docile (1.1.5)
22
- jaro_winkler (1.5.1)
23
- json (2.1.0)
24
- method_source (0.9.0)
25
- parallel (1.12.1)
26
- parser (2.5.1.2)
22
+ jaro_winkler (1.5.4)
23
+ json (2.3.0)
24
+ method_source (0.9.2)
25
+ parallel (1.19.1)
26
+ parser (2.7.0.4)
27
27
  ast (~> 2.4.0)
28
- powerpack (0.1.2)
29
- pry (0.11.3)
28
+ pry (0.12.2)
30
29
  coderay (~> 1.1.0)
31
30
  method_source (~> 0.9.0)
32
31
  pry-byebug (3.6.0)
33
32
  byebug (~> 10.0)
34
33
  pry (~> 0.10)
35
- rack (2.0.5)
36
- rack-protection (2.0.4)
34
+ rack (2.0.9)
35
+ rack-protection (2.0.8.1)
37
36
  rack
38
- rack-test (0.8.3)
37
+ rack-test (1.1.0)
39
38
  rack (>= 1.0, < 3)
40
39
  rainbow (3.0.0)
41
- rake (10.5.0)
42
- redis (4.0.2)
43
- rspec (3.8.0)
44
- rspec-core (~> 3.8.0)
45
- rspec-expectations (~> 3.8.0)
46
- rspec-mocks (~> 3.8.0)
47
- rspec-core (3.8.0)
48
- rspec-support (~> 3.8.0)
49
- rspec-expectations (3.8.1)
40
+ rake (13.0.1)
41
+ redis (3.3.5)
42
+ rexml (3.2.4)
43
+ rspec (3.9.0)
44
+ rspec-core (~> 3.9.0)
45
+ rspec-expectations (~> 3.9.0)
46
+ rspec-mocks (~> 3.9.0)
47
+ rspec-core (3.9.1)
48
+ rspec-support (~> 3.9.1)
49
+ rspec-expectations (3.9.0)
50
50
  diff-lcs (>= 1.2.0, < 2.0)
51
- rspec-support (~> 3.8.0)
52
- rspec-mocks (3.8.0)
51
+ rspec-support (~> 3.9.0)
52
+ rspec-mocks (3.9.1)
53
53
  diff-lcs (>= 1.2.0, < 2.0)
54
- rspec-support (~> 3.8.0)
55
- rspec-support (3.8.0)
56
- rubocop (0.59.2)
54
+ rspec-support (~> 3.9.0)
55
+ rspec-support (3.9.2)
56
+ rubocop (0.80.1)
57
57
  jaro_winkler (~> 1.5.1)
58
58
  parallel (~> 1.10)
59
- parser (>= 2.5, != 2.5.1.1)
60
- powerpack (~> 0.1)
59
+ parser (>= 2.7.0.1)
61
60
  rainbow (>= 2.2.2, < 4.0)
61
+ rexml
62
62
  ruby-progressbar (~> 1.7)
63
- unicode-display_width (~> 1.0, >= 1.0.1)
63
+ unicode-display_width (>= 1.4.0, < 1.7)
64
64
  rubocop-rspec (1.28.0)
65
65
  rubocop (>= 0.58.0)
66
- ruby-progressbar (1.10.0)
67
- sidekiq (5.2.2)
66
+ ruby-progressbar (1.10.1)
67
+ sidekiq (5.2.8)
68
68
  connection_pool (~> 2.2, >= 2.2.2)
69
+ rack (< 2.1.0)
69
70
  rack-protection (>= 1.5.0)
70
71
  redis (>= 3.3.5, < 5)
71
72
  simplecov (0.13.0)
@@ -73,21 +74,21 @@ GEM
73
74
  json (>= 1.8, < 3)
74
75
  simplecov-html (~> 0.10.0)
75
76
  simplecov-html (0.10.2)
76
- thor (0.20.0)
77
+ thor (1.0.1)
77
78
  timecop (0.9.1)
78
- unicode-display_width (1.4.0)
79
+ unicode-display_width (1.6.1)
79
80
 
80
81
  PLATFORMS
81
82
  ruby
82
83
 
83
84
  DEPENDENCIES
84
85
  appraisal (~> 2.2)
85
- bundler (~> 1.16)
86
+ bundler (~> 2.1)
86
87
  codeclimate-test-reporter (~> 1.0)
87
- pry-byebug (~> 3.6)
88
- rack-test (~> 0.8)
89
- rake (~> 10.0)
90
- redis (>= 3.3.5)
88
+ pry-byebug (~> 3.6.0)
89
+ rack-test (~> 1.1)
90
+ rake (~> 13.0)
91
+ redis (~> 3.3)
91
92
  rspec (~> 3.0)
92
93
  rubocop (~> 0.58)
93
94
  rubocop-rspec (~> 1.28.0)
@@ -96,4 +97,4 @@ DEPENDENCIES
96
97
  timecop (~> 0.9)
97
98
 
98
99
  BUNDLED WITH
99
- 1.16.5
100
+ 2.1.4
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "redis", "~> 4.1"
6
+ gem "sidekiq", "~> 6.0"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,100 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ sidekiq-prometheus-exporter (0.1.13)
5
+ sidekiq (>= 3.3.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ appraisal (2.2.0)
11
+ bundler
12
+ rake
13
+ thor (>= 0.14.0)
14
+ ast (2.4.0)
15
+ byebug (10.0.2)
16
+ codeclimate-test-reporter (1.0.9)
17
+ simplecov (<= 0.13)
18
+ coderay (1.1.2)
19
+ connection_pool (2.2.2)
20
+ diff-lcs (1.3)
21
+ docile (1.1.5)
22
+ jaro_winkler (1.5.4)
23
+ json (2.3.0)
24
+ method_source (0.9.2)
25
+ parallel (1.19.1)
26
+ parser (2.7.0.4)
27
+ ast (~> 2.4.0)
28
+ pry (0.12.2)
29
+ coderay (~> 1.1.0)
30
+ method_source (~> 0.9.0)
31
+ pry-byebug (3.6.0)
32
+ byebug (~> 10.0)
33
+ pry (~> 0.10)
34
+ rack (2.2.2)
35
+ rack-protection (2.0.8.1)
36
+ rack
37
+ rack-test (1.1.0)
38
+ rack (>= 1.0, < 3)
39
+ rainbow (3.0.0)
40
+ rake (13.0.1)
41
+ redis (4.1.3)
42
+ rexml (3.2.4)
43
+ rspec (3.9.0)
44
+ rspec-core (~> 3.9.0)
45
+ rspec-expectations (~> 3.9.0)
46
+ rspec-mocks (~> 3.9.0)
47
+ rspec-core (3.9.1)
48
+ rspec-support (~> 3.9.1)
49
+ rspec-expectations (3.9.0)
50
+ diff-lcs (>= 1.2.0, < 2.0)
51
+ rspec-support (~> 3.9.0)
52
+ rspec-mocks (3.9.1)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.9.0)
55
+ rspec-support (3.9.2)
56
+ rubocop (0.80.1)
57
+ jaro_winkler (~> 1.5.1)
58
+ parallel (~> 1.10)
59
+ parser (>= 2.7.0.1)
60
+ rainbow (>= 2.2.2, < 4.0)
61
+ rexml
62
+ ruby-progressbar (~> 1.7)
63
+ unicode-display_width (>= 1.4.0, < 1.7)
64
+ rubocop-rspec (1.28.0)
65
+ rubocop (>= 0.58.0)
66
+ ruby-progressbar (1.10.1)
67
+ sidekiq (6.0.5)
68
+ connection_pool (>= 2.2.2)
69
+ rack (~> 2.0)
70
+ rack-protection (>= 2.0.0)
71
+ redis (>= 4.1.0)
72
+ simplecov (0.13.0)
73
+ docile (~> 1.1.0)
74
+ json (>= 1.8, < 3)
75
+ simplecov-html (~> 0.10.0)
76
+ simplecov-html (0.10.2)
77
+ thor (1.0.1)
78
+ timecop (0.9.1)
79
+ unicode-display_width (1.6.1)
80
+
81
+ PLATFORMS
82
+ ruby
83
+
84
+ DEPENDENCIES
85
+ appraisal (~> 2.2)
86
+ bundler (~> 2.1)
87
+ codeclimate-test-reporter (~> 1.0)
88
+ pry-byebug (~> 3.6.0)
89
+ rack-test (~> 1.1)
90
+ rake (~> 13.0)
91
+ redis (~> 4.1)
92
+ rspec (~> 3.0)
93
+ rubocop (~> 0.58)
94
+ rubocop-rspec (~> 1.28.0)
95
+ sidekiq (~> 6.0)
96
+ sidekiq-prometheus-exporter!
97
+ timecop (~> 0.9)
98
+
99
+ BUNDLED WITH
100
+ 2.1.4
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rack", ">= 2", git: "https://github.com/rack/rack"
6
+ gem "redis", ">= 4", git: "https://github.com/redis/redis-rb"
7
+ gem "sidekiq", ">= 6", git: "https://github.com/mperham/sidekiq"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,116 @@
1
+ GIT
2
+ remote: https://github.com/mperham/sidekiq
3
+ revision: 6e6d41500aafb37f23e4c7942ae9bb1ed1579b73
4
+ specs:
5
+ sidekiq (6.0.6)
6
+ connection_pool (>= 2.2.2)
7
+ rack (~> 2.0)
8
+ rack-protection (>= 2.0.0)
9
+ redis (>= 4.1.0)
10
+
11
+ GIT
12
+ remote: https://github.com/rack/rack
13
+ revision: 6196377654b7ff7ce7abaecea62bb285d77d53aa
14
+ specs:
15
+ rack (2.3.0)
16
+
17
+ GIT
18
+ remote: https://github.com/redis/redis-rb
19
+ revision: 41395e9a1923fe72fad8403e60cb98627d515a85
20
+ specs:
21
+ redis (4.1.3)
22
+
23
+ PATH
24
+ remote: ..
25
+ specs:
26
+ sidekiq-prometheus-exporter (0.1.13)
27
+ sidekiq (>= 3.3.1)
28
+
29
+ GEM
30
+ remote: https://rubygems.org/
31
+ specs:
32
+ appraisal (2.2.0)
33
+ bundler
34
+ rake
35
+ thor (>= 0.14.0)
36
+ ast (2.4.0)
37
+ byebug (10.0.2)
38
+ codeclimate-test-reporter (1.0.9)
39
+ simplecov (<= 0.13)
40
+ coderay (1.1.2)
41
+ connection_pool (2.2.2)
42
+ diff-lcs (1.3)
43
+ docile (1.1.5)
44
+ jaro_winkler (1.5.4)
45
+ json (2.3.0)
46
+ method_source (0.9.2)
47
+ parallel (1.19.1)
48
+ parser (2.7.0.4)
49
+ ast (~> 2.4.0)
50
+ pry (0.12.2)
51
+ coderay (~> 1.1.0)
52
+ method_source (~> 0.9.0)
53
+ pry-byebug (3.6.0)
54
+ byebug (~> 10.0)
55
+ pry (~> 0.10)
56
+ rack-protection (2.0.8.1)
57
+ rack
58
+ rack-test (1.1.0)
59
+ rack (>= 1.0, < 3)
60
+ rainbow (3.0.0)
61
+ rake (13.0.1)
62
+ rexml (3.2.4)
63
+ rspec (3.9.0)
64
+ rspec-core (~> 3.9.0)
65
+ rspec-expectations (~> 3.9.0)
66
+ rspec-mocks (~> 3.9.0)
67
+ rspec-core (3.9.1)
68
+ rspec-support (~> 3.9.1)
69
+ rspec-expectations (3.9.0)
70
+ diff-lcs (>= 1.2.0, < 2.0)
71
+ rspec-support (~> 3.9.0)
72
+ rspec-mocks (3.9.1)
73
+ diff-lcs (>= 1.2.0, < 2.0)
74
+ rspec-support (~> 3.9.0)
75
+ rspec-support (3.9.2)
76
+ rubocop (0.80.1)
77
+ jaro_winkler (~> 1.5.1)
78
+ parallel (~> 1.10)
79
+ parser (>= 2.7.0.1)
80
+ rainbow (>= 2.2.2, < 4.0)
81
+ rexml
82
+ ruby-progressbar (~> 1.7)
83
+ unicode-display_width (>= 1.4.0, < 1.7)
84
+ rubocop-rspec (1.28.0)
85
+ rubocop (>= 0.58.0)
86
+ ruby-progressbar (1.10.1)
87
+ simplecov (0.13.0)
88
+ docile (~> 1.1.0)
89
+ json (>= 1.8, < 3)
90
+ simplecov-html (~> 0.10.0)
91
+ simplecov-html (0.10.2)
92
+ thor (1.0.1)
93
+ timecop (0.9.1)
94
+ unicode-display_width (1.6.1)
95
+
96
+ PLATFORMS
97
+ ruby
98
+
99
+ DEPENDENCIES
100
+ appraisal (~> 2.2)
101
+ bundler (~> 2.1)
102
+ codeclimate-test-reporter (~> 1.0)
103
+ pry-byebug (~> 3.6.0)
104
+ rack (>= 2)!
105
+ rack-test (~> 1.1)
106
+ rake (~> 13.0)
107
+ redis (>= 4)!
108
+ rspec (~> 3.0)
109
+ rubocop (~> 0.58)
110
+ rubocop-rspec (~> 1.28.0)
111
+ sidekiq (>= 6)!
112
+ sidekiq-prometheus-exporter!
113
+ timecop (~> 0.9)
114
+
115
+ BUNDLED WITH
116
+ 2.1.4
@@ -0,0 +1,22 @@
1
+ # Patterns to ignore when building packages.
2
+ # This supports shell glob matching, relative path matching, and
3
+ # negation (prefixed with !). Only one pattern per line.
4
+ .DS_Store
5
+ # Common VCS dirs
6
+ .git/
7
+ .gitignore
8
+ .bzr/
9
+ .bzrignore
10
+ .hg/
11
+ .hgignore
12
+ .svn/
13
+ # Common backup files
14
+ *.swp
15
+ *.bak
16
+ *.tmp
17
+ *~
18
+ # Various IDEs
19
+ .project
20
+ .idea/
21
+ *.tmproj
22
+ .vscode/
@@ -0,0 +1,6 @@
1
+ ---
2
+ apiVersion: v1
3
+ appVersion: 0.1.13
4
+ description: A Helm chart to deploy sidekiq-prometheus-exporter in Kubernetes
5
+ name: sidekiq-prometheus-exporter
6
+ version: 0.1.13
@@ -0,0 +1,87 @@
1
+ # Official Helm chart
2
+
3
+ This is an official Helm chart for [sidekiq-prometheus-exporter](https://github.com/Strech/sidekiq-prometheus-exporter)
4
+ gem. It uses Docker image published on the [Docker hub](https://hub.docker.com/r/strech/sidekiq-prometheus-exporter).
5
+
6
+ ## Installation
7
+
8
+ First of all add the chart repository
9
+
10
+ ```console
11
+ $ helm repo add strech https://strech.github.io/sidekiq-prometheus-exporter
12
+ "strech" has been added to your repositories
13
+
14
+ $ helm repo list
15
+ NAME URL
16
+ strech https://strech.github.io/sidekiq-prometheus-exporter
17
+ ```
18
+
19
+ Then you can install the chart, let's say with the release name `sidekiq-metrics`
20
+
21
+ **Helm v2**
22
+
23
+ ```console
24
+ $ helm install strech/sidekiq-prometheus-exporter --name sidekiq-metrics
25
+ ```
26
+
27
+ **Helm v3**
28
+
29
+ ```console
30
+ $ helm install sidekiq-metrics strech/sidekiq-prometheus-exporter
31
+ ```
32
+
33
+ ## Configuration
34
+
35
+ You can try out that configuration by using `--dry-run` and `--values` on
36
+ install (examples using **Helm v3**)
37
+
38
+ ```console
39
+ $ helm install sidekiq-metrics strech/sidekiq-prometheus-exporter --values myvalues.yaml --dry-run
40
+ ```
41
+
42
+ or you can try out just one value via `--set`
43
+
44
+ ```console
45
+ $ helm install sidekiq-metrics strech/sidekiq-prometheus-exporter --set serviceAccount.create=false --dry-run
46
+ ```
47
+
48
+ | Parameter | Description | Default |
49
+ | ------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------ |
50
+ | `nameOverride` | Override the resource name prefix | `nil` |
51
+ | `fullnameOverride` | Override the full resource names | `nil` |
52
+ | `image.registry` | Image registry | `docker.io` |
53
+ | `image.repository` | Image repository | `strech/sidekiq-prometheus-exporter` |
54
+ | `image.tag` | Image tag | `0.1.13` |
55
+ | `image.pullPolicy` | Image pull policy | `IfNotPresent` |
56
+ | `image.pullSecrets` | Image pull secrets | `nil` |
57
+ | `containerPort` | Port for the exporter to bind on | `9292` |
58
+ | `resources` | CPU/Memory resource requests/limits | `nil` |
59
+ | `nodeSelector` | Node labels for pod assignment | `nil` |
60
+ | `tolerations` | Toleration labels for pod assignment | `nil` |
61
+ | `affinity` | Affinity settings for pod assignment | `nil` |
62
+ | `securityContext` | Security Context for the pod | `nil` |
63
+ | `livenessProbe` | LivenessProbe settings for tcpSocket mapping to containerPort | (See `values.yaml`) |
64
+ | `readinessProbe` | ReadinessProbe settings for tcpSocket mapping to containerPort | (See `values.yaml`) |
65
+ | `service.type` | Kubernetes service type | `ClusterIP` |
66
+ | `service.port` | Kubernetes port where service is exposed | `80` |
67
+ | `env` | An environment variables for metrics container (exclusive with `envFrom`) | `nil` |
68
+ | `envFrom.type` | Type of resource configMapRef/secretRef to source environment variables from | `nil` |
69
+ | `envFrom.name` | Name of Secret/ConfigMap to source environment variables from | `nil` |
70
+ | `serviceMonitor.enabled` | Whether serviceMonitor resource should be deployed | `false` |
71
+ | `serviceMonitor.path` | The endpoint of the service to be scraped | `/metrics` |
72
+ | `serviceMonitor.interval` | Duration between 2 consecutive scrapes | `1m` |
73
+ | `serviceMonitor.scrapeTimeout` | Timeout for each scrape request | `nil` |
74
+ | `serviceMonitor.labels` | Labels to add to the service monitor object | `nil` |
75
+ | `serviceAccount.create` | Specifies whether a service account should be created | `true` |
76
+ | `serviceAccount.name` | Name of the service account (if not set will be generated from chart full name) | `nil` |
77
+ | `rbac.create` | If true, create & use RBAC resources (:anger: works with `envFrom` and `serviceAccount` enabled) | `false` |
78
+
79
+ ## How to uninstall?
80
+
81
+ If you already have release `sidekiq-metics` running and want to remove it
82
+
83
+ ```console
84
+ $ helm delete --purge sidekiq-metics
85
+ ```
86
+
87
+ :bulb: The command above removes all the Kubernetes components associated with the chart and deletes the release.