puma-metrics 1.1.0 → 1.2.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: db435968b3e4ec0d3a113f4114dad7d8d54214fa91d6b46bd2a17def4dc43791
4
- data.tar.gz: 4c80158b91cf98faeed9945d6a4c16490b62dbfe4d5be9230874a6602997f596
3
+ metadata.gz: e6bfb3829a8b3f020867676ad2d06696602f9b3e9cdba9677c9d0cd96516d952
4
+ data.tar.gz: 9b22b853444c9f8eb9945582e6debd9676c0ac83487178fe056840c8cb438b96
5
5
  SHA512:
6
- metadata.gz: 9dc507c3415301df0e3324c7aba236ed96dc3b1d46e3cfeab66a1c646854052909544ab85bb637e5daa4693301d4c92cba47753d07ca2e6b30a6b6960c6ee4f3
7
- data.tar.gz: c0ccd94196ae42672a1a141690b3f54f70c2a4332853bfcb301d1c146d110ab4977fe5719e2fc5a03e003cf637501a9538bbea6a3d82300afba9d81f5ae37f40
6
+ metadata.gz: 79d9e90b3dc95a9508622a6142a044dd682b072dcfd3971a2bfa06b5651ba414b2dd1667be0896779ae9a08be677d9607db2e0f6e3ba2f7417581c59e4be0b37
7
+ data.tar.gz: 38a134598cb7f50faded591f745832423aedcc9b4c7589a796ff25a67479104348675bc2e6dea82e2f08b440ba54616fc1d81951038aa6a6195cd922d84313e7
@@ -19,7 +19,7 @@ jobs:
19
19
  run: bundle exec overcommit --run
20
20
  strategy:
21
21
  matrix:
22
- ruby: ['2.4', '2.5', '2.6']
22
+ ruby: ['2.5', '2.5', '2.7']
23
23
  deploy:
24
24
  if: github.ref == 'refs/heads/master'
25
25
  name: to rubygems
@@ -29,7 +29,7 @@ jobs:
29
29
  - uses: actions/checkout@master
30
30
  - uses: actions/setup-ruby@master
31
31
  with:
32
- ruby-version: 2.6
32
+ ruby-version: 2.7
33
33
  - env:
34
34
  RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
35
35
  run: |
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 1.2.0
6
+
7
+ Changes:
8
+ - Drop support for ruby 2.4
9
+ - Relax prometheus-client to '>= 0.10'
10
+
11
+ Housekeeping:
12
+ - Update development dependencies
13
+
3
14
  ## 1.1.0
4
15
 
5
16
  Changes:
@@ -1,39 +1,44 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- puma-metrics (1.1.0)
5
- prometheus-client (~> 0.10)
4
+ puma-metrics (1.2.0)
5
+ prometheus-client (>= 0.10)
6
6
  puma (>= 3.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- ast (2.4.0)
11
+ ast (2.4.1)
12
12
  childprocess (3.0.0)
13
- iniparse (1.4.4)
14
- jaro_winkler (1.5.4)
15
- minitest (5.13.0)
13
+ iniparse (1.5.0)
14
+ minitest (5.14.1)
16
15
  nio4r (2.5.2)
17
- overcommit (0.51.0)
16
+ overcommit (0.53.0)
18
17
  childprocess (>= 0.6.3, < 4)
19
18
  iniparse (~> 1.4)
20
- parallel (1.18.0)
21
- parser (2.6.5.0)
19
+ parallel (1.19.1)
20
+ parser (2.7.1.3)
22
21
  ast (~> 2.4.0)
23
- prometheus-client (0.10.0)
24
- puma (4.2.1)
22
+ prometheus-client (2.0.0)
23
+ puma (4.3.5)
25
24
  nio4r (~> 2.0)
26
25
  rainbow (3.0.0)
27
- rake (13.0.0)
28
- rubocop (0.76.0)
29
- jaro_winkler (~> 1.5.1)
26
+ rake (13.0.1)
27
+ regexp_parser (1.7.1)
28
+ rexml (3.2.4)
29
+ rubocop (0.85.1)
30
30
  parallel (~> 1.10)
31
- parser (>= 2.6)
31
+ parser (>= 2.7.0.1)
32
32
  rainbow (>= 2.2.2, < 4.0)
33
+ regexp_parser (>= 1.7)
34
+ rexml
35
+ rubocop-ast (>= 0.0.3)
33
36
  ruby-progressbar (~> 1.7)
34
- unicode-display_width (>= 1.4.0, < 1.7)
37
+ unicode-display_width (>= 1.4.0, < 2.0)
38
+ rubocop-ast (0.0.3)
39
+ parser (>= 2.7.0.1)
35
40
  ruby-progressbar (1.10.1)
36
- unicode-display_width (1.6.0)
41
+ unicode-display_width (1.7.0)
37
42
 
38
43
  PLATFORMS
39
44
  ruby
@@ -47,4 +52,4 @@ DEPENDENCIES
47
52
  rubocop
48
53
 
49
54
  BUNDLED WITH
50
- 2.0.2
55
+ 2.1.2
@@ -14,13 +14,22 @@ module Puma
14
14
  end
15
15
 
16
16
  def call(_env)
17
- @parser.parse JSON.parse(@launcher.stats)
17
+ retrieve_and_parse_stats!
18
18
  [
19
19
  200,
20
20
  { 'Content-Type' => 'text/plain' },
21
21
  [Prometheus::Client::Formats::Text.marshal(Prometheus::Client.registry)]
22
22
  ]
23
23
  end
24
+
25
+ def retrieve_and_parse_stats!
26
+ puma_stats = @launcher.stats
27
+ if puma_stats.is_a?(Hash) # Modern Puma outputs stats as a Symbol-keyed Hash
28
+ @parser.parse(puma_stats)
29
+ else
30
+ @parser.parse(JSON.parse(puma_stats, symbolize_names: true))
31
+ end
32
+ end
24
33
  end
25
34
  end
26
35
  end
@@ -10,10 +10,10 @@ module Puma
10
10
  register_clustered_metrics if clustered
11
11
  end
12
12
 
13
- def parse(stats, labels = {})
14
- stats.each do |key, value|
15
- value.each { |s| parse(s, labels.merge(index: s['index'])) } if key == 'worker_status'
16
- parse(value, labels) if key == 'last_status'
13
+ def parse(symbol_keyed_stats, labels = {})
14
+ symbol_keyed_stats.each do |key, value|
15
+ value.each { |s| parse(s, labels.merge(index: s[:index])) } if key == :worker_status
16
+ parse(value, labels) if key == :last_status
17
17
  update_metric(key, value, labels)
18
18
  end
19
19
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Puma
4
4
  module Metrics
5
- VERSION = '1.1.0'
5
+ VERSION = '1.2.0'
6
6
  end
7
7
  end
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
19
 
20
- spec.add_runtime_dependency 'prometheus-client', '~> 0.10'
20
+ spec.add_runtime_dependency 'prometheus-client', '>= 0.10'
21
21
  spec.add_runtime_dependency 'puma', '>= 3.0'
22
22
 
23
23
  spec.add_development_dependency 'bundler'
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma-metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harm-Jan Blok
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-30 00:00:00.000000000 Z
11
+ date: 2020-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prometheus-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.10'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.10'
27
27
  - !ruby/object:Gem::Dependency
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
- rubygems_version: 3.0.3
152
+ rubygems_version: 3.1.2
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Puma plugin to export puma stats as prometheus metrics