sidekiq-prometheus-exporter 0.1.10 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +12 -0
  3. data/.github/workflows/ci.yaml +76 -0
  4. data/.gitignore +3 -1
  5. data/.rubocop.yml +28 -28
  6. data/Appraisals +17 -4
  7. data/README.md +120 -37
  8. data/Rakefile +76 -0
  9. data/docker/Dockerfile +24 -0
  10. data/docker/README.md +60 -0
  11. data/docker/config.ru +40 -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 → sidekiq_3.3.1.Gemfile} +2 -1
  17. data/gemfiles/sidekiq_3.3.1.Gemfile.lock +124 -0
  18. data/gemfiles/{sidekiq_3.x.gemfile → sidekiq_3.x.Gemfile} +2 -1
  19. data/gemfiles/{sidekiq_3.x.gemfile.lock → sidekiq_3.x.Gemfile.lock} +47 -46
  20. data/gemfiles/{sidekiq_4.x.gemfile → sidekiq_4.x.Gemfile} +1 -1
  21. data/gemfiles/{sidekiq_4.x.gemfile.lock → sidekiq_4.x.Gemfile.lock} +38 -38
  22. data/gemfiles/{sidekiq_5.x.gemfile → sidekiq_5.x.Gemfile} +1 -1
  23. data/gemfiles/{sidekiq_5.x.gemfile.lock → sidekiq_5.x.Gemfile.lock} +41 -40
  24. data/gemfiles/sidekiq_6.x.Gemfile +8 -0
  25. data/gemfiles/sidekiq_6.x.Gemfile.lock +97 -0
  26. data/gemfiles/sidekiq_latest.Gemfile +9 -0
  27. data/gemfiles/sidekiq_latest.Gemfile.lock +113 -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 +134 -0
  40. data/lib/sidekiq/prometheus/exporter.rb +12 -1
  41. data/lib/sidekiq/prometheus/exporter/exporters.rb +4 -1
  42. data/lib/sidekiq/prometheus/exporter/standard.rb +1 -1
  43. data/lib/sidekiq/prometheus/exporter/version.rb +1 -1
  44. data/sidekiq-prometheus-exporter.gemspec +3 -3
  45. metadata +43 -23
  46. data/.travis.yml +0 -23
  47. data/gemfiles/sidekiq_3.3.1.gemfile.lock +0 -138
@@ -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.10)
4
+ sidekiq-prometheus-exporter (0.1.15)
5
5
  sidekiq (>= 3.3.1)
6
6
 
7
7
  GEM
@@ -13,81 +13,82 @@ 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
- connection_pool (2.2.2)
19
+ connection_pool (2.2.3)
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.2.3)
35
+ rack-protection (2.1.0)
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.9)
68
68
  connection_pool (~> 2.2, >= 2.2.2)
69
+ rack (~> 2.0)
69
70
  rack-protection (>= 1.5.0)
70
- redis (>= 3.3.5, < 5)
71
+ redis (>= 3.3.5, < 4.2)
71
72
  simplecov (0.13.0)
72
73
  docile (~> 1.1.0)
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
88
  pry-byebug (~> 3.6)
88
- rack-test (~> 0.8)
89
- rake (~> 10.0)
90
- redis (>= 3.3.5)
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,97 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ sidekiq-prometheus-exporter (0.1.15)
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.3)
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.3)
35
+ rack-test (1.1.0)
36
+ rack (>= 1.0, < 3)
37
+ rainbow (3.0.0)
38
+ rake (13.0.1)
39
+ redis (4.2.5)
40
+ rexml (3.2.4)
41
+ rspec (3.9.0)
42
+ rspec-core (~> 3.9.0)
43
+ rspec-expectations (~> 3.9.0)
44
+ rspec-mocks (~> 3.9.0)
45
+ rspec-core (3.9.1)
46
+ rspec-support (~> 3.9.1)
47
+ rspec-expectations (3.9.0)
48
+ diff-lcs (>= 1.2.0, < 2.0)
49
+ rspec-support (~> 3.9.0)
50
+ rspec-mocks (3.9.1)
51
+ diff-lcs (>= 1.2.0, < 2.0)
52
+ rspec-support (~> 3.9.0)
53
+ rspec-support (3.9.2)
54
+ rubocop (0.80.1)
55
+ jaro_winkler (~> 1.5.1)
56
+ parallel (~> 1.10)
57
+ parser (>= 2.7.0.1)
58
+ rainbow (>= 2.2.2, < 4.0)
59
+ rexml
60
+ ruby-progressbar (~> 1.7)
61
+ unicode-display_width (>= 1.4.0, < 1.7)
62
+ rubocop-rspec (1.28.0)
63
+ rubocop (>= 0.58.0)
64
+ ruby-progressbar (1.10.1)
65
+ sidekiq (6.1.3)
66
+ connection_pool (>= 2.2.2)
67
+ rack (~> 2.0)
68
+ redis (>= 4.2.0)
69
+ simplecov (0.13.0)
70
+ docile (~> 1.1.0)
71
+ json (>= 1.8, < 3)
72
+ simplecov-html (~> 0.10.0)
73
+ simplecov-html (0.10.2)
74
+ thor (1.0.1)
75
+ timecop (0.9.1)
76
+ unicode-display_width (1.6.1)
77
+
78
+ PLATFORMS
79
+ ruby
80
+
81
+ DEPENDENCIES
82
+ appraisal (~> 2.2)
83
+ bundler (~> 2.1)
84
+ codeclimate-test-reporter (~> 1.0)
85
+ pry-byebug (~> 3.6)
86
+ rack-test (~> 1.1)
87
+ rake (~> 13.0)
88
+ redis (~> 4.1)
89
+ rspec (~> 3.0)
90
+ rubocop (~> 0.58)
91
+ rubocop-rspec (~> 1.28.0)
92
+ sidekiq (~> 6.0)
93
+ sidekiq-prometheus-exporter!
94
+ timecop (~> 0.9)
95
+
96
+ BUNDLED WITH
97
+ 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,113 @@
1
+ GIT
2
+ remote: https://github.com/mperham/sidekiq
3
+ revision: 2f049eae5df957786c4e9c0b5b32e0a5acc1c7d1
4
+ specs:
5
+ sidekiq (6.1.3)
6
+ connection_pool (>= 2.2.2)
7
+ rack (~> 2.0)
8
+ redis (>= 4.2.0)
9
+
10
+ GIT
11
+ remote: https://github.com/rack/rack
12
+ revision: a05f8d56f9ac4da14dddb8f312a3b43644f73397
13
+ specs:
14
+ rack (2.3.0)
15
+
16
+ GIT
17
+ remote: https://github.com/redis/redis-rb
18
+ revision: b42d25162d9856a3091ca7830635a95eed9bcb74
19
+ specs:
20
+ redis (4.2.5)
21
+
22
+ PATH
23
+ remote: ..
24
+ specs:
25
+ sidekiq-prometheus-exporter (0.1.15)
26
+ sidekiq (>= 3.3.1)
27
+
28
+ GEM
29
+ remote: https://rubygems.org/
30
+ specs:
31
+ appraisal (2.2.0)
32
+ bundler
33
+ rake
34
+ thor (>= 0.14.0)
35
+ ast (2.4.0)
36
+ byebug (10.0.2)
37
+ codeclimate-test-reporter (1.0.9)
38
+ simplecov (<= 0.13)
39
+ coderay (1.1.2)
40
+ connection_pool (2.2.3)
41
+ diff-lcs (1.3)
42
+ docile (1.1.5)
43
+ jaro_winkler (1.5.4)
44
+ json (2.3.0)
45
+ method_source (0.9.2)
46
+ parallel (1.19.1)
47
+ parser (2.7.0.4)
48
+ ast (~> 2.4.0)
49
+ pry (0.12.2)
50
+ coderay (~> 1.1.0)
51
+ method_source (~> 0.9.0)
52
+ pry-byebug (3.6.0)
53
+ byebug (~> 10.0)
54
+ pry (~> 0.10)
55
+ rack-test (1.1.0)
56
+ rack (>= 1.0, < 3)
57
+ rainbow (3.0.0)
58
+ rake (13.0.1)
59
+ rexml (3.2.4)
60
+ rspec (3.9.0)
61
+ rspec-core (~> 3.9.0)
62
+ rspec-expectations (~> 3.9.0)
63
+ rspec-mocks (~> 3.9.0)
64
+ rspec-core (3.9.1)
65
+ rspec-support (~> 3.9.1)
66
+ rspec-expectations (3.9.0)
67
+ diff-lcs (>= 1.2.0, < 2.0)
68
+ rspec-support (~> 3.9.0)
69
+ rspec-mocks (3.9.1)
70
+ diff-lcs (>= 1.2.0, < 2.0)
71
+ rspec-support (~> 3.9.0)
72
+ rspec-support (3.9.2)
73
+ rubocop (0.80.1)
74
+ jaro_winkler (~> 1.5.1)
75
+ parallel (~> 1.10)
76
+ parser (>= 2.7.0.1)
77
+ rainbow (>= 2.2.2, < 4.0)
78
+ rexml
79
+ ruby-progressbar (~> 1.7)
80
+ unicode-display_width (>= 1.4.0, < 1.7)
81
+ rubocop-rspec (1.28.0)
82
+ rubocop (>= 0.58.0)
83
+ ruby-progressbar (1.10.1)
84
+ simplecov (0.13.0)
85
+ docile (~> 1.1.0)
86
+ json (>= 1.8, < 3)
87
+ simplecov-html (~> 0.10.0)
88
+ simplecov-html (0.10.2)
89
+ thor (1.0.1)
90
+ timecop (0.9.1)
91
+ unicode-display_width (1.6.1)
92
+
93
+ PLATFORMS
94
+ ruby
95
+
96
+ DEPENDENCIES
97
+ appraisal (~> 2.2)
98
+ bundler (~> 2.1)
99
+ codeclimate-test-reporter (~> 1.0)
100
+ pry-byebug (~> 3.6)
101
+ rack (>= 2)!
102
+ rack-test (~> 1.1)
103
+ rake (~> 13.0)
104
+ redis (>= 4)!
105
+ rspec (~> 3.0)
106
+ rubocop (~> 0.58)
107
+ rubocop-rspec (~> 1.28.0)
108
+ sidekiq (>= 6)!
109
+ sidekiq-prometheus-exporter!
110
+ timecop (~> 0.9)
111
+
112
+ BUNDLED WITH
113
+ 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.15
4
+ description: A Helm chart to deploy sidekiq-prometheus-exporter in Kubernetes
5
+ name: sidekiq-prometheus-exporter
6
+ version: 0.1.15
@@ -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.15` |
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.