puma-newrelic-codeur 0.1.8 → 0.1.10

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: 4cdfae9d5d6d6cf2b3815c9f5a29eb6fed99a2281e3b82892124c18d42bb4ea9
4
+ data.tar.gz: afc6ed3b9a9d4f5d36549759f02044e76a837e3c1d4ed4a184c5e27c43ab1370
5
5
  SHA512:
6
- metadata.gz: 958c09beaedc91bbd6a1b6f6f0f2ddee4224146a387b3ffdcfcb839da472223904eb7442c8dcb461c3389f99417d2e3cfc57aa582b692d9d7d789dfda313b14e
7
- data.tar.gz: 10a81c3fbb6e961af001895d2cc579ab51ca4b8cbcce0b1ec3b522555719d4e3650541775c03a4913eea496f538efb0c0824df2a94dcb4f8d64f8e39858fe954
6
+ metadata.gz: 6b28d5e8296a5588db4a7abd4f5d5072283a0cd44770043566e4a14c0675aabc0adcf1d71a0c11178d4ab0ec1af53076091389b1ea6e9133b21c9530c6d2b2b5
7
+ data.tar.gz: 6ad9f1b689e46d269249e8f8beea0d1477da24b702931a856011f8774291fcde5918670b3c3576b681c27a4f092d176908f07e72736f4df1cfa94929b206970e
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,27 +6,19 @@ 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
18
- begin
19
- if should_sample?
20
- @last_sample_at = Time.now
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
27
- end
28
- rescue Exception => e # rubocop:disable Lint/RescueException
29
- ::NewRelic::Agent.logger.error(e.message)
18
+
19
+ if should_sample?
20
+ record_metrics(@launcher.stats)
21
+ @last_sample_at = Time.now
30
22
  end
31
23
  end
32
24
  end
@@ -39,23 +31,21 @@ module Puma
39
31
  @running = false
40
32
  end
41
33
 
42
- def parse(stats)
34
+ def record_metrics(stats)
43
35
  metrics = Hash.new { |h, k| h[k] = 0 }
44
36
 
45
- if stats[:workers]
46
- metrics[:workers] = stats[:workers]
37
+ if stats[:worker_status] # Cluster mode
38
+ metrics[:workers_count] = stats[:workers]
47
39
  stats[:worker_status].each do |worker|
48
- worker[:last_status].each { |key, value| metrics[key.to_s] += value if @keys.include?(key.to_s) }
40
+ worker[:last_status].each { |key, value| metrics[key] += value if @keys.include?(key) }
49
41
  end
50
- else
51
- stats.each { |key, value| metrics[key.to_s] += value if @keys.include?(key.to_s) }
42
+ else # Single mode
43
+ metrics[:workers_count] = 1
44
+ stats.each { |key, value| metrics[key] += value if @keys.include?(key) }
52
45
  end
53
- report_metrics(metrics)
54
- end
55
46
 
56
- def report_metrics(metrics)
57
47
  metrics.each do |key, value|
58
- ::NewRelic::Agent.logger.debug("Recorded metric: Custom/Puma/#{key}=#{value}")
48
+ ::NewRelic::Agent.logger.info("Recorded metric: Custom/Puma/#{key}=#{value}")
59
49
  ::NewRelic::Agent.record_metric("Custom/Puma/#{key}", value)
60
50
  end
61
51
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Puma
4
4
  module NewRelic
5
- VERSION = "0.1.8"
5
+ VERSION = "0.1.10"
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.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoist Claassen