puma-plugin-telemetry 1.1.0 → 1.1.2

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: fe506b3cee809f3647bdbd9215b7ed150e8efaadc0d3ce6971c76cbca375dde8
4
- data.tar.gz: 0c7a16268af68cd404297699db57a0f253c95e341e78b25555f114debeb6c86b
3
+ metadata.gz: b3992737163fb68bb64e961ac4012e8d00b43e4464cd37b945a62495d8acdef8
4
+ data.tar.gz: bc723cd155b0104b563c9795e3598a14ba4c24c53990b87050ba5aacce7fb831
5
5
  SHA512:
6
- metadata.gz: c3f48102a6b14d5ba37135788d63b7c489e18a06640217d9df6080a98c9f62efdfdc5f9cf563e192225496d04e342a5829e192ce88b926d9c90e4cf4b68153db
7
- data.tar.gz: 36f0d6c18542b52f9c77764bd6a84b7693af50e84a1e398333cf1d6207d76297fbf5dbcf2b906b8ef855bb9de42764a11b7877467ae3e4872a1dd01044b145e7
6
+ metadata.gz: 111bbc32976f4fbb619b2240a1229ae376e56a5c9269f138507528b851e2824048730660719da512b85069a93c05fe24d9419a4a70ac0c3c95ba64752f69725a
7
+ data.tar.gz: 7c57a55fd2701507f9eeb23d4231041ab41321b3a365f11af42ca70cdb768abc6c5421ace812c868277fdd3234c1997b453b3aca62f6bd82380b03679a82100f
data/.github/CODEOWNERS CHANGED
@@ -3,3 +3,4 @@
3
3
  # Read more at https://help.github.com/en/articles/about-code-owners
4
4
 
5
5
  * @babbel/tnt
6
+ * @driv3r
@@ -37,10 +37,27 @@ jobs:
37
37
  echo "build complete"
38
38
 
39
39
  release:
40
- needs: build
41
- if: contains(github.ref, 'tags') && github.event_name == 'create'
42
40
  runs-on: ubuntu-20.04
41
+
42
+ needs:
43
+ - build
44
+
45
+ if: github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v')
46
+
43
47
  steps:
44
48
  - uses: actions/checkout@v3
45
49
  - uses: ruby/setup-ruby@v1
46
- - uses: babbel/publish-gem@v1
50
+
51
+ - name: Create credentials
52
+ run: |
53
+ mkdir -p ~/.gem
54
+ cat << EOF > ~/.gem/credentials
55
+ ---
56
+ :rubygems_api_key: ${{ secrets.RUBYGEMS_TOKEN }}
57
+ EOF
58
+ chmod 0600 /home/runner/.gem/credentials
59
+
60
+ - name: Publish gem
61
+ run: |
62
+ gem build puma-plugin-telemetry.gemspec
63
+ gem push puma-plugin-telemetry-*.gem
data/CHANGELOG.md CHANGED
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.1.2]
11
+
12
+ - Add Puma 6 compatibility
13
+ ## [1.1.1]
14
+
15
+ Public release.
16
+
10
17
  ## [1.1.0]
11
18
 
12
19
  Out of beta testing, reading for usage. Following is a recap from Alpha & Beta releases.
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- puma-plugin-telemetry (1.1.0)
5
- puma (>= 5.0)
4
+ puma-plugin-telemetry (1.1.2)
5
+ puma (< 7)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -14,7 +14,7 @@ GEM
14
14
  parallel (1.22.1)
15
15
  parser (3.1.2.0)
16
16
  ast (~> 2.4.1)
17
- puma (5.6.4)
17
+ puma (6.0.1)
18
18
  nio4r (~> 2.0)
19
19
  rack (2.2.3.1)
20
20
  rainbow (3.1.1)
@@ -64,4 +64,4 @@ DEPENDENCIES
64
64
  rubocop-performance (~> 1.9)
65
65
 
66
66
  BUNDLED WITH
67
- 2.1.4
67
+ 2.3.12
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Puma::Plugin::Telemetry
2
2
 
3
- Puma plugin adding ability to publish various metrics to your prefered targets.
3
+ Puma plugin which should be able to handle all your metric needs regarding your webserver:
4
+
5
+ - ability to publish basic puma statistics (like queue backlog) to both logs and datadog
6
+ - ability to add custom target whenever you need it
7
+ - ability to monitor puma socket listen queue (!)
8
+ - ability to report requests queue time via custom rack middleware - the time request spent between being accepted by Load Balancer and start of its processing by Puma worker
4
9
 
5
10
  ## Install
6
11
 
@@ -3,7 +3,7 @@
3
3
  module Puma
4
4
  class Plugin
5
5
  module Telemetry
6
- VERSION = '1.1.0'
6
+ VERSION = '1.1.2'
7
7
  end
8
8
  end
9
9
  end
@@ -63,13 +63,14 @@ module Puma
63
63
  #
64
64
  module PluginInstanceMethods
65
65
  def start(launcher)
66
+ @launcher = launcher
67
+
66
68
  unless Puma::Plugin::Telemetry.config.enabled?
67
- launcher.events.log 'plugin=telemetry msg="disabled, exiting..."'
69
+ log_writer.log 'plugin=telemetry msg="disabled, exiting..."'
68
70
  return
69
71
  end
70
72
 
71
- @launcher = launcher
72
- @launcher.events.log 'plugin=telemetry msg="enabled, setting up runner..."'
73
+ log_writer.log 'plugin=telemetry msg="enabled, setting up runner..."'
73
74
 
74
75
  in_background do
75
76
  sleep Puma::Plugin::Telemetry.config.initial_delay
@@ -79,13 +80,13 @@ module Puma
79
80
 
80
81
  def run!
81
82
  loop do
82
- @launcher.events.debug 'plugin=telemetry msg="publish"'
83
+ log_writer.debug 'plugin=telemetry msg="publish"'
83
84
 
84
85
  call(Puma::Plugin::Telemetry.build(@launcher))
85
86
  rescue Errno::EPIPE
86
87
  # Occurs when trying to output to STDOUT while puma is shutting down
87
88
  rescue StandardError => e
88
- @launcher.events.error "plugin=telemetry err=#{e.class} msg=#{e.message.inspect}"
89
+ log_writer.error "plugin=telemetry err=#{e.class} msg=#{e.message.inspect}"
89
90
  ensure
90
91
  sleep Puma::Plugin::Telemetry.config.frequency
91
92
  end
@@ -96,6 +97,16 @@ module Puma
96
97
  target.call(telemetry)
97
98
  end
98
99
  end
100
+
101
+ private
102
+
103
+ def log_writer
104
+ if Puma::Const::PUMA_VERSION.to_i < 6
105
+ @launcher.events
106
+ else
107
+ @launcher.log_writer
108
+ end
109
+ end
99
110
  end
100
111
  end
101
112
  end
@@ -2,16 +2,25 @@
2
2
 
3
3
  require_relative 'lib/puma/plugin/telemetry/version'
4
4
 
5
- Gem::Specification.new do |spec|
6
- spec.name = 'puma-plugin-telemetry'
7
- spec.version = Puma::Plugin::Telemetry::VERSION
8
- spec.authors = ['Leszek Zalewski']
9
- spec.email = ['tnt@babbel.com']
5
+ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
6
+ spec.name = 'puma-plugin-telemetry'
7
+ spec.version = Puma::Plugin::Telemetry::VERSION
8
+ spec.authors = ['Leszek Zalewski']
9
+ spec.email = ['tnt@babbel.com']
10
10
 
11
- spec.license = 'MIT'
11
+ spec.license = 'MIT'
12
12
 
13
13
  spec.summary = 'Puma plugin, adding ability to publish various metrics to your prefered targets.'
14
- spec.homepage = 'https://github.com/babbel/puma-plugin-telemetry'
14
+ spec.description = <<~TXT
15
+ Puma plugin which should be able to handle all your metric needs regarding your webserver:
16
+
17
+ - ability to publish basic puma statistics (like queue backlog) to both logs and datadog
18
+ - ability to add custom target whenever you need it
19
+ - ability to monitor puma socket listen queue (!)
20
+ - ability to report requests queue time via custom rack middleware - the time request spent between being accepted by Load Balancer and start of its processing by Puma worker
21
+ TXT
22
+
23
+ spec.homepage = 'https://github.com/babbel/puma-plugin-telemetry'
15
24
 
16
25
  spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
17
26
 
@@ -30,5 +39,5 @@ Gem::Specification.new do |spec|
30
39
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
40
  spec.require_paths = ['lib']
32
41
 
33
- spec.add_dependency 'puma', '>= 5.0'
42
+ spec.add_dependency 'puma', '< 7'
34
43
  end
metadata CHANGED
@@ -1,30 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma-plugin-telemetry
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leszek Zalewski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-22 00:00:00.000000000 Z
11
+ date: 2022-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puma
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "<"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '7'
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: '5.0'
27
- description:
26
+ version: '7'
27
+ description: |
28
+ Puma plugin which should be able to handle all your metric needs regarding your webserver:
29
+
30
+ - ability to publish basic puma statistics (like queue backlog) to both logs and datadog
31
+ - ability to add custom target whenever you need it
32
+ - ability to monitor puma socket listen queue (!)
33
+ - ability to report requests queue time via custom rack middleware - the time request spent between being accepted by Load Balancer and start of its processing by Puma worker
28
34
  email:
29
35
  - tnt@babbel.com
30
36
  executables: []
@@ -81,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
87
  - !ruby/object:Gem::Version
82
88
  version: '0'
83
89
  requirements: []
84
- rubygems_version: 3.2.27
90
+ rubygems_version: 3.0.3
85
91
  signing_key:
86
92
  specification_version: 4
87
93
  summary: Puma plugin, adding ability to publish various metrics to your prefered targets.