puma-newrelic-codeur 0.1.8 → 0.1.9

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: 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