gitlab-exporter 13.3.0 → 13.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: 8a115af5d2f6c523fe9a6fb55e09e47bbae42b6fdee96d20e2f0987e758546be
4
- data.tar.gz: cbb66dac910580239114923f0b70ad40a6580cac4a1b29e69e308559c6619e3e
3
+ metadata.gz: ef90bbddd738fecc23deb3342a8c24461289d1286c46c1d5d1879da07f32991d
4
+ data.tar.gz: 94e6b7eea624ee7a07aa435f3985e03006a8d8ab042d7958f2d1150b71a64d3a
5
5
  SHA512:
6
- metadata.gz: bfe2f5921dbd280826ba2e959d1bdc09fdf721f691e32c31f12e8948805a4103b30e29cc3286b56be1c4fd9d7e766b5b5e4b7df8ae117d1a53a6b03e4bfdda7d
7
- data.tar.gz: d0dde2e781ad6599e7944c400d2efd92272b43c813229a26754cf944da6972563154c35d9f5f1f75678ecb4537edef61cb6cc13f0a8cb433a7a5922b4c755993
6
+ metadata.gz: 67c47e28e6685067027922a2e12ec106b6eb4f14e1475dccb8a6430ae53e7a4e0bb111f0d2e83c4559ac38b49cb69aac6ead4308ee1534763cb9434761573085
7
+ data.tar.gz: 2066407a7735b144e4c84179b8b585d8ea4dddee4d74592a2538bd3ccd1d8c69610efa3d9a7fa9cb4a6d2aa26cc61578cb564015305f56f60627ea48f56a7f7c
data/.gitlab-ci.yml CHANGED
@@ -7,7 +7,7 @@ include:
7
7
  - template: Security/Secret-Detection.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/lib/gitlab/ci/templates/Security/Secret-Detection.gitlab-ci.yml
8
8
 
9
9
  variables:
10
- RUBY_VERSION: "3.2"
10
+ RUBY_VERSION: "2.7"
11
11
 
12
12
  stages:
13
13
  - test
@@ -43,7 +43,7 @@ rspec:
43
43
  before_script: *before_scripts
44
44
  parallel:
45
45
  matrix:
46
- - RUBY_VERSION: ["3.0", "3.1", "3.2"]
46
+ - RUBY_VERSION: ["2.7", "3.0", "3.1", "3.2"]
47
47
 
48
48
  rspec_integration:
49
49
  script:
@@ -55,7 +55,7 @@ rspec_integration:
55
55
  REDIS_URL: "redis://redis"
56
56
  parallel:
57
57
  matrix:
58
- - RUBY_VERSION: ["3.0", "3.1", "3.2"]
58
+ - RUBY_VERSION: ["2.7", "3.0", "3.1", "3.2"]
59
59
 
60
60
  rubocop:
61
61
  script:
data/.rubocop_todo.yml CHANGED
@@ -1,35 +1,19 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2023-09-25 18:54:37 UTC using RuboCop version 1.56.3.
3
+ # on 2021-01-11 12:24:03 UTC using RuboCop version 0.93.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 1
10
- # Configuration parameters: Severity, Include.
10
+ # Configuration parameters: Include.
11
11
  # Include: **/*.gemspec
12
12
  Gemspec/RequiredRubyVersion:
13
13
  Exclude:
14
14
  - 'gitlab-exporter.gemspec'
15
15
 
16
- # Offense count: 1
17
- # This cop supports safe autocorrection (--autocorrect).
18
- # Configuration parameters: EnforcedStyleAlignWith, Severity.
19
- # SupportedStylesAlignWith: start_of_line, begin
20
- Layout/BeginEndAlignment:
21
- Exclude:
22
- - 'lib/gitlab_exporter/git.rb'
23
-
24
- # Offense count: 1
25
- # This cop supports safe autocorrection (--autocorrect).
26
- Layout/RescueEnsureAlignment:
27
- Exclude:
28
- - 'lib/gitlab_exporter/git.rb'
29
-
30
16
  # Offense count: 3
31
- # This cop supports safe autocorrection (--autocorrect).
32
- # Configuration parameters: AllowedMethods, AllowedPatterns.
33
17
  Lint/AmbiguousBlockAssociation:
34
18
  Exclude:
35
19
  - 'spec/git_spec.rb'
@@ -43,83 +27,38 @@ Lint/MissingCopEnableDirective:
43
27
  - 'spec/git_process_proper_spec.rb'
44
28
 
45
29
  # Offense count: 1
46
- # This cop supports unsafe autocorrection (--autocorrect-all).
30
+ # Cop supports --auto-correct.
47
31
  Lint/NonDeterministicRequireOrder:
48
32
  Exclude:
49
33
  - 'spec/spec_helper.rb'
50
34
 
51
- # Offense count: 17
52
- # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
53
- # AllowedMethods: refine
35
+ # Offense count: 16
36
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
37
+ # ExcludedMethods: refine
54
38
  Metrics/BlockLength:
55
- Max: 285
39
+ Max: 349
56
40
 
57
- # Offense count: 3
58
- # Configuration parameters: AllowedMethods, AllowedPatterns.
41
+ # Offense count: 1
42
+ # Configuration parameters: IgnoredMethods.
59
43
  Metrics/CyclomaticComplexity:
60
44
  Max: 8
61
45
 
62
46
  # Offense count: 1
63
- # Configuration parameters: AllowedMethods, AllowedPatterns.
47
+ # Configuration parameters: IgnoredMethods.
64
48
  Metrics/PerceivedComplexity:
65
49
  Max: 9
66
50
 
67
- # Offense count: 9
68
- # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
69
- # SupportedStyles: snake_case, normalcase, non_integer
70
- # AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
71
- Naming/VariableNumber:
72
- Exclude:
73
- - 'spec/database/row_count_spec.rb'
74
-
75
- # Offense count: 16
76
- # This cop supports safe autocorrection (--autocorrect).
77
- # Configuration parameters: EnforcedStyle.
78
- # SupportedStyles: separated, grouped
79
- Style/AccessorGrouping:
80
- Exclude:
81
- - 'lib/gitlab_exporter/memstats/mapping.rb'
82
-
83
- # Offense count: 8
84
- # This cop supports unsafe autocorrection (--autocorrect-all).
85
- Style/GlobalStdStream:
86
- Exclude:
87
- - 'lib/gitlab_exporter/cli.rb'
88
- - 'spec/database/bloat_spec.rb'
89
-
90
51
  # Offense count: 1
91
- # This cop supports unsafe autocorrection (--autocorrect-all).
92
- # Configuration parameters: AllowedReceivers.
93
- # AllowedReceivers: Thread.current
94
- Style/HashEachMethods:
52
+ # Configuration parameters: EnforcedStyle, AllowModifiersOnSymbols.
53
+ # SupportedStyles: inline, group
54
+ Style/AccessModifierDeclarations:
95
55
  Exclude:
96
56
  - 'lib/gitlab_exporter/util.rb'
97
57
 
98
- # Offense count: 9
99
- # Configuration parameters: AllowedMethods.
100
- # AllowedMethods: respond_to_missing?
101
- Style/OptionalBooleanParameter:
102
- Exclude:
103
- - 'lib/gitlab_exporter/prometheus.rb'
104
- - 'lib/gitlab_exporter/sidekiq.rb'
105
-
106
- # Offense count: 1
107
- # This cop supports safe autocorrection (--autocorrect).
108
- Style/RedundantRegexpEscape:
109
- Exclude:
110
- - 'lib/gitlab_exporter/git.rb'
111
-
112
58
  # Offense count: 2
113
- # This cop supports unsafe autocorrection (--autocorrect-all).
114
- # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
59
+ # Cop supports --auto-correct.
60
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
115
61
  # AllowedMethods: present?, blank?, presence, try, try!
116
62
  Style/SafeNavigation:
117
63
  Exclude:
118
64
  - 'lib/gitlab_exporter/database/base.rb'
119
-
120
- # Offense count: 1
121
- # This cop supports unsafe autocorrection (--autocorrect-all).
122
- # Configuration parameters: Mode.
123
- Style/StringConcatenation:
124
- Exclude:
125
- - 'lib/gitlab_exporter/database/row_count.rb'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.2.2
1
+ 2.7.7
data/Gemfile CHANGED
@@ -4,5 +4,5 @@ gemspec
4
4
 
5
5
  group :test do
6
6
  gem "rspec", "~>3.12"
7
- gem "rubocop", "~> 1.52"
7
+ gem "rubocop", "~>0.42"
8
8
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-exporter (13.3.0)
4
+ gitlab-exporter (13.4.0)
5
5
  connection_pool (= 2.2.5)
6
6
  faraday (~> 1.8.0)
7
7
  pg (= 1.5.3)
@@ -16,8 +16,7 @@ PATH
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- ast (2.4.2)
20
- base64 (0.1.1)
19
+ ast (2.4.1)
21
20
  connection_pool (2.2.5)
22
21
  diff-lcs (1.5.0)
23
22
  faraday (1.8.0)
@@ -39,30 +38,26 @@ GEM
39
38
  faraday-net_http_persistent (1.2.0)
40
39
  faraday-patron (1.0.0)
41
40
  faraday-rack (1.0.0)
42
- json (2.6.3)
43
- language_server-protocol (3.17.0.3)
44
41
  multipart-post (2.2.3)
45
42
  mustermann (2.0.2)
46
43
  ruby2_keywords (~> 0.0.1)
47
44
  nio4r (2.5.8)
48
- parallel (1.23.0)
49
- parser (3.2.2.3)
45
+ parallel (1.20.1)
46
+ parser (3.0.0.0)
50
47
  ast (~> 2.4.1)
51
- racc
52
48
  pg (1.5.3)
53
49
  puma (5.6.5)
54
50
  nio4r (~> 2.0)
55
51
  quantile (0.2.1)
56
- racc (1.7.1)
57
52
  rack (2.2.5)
58
53
  rack-protection (2.2.4)
59
54
  rack
60
- rainbow (3.1.1)
55
+ rainbow (3.0.0)
61
56
  redis (4.4.0)
62
57
  redis-namespace (1.9.0)
63
58
  redis (>= 4)
64
- regexp_parser (2.8.1)
65
- rexml (3.2.6)
59
+ regexp_parser (2.0.3)
60
+ rexml (3.2.4)
66
61
  rspec (3.12.0)
67
62
  rspec-core (~> 3.12.0)
68
63
  rspec-expectations (~> 3.12.0)
@@ -76,21 +71,18 @@ GEM
76
71
  diff-lcs (>= 1.2.0, < 2.0)
77
72
  rspec-support (~> 3.12.0)
78
73
  rspec-support (3.12.0)
79
- rubocop (1.56.3)
80
- base64 (~> 0.1.1)
81
- json (~> 2.3)
82
- language_server-protocol (>= 3.17.0)
74
+ rubocop (0.93.1)
83
75
  parallel (~> 1.10)
84
- parser (>= 3.2.2.3)
76
+ parser (>= 2.7.1.5)
85
77
  rainbow (>= 2.2.2, < 4.0)
86
- regexp_parser (>= 1.8, < 3.0)
87
- rexml (>= 3.2.5, < 4.0)
88
- rubocop-ast (>= 1.28.1, < 2.0)
78
+ regexp_parser (>= 1.8)
79
+ rexml
80
+ rubocop-ast (>= 0.6.0)
89
81
  ruby-progressbar (~> 1.7)
90
- unicode-display_width (>= 2.4.0, < 3.0)
91
- rubocop-ast (1.29.0)
92
- parser (>= 3.2.1.0)
93
- ruby-progressbar (1.13.0)
82
+ unicode-display_width (>= 1.4.0, < 2.0)
83
+ rubocop-ast (1.4.0)
84
+ parser (>= 2.7.1.5)
85
+ ruby-progressbar (1.11.0)
94
86
  ruby2_keywords (0.0.5)
95
87
  sidekiq (6.4.0)
96
88
  connection_pool (>= 2.2.2)
@@ -102,7 +94,7 @@ GEM
102
94
  rack-protection (= 2.2.4)
103
95
  tilt (~> 2.0)
104
96
  tilt (2.0.11)
105
- unicode-display_width (2.4.2)
97
+ unicode-display_width (1.7.0)
106
98
  webrick (1.7.0)
107
99
 
108
100
  PLATFORMS
@@ -112,7 +104,7 @@ DEPENDENCIES
112
104
  gitlab-exporter!
113
105
  rspec (~> 3.12)
114
106
  rspec-expectations (~> 3.12.0)
115
- rubocop (~> 1.52)
107
+ rubocop (~> 0.42)
116
108
 
117
109
  BUNDLED WITH
118
110
  2.4.5
@@ -10,7 +10,6 @@ Gem::Specification.new do |s|
10
10
  s.description = "GitLab metrics exporter to use with prometheus"
11
11
  s.authors = ["Pablo Carranza"]
12
12
  s.email = "pablo@gitlab.com"
13
- s.required_ruby_version = ">= 3.0.0"
14
13
 
15
14
  s.files = `git ls-files -z`.split("\x0")
16
15
 
@@ -1,5 +1,19 @@
1
1
  require "yaml"
2
2
 
3
+ # TODO: Remove this once we're on Ruby 3
4
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/393651
5
+ unless YAML.respond_to?(:safe_load_file)
6
+ module YAML # rubocop:disable Style/Documentation
7
+ # Temporary Ruby 2 back-compat workaround.
8
+ #
9
+ # This method only exists as of stdlib 3.0.0:
10
+ # https://ruby-doc.org/stdlib-3.0.0/libdoc/psych/rdoc/Psych.html
11
+ def self.safe_load_file(path, **options)
12
+ YAML.safe_load(File.read(path), **options)
13
+ end
14
+ end
15
+ end
16
+
3
17
  module GitLab
4
18
  module Exporter
5
19
  # Stores runner classes in a single place
@@ -23,6 +23,9 @@ module GitLab
23
23
  # needed to be re-initialized
24
24
  POOL_TIMEOUT = 90
25
25
 
26
+ # Lock for Sidekiq.redis which we need to modify, but is not concurrency safe.
27
+ SIDEKIQ_REDIS_LOCK = Mutex.new
28
+
26
29
  PrometheusMetrics.describe("sidekiq_enqueued_jobs",
27
30
  "Total number of jobs enqueued by class name. Only inspects the first #{PROBE_JOBS_LIMIT} jobs per queue.") # rubocop:disable Layout/LineLength
28
31
 
@@ -211,16 +214,15 @@ module GitLab
211
214
  end
212
215
 
213
216
  def with_sidekiq(namespaced = true)
214
- # TODO: this is not concurrent safe as we change global context
215
- # It means that we are unable to use many different sidekiq's
216
- # which is not a problem as of now
217
- Sidekiq.configure_client do |config|
218
- config.redis = self.class.connection_pool[redis_options(namespaced)]
219
- end
217
+ SIDEKIQ_REDIS_LOCK.synchronize {
218
+ Sidekiq.configure_client do |config|
219
+ config.redis = self.class.connection_pool[redis_options(namespaced)]
220
+ end
220
221
 
221
- return unless connected?
222
+ return unless connected?
222
223
 
223
- yield
224
+ yield
225
+ }
224
226
  end
225
227
 
226
228
  def redis_options(namespaced = true)
@@ -1,5 +1,5 @@
1
1
  module GitLab
2
2
  module Exporter
3
- VERSION = "13.3.0".freeze
3
+ VERSION = "13.4.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-exporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.3.0
4
+ version: 13.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pablo Carranza
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-07-27 00:00:00.000000000 Z
@@ -242,7 +242,7 @@ homepage: http://gitlab.com
242
242
  licenses:
243
243
  - MIT
244
244
  metadata: {}
245
- post_install_message:
245
+ post_install_message:
246
246
  rdoc_options: []
247
247
  require_paths:
248
248
  - lib
@@ -250,15 +250,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
250
250
  requirements:
251
251
  - - ">="
252
252
  - !ruby/object:Gem::Version
253
- version: 3.0.0
253
+ version: '0'
254
254
  required_rubygems_version: !ruby/object:Gem::Requirement
255
255
  requirements:
256
256
  - - ">="
257
257
  - !ruby/object:Gem::Version
258
258
  version: '0'
259
259
  requirements: []
260
- rubygems_version: 3.4.10
261
- signing_key:
260
+ rubygems_version: 3.1.6
261
+ signing_key:
262
262
  specification_version: 4
263
263
  summary: GitLab metrics exporter
264
264
  test_files: