yabeda-puma-plugin 0.2.1 → 0.3.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: d0254def10fec3276511c89a605d243a7876631ab06ffc4131adc135e4011939
4
- data.tar.gz: f059a562c744164c2549b8e826ea793803eff702565d564df1599669695ffa9b
3
+ metadata.gz: f94f38e97079338e19849ddc164b859f9ea221d1842347f86d25e4809b507615
4
+ data.tar.gz: 5fec9afef71af361875885ad5dd6006d49518d5fb9d5582f89883453a6539752
5
5
  SHA512:
6
- metadata.gz: 65fda3c0f40ef45b97c30463ec976735c134773b3da2177bf38e392867551ea1e3c057d710281fdb91e9effa1dc74d958e1d391464670100996c698e6f49aaf3
7
- data.tar.gz: 439624ba8ec4c869a96781370d17be8ec22441d66b31b51b6b3bc42af0ba6ca0b27cb65e2496ba6b2b91bb55a2ef4d40547fce0b99a4b6bde4bbbf7dc0f425e7
6
+ metadata.gz: 5c554a0d7a13f92c6e1d64741e1a03295901f0562d8f49e3f3dedf5d828eac484e1f23083842a21f40f5002d11357d7bf52f3efada435a21e7d676fd5a02e5b5
7
+ data.tar.gz: f468a304b54fefbe4f2b5585259ddcf15088c4f0a993a8da9ff9a0b0f5646e25da67ea9b8aae861c93546b65e147101682d7bc60d02f97829a796e1ae73bdc1c
@@ -14,14 +14,14 @@ Puma::Plugin.create do
14
14
 
15
15
  Yabeda.configure do
16
16
  group :puma
17
-
18
- gauge :backlog, comment: 'Number of established but unaccepted connections in the backlog'
19
- gauge :running, comment: 'Number of running worker threads'
20
- gauge :pool_capacity, comment: 'Number of allocatable worker threads'
21
- gauge :max_threads, comment: 'Maximum number of worker threads'
22
- gauge :workers, comment: 'Number of configured workers'
17
+
18
+ gauge :backlog, tags: %i[index], comment: 'Number of established but unaccepted connections in the backlog'
19
+ gauge :running, tags: %i[index], comment: 'Number of running worker threads'
20
+ gauge :pool_capacity, tags: %i[index], comment: 'Number of allocatable worker threads'
21
+ gauge :max_threads, tags: %i[index], comment: 'Maximum number of worker threads'
23
22
 
24
23
  if clustered
24
+ gauge :workers, comment: 'Number of configured workers'
25
25
  gauge :booted_workers, comment: 'Number of booted workers'
26
26
  gauge :old_workers, comment: 'Number of old workers'
27
27
  end
@@ -13,21 +13,33 @@ module Yabeda
13
13
  end
14
14
 
15
15
  def call
16
- Array.new.tap { |result| parse(data, result) }
16
+ [].tap { |result| parse(data, {}, result) }
17
17
  end
18
18
 
19
19
  private
20
20
 
21
- def parse(stats, labels = {}, result)
21
+ def parse(stats, labels, result)
22
22
  stats.each do |key, value|
23
- value.each { |s| parse(s, labels.merge(index: s['index']), result) } if key == 'worker_status'
24
- parse(value, labels, result) if key == 'last_status'
25
- result << {name: key, value: value, labels: labels} if metric?(key)
23
+ case key
24
+ when 'worker_status'
25
+ value.each { |s| parse(s, labels.merge(index: s['index']), result) }
26
+ when 'last_status'
27
+ parse(value, labels, result)
28
+ else
29
+ next unless metric?(key)
30
+
31
+ l = clustered_metric?(key) ? labels : { index: 0 }.merge(labels)
32
+ result << { name: key, value: value, labels: l }
33
+ end
26
34
  end
27
35
  end
28
36
 
29
37
  def metric?(name)
30
- Statistics::METRICS.include?(name.to_sym) || (Statistics::CLUSTERED_METRICS.include?(name.to_sym) && clustered)
38
+ Statistics::METRICS.include?(name.to_sym) || clustered_metric?(name)
39
+ end
40
+
41
+ def clustered_metric?(name)
42
+ clustered && Statistics::CLUSTERED_METRICS.include?(name.to_sym)
31
43
  end
32
44
  end
33
45
  end
@@ -2,8 +2,8 @@ module Yabeda
2
2
  module Puma
3
3
  module Plugin
4
4
  module Statistics
5
- METRICS = [:backlog, :running, :pool_capacity, :max_threads, :workers]
6
- CLUSTERED_METRICS = [:booted_workers, :old_workers]
5
+ METRICS = [:backlog, :running, :pool_capacity, :max_threads]
6
+ CLUSTERED_METRICS = [:booted_workers, :old_workers, :workers]
7
7
  end
8
8
  end
9
9
  end
@@ -1,7 +1,7 @@
1
1
  module Yabeda
2
2
  module Puma
3
3
  module Plugin
4
- VERSION = "0.2.1"
4
+ VERSION = "0.3.0"
5
5
  end
6
6
  end
7
7
  end
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_runtime_dependency "yabeda"
24
+ spec.add_runtime_dependency "yabeda", "~> 0.2"
25
25
  spec.add_runtime_dependency "puma"
26
26
  spec.add_runtime_dependency "json"
27
27
 
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yabeda-puma-plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Salahutdinov Dmitry
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-16 00:00:00.000000000 Z
11
+ date: 2020-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yabeda
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.2'
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
- version: '0'
26
+ version: '0.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: puma
29
29
  requirement: !ruby/object:Gem::Requirement