puma-newrelic-codeur 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1eb6e7d4286a16336d5544cb3f7094390788b71cc1f3f4ab323882ff6611e9d9
4
- data.tar.gz: faff0b2196bd2aabf06246976f14a0595994b7216b538e0a36713bff1bc524b1
3
+ metadata.gz: 86e38d20e90900400c14892d926996fc6aa4855a8c39873eb9e981cc2e6c8dba
4
+ data.tar.gz: a60b4374d783ad880dfa012d4745df4407ce0345fc3fdedc6677ca874fddc79b
5
5
  SHA512:
6
- metadata.gz: 958c09beaedc91bbd6a1b6f6f0f2ddee4224146a387b3ffdcfcb839da472223904eb7442c8dcb461c3389f99417d2e3cfc57aa582b692d9d7d789dfda313b14e
7
- data.tar.gz: 10a81c3fbb6e961af001895d2cc579ab51ca4b8cbcce0b1ec3b522555719d4e3650541775c03a4913eea496f538efb0c0824df2a94dcb4f8d64f8e39858fe954
6
+ metadata.gz: 6a96d262daf04a941d94b01d768015c257d63e54deacd387a88cf8a18cedd4563485ebb5af69f64a419a18c99eccea4cb637a411a9fb1895ac2817b89f87084d
7
+ data.tar.gz: 15f0686657a50b46794fe6dafbf991a344a6d6f7a46f796325aee511ecede1e419276b8da8623e8cd12c30cf6dfaa872c7cefbaa1437ff4d7b9b6e391b1f9051
data/README.md CHANGED
@@ -9,7 +9,7 @@ You can view the information in the NewRelic insights or in NewRelic One.
9
9
  Add this line to your application's Gemfile:
10
10
 
11
11
  ```ruby
12
- gem 'puma-newrelic'
12
+ gem 'puma-newrelic-codeur'
13
13
  ```
14
14
 
15
15
  And then execute:
@@ -12,7 +12,7 @@ module Puma
12
12
  end
13
13
 
14
14
  in_background do
15
- sampler.start
15
+ sampler.collect
16
16
  end
17
17
  end
18
18
  end
@@ -6,12 +6,12 @@ module Puma
6
6
  def initialize(launcher)
7
7
  config = ::NewRelic::Agent.config[:puma] || {}
8
8
  @launcher = launcher
9
- @sample_rate = config.fetch("sample_rate", 15)
10
- @keys = config.fetch("keys", %w[backlog running pool_capacity max_threads]).map(&:to_s)
9
+ @sample_rate = config.fetch("sample_rate", 23)
10
+ @keys = config.fetch("keys", %i[backlog running pool_capacity max_threads requests_count]).map(&:to_sym)
11
11
  @last_sample_at = Time.now
12
12
  end
13
13
 
14
- def start
14
+ def collect
15
15
  @running = true
16
16
  while @running
17
17
  sleep 1
@@ -19,11 +19,7 @@ module Puma
19
19
  if should_sample?
20
20
  @last_sample_at = Time.now
21
21
  puma_stats = @launcher.stats
22
- if puma_stats.is_a?(Hash)
23
- parse puma_stats
24
- else
25
- parse JSON.parse(puma_stats, symbolize_names: true)
26
- end
22
+ record_metrics(puma_stats)
27
23
  end
28
24
  rescue Exception => e # rubocop:disable Lint/RescueException
29
25
  ::NewRelic::Agent.logger.error(e.message)
@@ -39,21 +35,19 @@ module Puma
39
35
  @running = false
40
36
  end
41
37
 
42
- def parse(stats)
38
+ def record_metrics(stats)
43
39
  metrics = Hash.new { |h, k| h[k] = 0 }
44
40
 
45
- if stats[:workers]
46
- metrics[:workers] = stats[:workers]
41
+ if stats[:worker_status] # Cluster mode
42
+ metrics[:workers_count] = stats[:workers]
47
43
  stats[:worker_status].each do |worker|
48
- worker[:last_status].each { |key, value| metrics[key.to_s] += value if @keys.include?(key.to_s) }
44
+ worker[:last_status].each { |key, value| metrics[key] += value if @keys.include?(key) }
49
45
  end
50
- else
51
- stats.each { |key, value| metrics[key.to_s] += value if @keys.include?(key.to_s) }
46
+ else # Single mode
47
+ metrics[:workers_count] = 1
48
+ stats.each { |key, value| metrics[key] += value if @keys.include?(key) }
52
49
  end
53
- report_metrics(metrics)
54
- end
55
50
 
56
- def report_metrics(metrics)
57
51
  metrics.each do |key, value|
58
52
  ::NewRelic::Agent.logger.debug("Recorded metric: Custom/Puma/#{key}=#{value}")
59
53
  ::NewRelic::Agent.record_metric("Custom/Puma/#{key}", value)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Puma
4
4
  module NewRelic
5
- VERSION = "0.1.8"
5
+ VERSION = "0.1.9"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma-newrelic-codeur
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoist Claassen