appsignal 3.0.4.alpha.1-java → 3.0.8-java

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: f096427788199cfe1864a7491a334040988fe7f75286d5205eaf385e6b0fc0d9
4
- data.tar.gz: 3ff05977c1e08ee51f930ac28230cef79a0f55c84efcaf51d8ac467d8bf50f3b
3
+ metadata.gz: c21f65e52130971841b4dff9733899697b5756b44b6d86da032577a2a8ca335f
4
+ data.tar.gz: b07e52344f13961121c3427f14d5c87e503287c7e475a3bdffb08303d477c985
5
5
  SHA512:
6
- metadata.gz: f9385b7c0f341ff9103afa71ca35ecf94005733515bf164686b8b48d2ba2950d029370842a4cc75c3a9da881d14ee786df8735cd0658605492f1394832dfcec2
7
- data.tar.gz: 4c195dd60db1ecd9ed6335d59ba53d511f041959ff2dfa020107cd60bf9e3e494cff5fa3bfa73bb137aebdc8452807712a40b0e76fada01d5085a4388f58009e
6
+ metadata.gz: d4f7bc77f7a609740dba857047edf64d9c973bb8a6d5372f81808872e7f5a3219c9f6f351b2e130a4f1db054be9bde938a35d61165541cbe3ddb6baea10025eb
7
+ data.tar.gz: 3dbf154339dc4094a73f066440fa84d401aa868474042769529ff249d09721b18b11207ccc18099a9d99e1aae7c50da17b79b7c896dbe42b19419d6b097ce74b
data/CHANGELOG.md CHANGED
@@ -1,27 +1,53 @@
1
- # Changelog
1
+ # AppSignal for Ruby gem Changelog
2
2
 
3
- # 3.0.4 beta 1
4
- - Bump agent to 6caf6d0
5
- - Add aarch64 (ARM 64-bit Linux) build.
6
- - Replace curl HTTP client.
7
- - Various other maintenance updates.
3
+ ## 3.0.8
8
4
 
9
- # 3.0.3
5
+ - [5f94712d](https://github.com/appsignal/appsignal-ruby/commit/5f94712d3406898f58bea133b8bf3578d6fbbe22) patch - Add the `APPSIGNAL_BUILD_FOR_LINUX_ARM` flag to allow users to enable the experimental Linux ARM build for 64-bit hosts. Usage: `export APPSIGNAL_BUILD_FOR_LINUX_ARM=1 bundle install`. Please be aware this is an experimental build. Please report any issue you may encounter at our [support email](mailto:support@appsignal.com).
6
+
7
+ ## 3.0.7
8
+
9
+ - [27f9b178](https://github.com/appsignal/appsignal-ruby/commit/27f9b178c20006ee15e69bdf878f3a0c9975b1f4) patch - Bump agent to 6caf6d0. Replaces curl HTTP client and includes various other maintenance updates.
10
+ - [665d883a](https://github.com/appsignal/appsignal-ruby/commit/665d883a529e5c14b28e73eeb3ae6410deb3e182) patch - Improve Puma plugin stats collection. Instead of starting the AppSignal gem in the main process we send the stats to the AppSignal agent directly using StatsD. This should improve compatibility with phased restarts. If you use `prune_bundler`, you will need to add AppSignal to the extra `extra_runtime_dependencies` list.
11
+
12
+ ```
13
+ # config/puma.rb
14
+ plugin :appsignal
15
+ extra_runtime_dependencies ["appsignal"]
16
+ ```
17
+
18
+ ## 3.0.6
19
+
20
+ - [d354d79b](https://github.com/appsignal/appsignal-ruby/commit/d354d79b293fd549e66cae60d805d1b1e9e9d2d8) patch - Add Excon integration. Track requests and responses from the Excon gem.
21
+ - [4c32e818](https://github.com/appsignal/appsignal-ruby/commit/4c32e8180b797d7987c67b68720c6a5d22935333) patch - Support Redis eval statements better by showing the actual script that was performed. Instead of showing `eval ? ? ?` (for a script with 2 arguments), show `<script> ? ?`, where `<script>` is whatever script was sent to `Redis.new.eval("<script>")`.
22
+
23
+ ## 3.0.5
24
+
25
+ - [4bddac36](https://github.com/appsignal/appsignal-ruby/commit/4bddac3618ccea03c165eec53cee90e222b68cd6) patch - Skip empty HTTP proxy config. When any of the HTTP proxy config returns an
26
+ empty string, skip this config. This fixes installation issues where an empty
27
+ String is used as a HTTP proxy, causing a RuntimeError upon installation.
28
+
29
+ ## 3.0.4
30
+
31
+ - [6338e822](https://github.com/appsignal/appsignal-ruby/commit/6338e8227c674ea7bbe6f55cdfde784fa9f5048f) patch - Drop logger level to debug. Reduce the output on the "info" level and only show
32
+ these messages in debug mode. This should reduce the noise for users running
33
+ AppSignal with the STDOUT logger, such as is the default on Heroku.
34
+
35
+ ## 3.0.3
10
36
  - Fix deprecation message for set_error namespace argument. PR #712
11
37
  - Fix example code for Transaction#set_namespace method. PR #713
12
38
  - Fix extension fallbacks on extension installation failure, that caused
13
39
  - NoMethodErrors. PR #720
14
40
  - Bump agent to v-75e76ad. PR #721
15
41
 
16
- # 3.0.2
42
+ ## 3.0.2
17
43
  - Fix error on Rails boot when `enable_frontend_error_catching` is `true`.
18
44
  PR #711
19
45
 
20
- # 3.0.1
46
+ ## 3.0.1
21
47
  - Fix error occurring on APPSIGNAL_DNS_SERVER environment variable option
22
48
  parsing. PR #709
23
49
 
24
- # 3.0.0
50
+ ## 3.0.0
25
51
 
26
52
  Please read our [upgrade from version 2 to 3 guide][upgrade3] before upgrading.
27
53
 
@@ -37,46 +63,46 @@ Please read our [upgrade from version 2 to 3 guide][upgrade3] before upgrading.
37
63
  - Add Sidekiq error handler. Report more Sidekiq errors that happen around job
38
64
  execution. PR #699
39
65
 
40
- # 2.11.9
66
+ ## 2.11.9
41
67
  - Fix and simplify Ruby method delegation for object method instrumentation in
42
68
  the different Ruby versions. PR #706
43
69
 
44
- # 2.11.8
70
+ ## 2.11.8
45
71
  - Mark minutely probe thread as fork-safe by @pixeltrix. PR #704
46
72
 
47
- # 2.11.7
73
+ ## 2.11.7
48
74
  - Fix ActionCable integration in test environment using `stub_connection`.
49
75
  PR #705
50
76
 
51
- # 2.11.6
77
+ ## 2.11.6
52
78
  - Prepend Sidekiq middleware to wrap all Sidekiq middleware. Catches more
53
79
  errors and provide more complete performance measurements. PR #698
54
80
 
55
- # 2.11.5
81
+ ## 2.11.5
56
82
  - Add more detailed logging to finish_event calls when the event is unknown, so
57
83
  we know what event is being tried to finish. Commit
58
84
  c888a04d1b9ac947652b29c111c650fb5a5cf71c
59
85
 
60
- # 2.11.4
86
+ ## 2.11.4
61
87
  - Support Ruby 3.0 for Object method instrumentation with keyword arguments
62
88
  (https://docs.appsignal.com/ruby/instrumentation/method-instrumentation.html)
63
89
  PR #693
64
90
 
65
- # 2.11.3
91
+ ## 2.11.3
66
92
  - Support Shoryuken batch workers. PR #687
67
93
 
68
- # 2.11.2
94
+ ## 2.11.2
69
95
  - Support Ruby 3.0. PR #681
70
96
  - Support breadcrumbs. PR #666
71
97
  - Log Ruby errors on extension download. PR #679
72
98
  - Fix Ruby 1.9 build. PR #680
73
99
 
74
- # 2.11.1
100
+ ## 2.11.1
75
101
  - Support AS notifications instrumenters that use `start` and `finish`.
76
102
  - Updated agent with better logging and an IO stats fix.
77
103
  - ActionMailer magic dashboard
78
104
 
79
- # 2.11.0
105
+ ## 2.11.0
80
106
  - Track queue time regardless of namespace. Support custom namespaces. PR #602
81
107
  - Improve deprecation message from frontend error middleware. PR #620
82
108
  - Report Ruby environment metadata. PR #621, #627, #619, #618
@@ -103,20 +129,20 @@ Please read our [upgrade from version 2 to 3 guide][upgrade3] before upgrading.
103
129
  - Update AuthCheck class to use DeprecationMessage helper. PR #649
104
130
  - Print extension load error when AppSignal is loaded. PR #651
105
131
 
106
- # 2.10.12
132
+ ## 2.10.12
107
133
  - Fix `working_directory_path` config option loaded from environment variables.
108
134
  PR #653
109
135
 
110
- # 2.10.11
136
+ ## 2.10.11
111
137
  - Fix extension install report status output in `appsignal diagnose`. PR #636
112
138
  - Support setting a specific configuration file to load with the
113
139
  `Appsignal::Config` initializer. PR #638
114
140
 
115
- # 2.10.10
141
+ ## 2.10.10
116
142
  - Bump agent to v-4548c88. PR #634
117
143
  - Fix issue with host metrics values being reported as "Infinity".
118
144
 
119
- # 2.10.9
145
+ ## 2.10.9
120
146
  - Use http proxy if configured when downloading agent. PR #606
121
147
  - Clear event details cache every 48 hours.
122
148
  Commit eb5e899db69fcd7cfa221567bfd6ac04f2654c9c
data/README.md CHANGED
@@ -161,9 +161,13 @@ systems][supported-systems] page.
161
161
 
162
162
  Following the process below to release a new version of the Ruby gem.
163
163
 
164
- 1. Run: `rake publish`
165
- 1. Update the Ruby gem version number when prompted.
166
- 1. Update the `CHANGELOG` file with the changes since the last release.
164
+ 1. Make sure [mono](https://github.com/appsignal/mono/) is installed by
165
+ following the installation instructions.
166
+ 1. Run: `mono publish`
167
+ - Mono will automatically bump the version number based on the
168
+ `.changesets/`.
169
+ - Mono will automatically update the `CHANGELOG.md` file based on the
170
+ `.changesets/`.
167
171
  1. Confirm with your two-factor authentication token for Rubygems.org, _twice_.
168
172
 
169
173
  ## Development
@@ -176,6 +180,8 @@ install all possible dependencies.
176
180
  ```bash
177
181
  # Install Bundler
178
182
  gem install bundler
183
+ # Bootstrap the project
184
+ mono bootstrap
179
185
  # Install the AppSignal extension and _all_ gems we support.
180
186
  bundle exec rake install
181
187
  # Only install the AppSignal extension.
data/appsignal.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem| # rubocop:disable Metrics/BlockLength
15
15
  gem.homepage = "https://github.com/appsignal/appsignal-ruby"
16
16
  gem.license = "MIT"
17
17
 
18
- gem.files = `git ls-files`.split($\) # rubocop:disable Style/SpecialGlobalVars
18
+ gem.files = `git ls-files`.split($\).reject { |f| f.start_with?(".changesets/") } # rubocop:disable Style/SpecialGlobalVars
19
19
  gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
20
20
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
21
21
  gem.name = "appsignal"
data/ext/agent.yml CHANGED
@@ -1,69 +1,69 @@
1
1
  ---
2
- version: 6caf6d0
2
+ version: 9f282f3
3
3
  mirrors:
4
4
  - https://appsignal-agent-releases.global.ssl.fastly.net
5
5
  - https://d135dj0rjqvssy.cloudfront.net
6
6
  triples:
7
7
  x86_64-darwin:
8
8
  static:
9
- checksum: 94b6fb3ba7c68041c0e31867221acccc7d82702a027e5ffc2376bc09c04728f2
9
+ checksum: c279d061ac04b53c8e2ea21b7714d4d54964495124ddc7e794ba998366f9c195
10
10
  filename: appsignal-x86_64-darwin-all-static.tar.gz
11
11
  dynamic:
12
- checksum: dffb70cd2c2fce05df798591d93cc67ccce66237fbaaee18c368b174656cace8
12
+ checksum: 52284dd2e073e5252363f18f8668cf17d82befe65bfa4376f8d4f61f6e08ece9
13
13
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
14
14
  universal-darwin:
15
15
  static:
16
- checksum: 94b6fb3ba7c68041c0e31867221acccc7d82702a027e5ffc2376bc09c04728f2
16
+ checksum: c279d061ac04b53c8e2ea21b7714d4d54964495124ddc7e794ba998366f9c195
17
17
  filename: appsignal-x86_64-darwin-all-static.tar.gz
18
18
  dynamic:
19
- checksum: dffb70cd2c2fce05df798591d93cc67ccce66237fbaaee18c368b174656cace8
19
+ checksum: 52284dd2e073e5252363f18f8668cf17d82befe65bfa4376f8d4f61f6e08ece9
20
20
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
21
21
  aarch64-linux:
22
22
  static:
23
- checksum: 4fa48dba3ce6c2d03105ccdb8ff74908ec1eed40c3bb35357fd197bc70d98fb4
23
+ checksum: 3054b6e3bcab8c8959d4e87eb6fd9fc7a5821e0986c8e733154c2b76251c9e70
24
24
  filename: appsignal-aarch64-linux-all-static.tar.gz
25
25
  dynamic:
26
- checksum: 5d04ed04e89ede3946b411d920875346e1dac42665f0f61ddbe7becbd7a7cba3
26
+ checksum: 50f96493c1d81dbb0910581598e0d97a8567a3bc6b27a17dbb14d01c97bf7b7c
27
27
  filename: appsignal-aarch64-linux-all-dynamic.tar.gz
28
28
  i686-linux:
29
29
  static:
30
- checksum: 849db8eb40ac23bb9c0b0aacadf4a6210f428e5b95e92f93311240bbaf0150d2
30
+ checksum: 30554989a59632cdaf8fdf5d15024b866d32930e91c080425955842e8078952b
31
31
  filename: appsignal-i686-linux-all-static.tar.gz
32
32
  dynamic:
33
- checksum: 251a078aecc6f8e44e4f2a1e09b9bbc481636e324d1dcc3e99d3f13ee3ae8a66
33
+ checksum: 437e24a97738995375c18559220fc30b6b9599cfc9339d5a410225e7fdfeb875
34
34
  filename: appsignal-i686-linux-all-dynamic.tar.gz
35
35
  x86-linux:
36
36
  static:
37
- checksum: 849db8eb40ac23bb9c0b0aacadf4a6210f428e5b95e92f93311240bbaf0150d2
37
+ checksum: 30554989a59632cdaf8fdf5d15024b866d32930e91c080425955842e8078952b
38
38
  filename: appsignal-i686-linux-all-static.tar.gz
39
39
  dynamic:
40
- checksum: 251a078aecc6f8e44e4f2a1e09b9bbc481636e324d1dcc3e99d3f13ee3ae8a66
40
+ checksum: 437e24a97738995375c18559220fc30b6b9599cfc9339d5a410225e7fdfeb875
41
41
  filename: appsignal-i686-linux-all-dynamic.tar.gz
42
42
  x86_64-linux:
43
43
  static:
44
- checksum: 9d09faa4a778040774d02688ce12d1b59af526cc0f25f2a23b3a4fb594972fa0
44
+ checksum: f11fa7ec493c3668e965ef4cff077d44fe55101197a5eeaf50ccacf7314eba2b
45
45
  filename: appsignal-x86_64-linux-all-static.tar.gz
46
46
  dynamic:
47
- checksum: 13bd67e2a1ae718390c5ba61e03ab7d39f9203de6caa8f3be798e104de49a33a
47
+ checksum: bc7991b388eb541eddc26d8272738b4d9befa594f4b73a222b425e0ee7b6157d
48
48
  filename: appsignal-x86_64-linux-all-dynamic.tar.gz
49
49
  x86_64-linux-musl:
50
50
  static:
51
- checksum: 2dcbbf8306f29cc0b32e9665509af43f272dabac632a7d66cfab68f84eb82e63
51
+ checksum: 0dae02e77e244275b69bb8332e79bdcb0e0fa3b6b6f84744780ce0baffa9784f
52
52
  filename: appsignal-x86_64-linux-musl-all-static.tar.gz
53
53
  dynamic:
54
- checksum: aa71dd709e47114950a1dbfa8eb9ab02c989efd69c8dde50adabfac035f40a7b
54
+ checksum: a56f3e3cb6e30e638f91f14ba69ae1b5086bb566dedb6f0c630be24834a8fd4f
55
55
  filename: appsignal-x86_64-linux-musl-all-dynamic.tar.gz
56
56
  x86_64-freebsd:
57
57
  static:
58
- checksum: e439baee1a4445c0eb8028638bbcc19fe6387457c41f9fad93d9fc142d904518
58
+ checksum: d9146a04bbbb85dccf22c84cacfa924ee8b7e2ff8ed79402aba14ac4333e440f
59
59
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
60
60
  dynamic:
61
- checksum: '08e0f625e22dea0d5121dbacff417ab1c929cae7610e8aac3cf04b862d61d934'
61
+ checksum: e231e106695160525e3f920e781c37f9d5875a3eacc18c38a0264c4b7f9c69bf
62
62
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
63
63
  amd64-freebsd:
64
64
  static:
65
- checksum: e439baee1a4445c0eb8028638bbcc19fe6387457c41f9fad93d9fc142d904518
65
+ checksum: d9146a04bbbb85dccf22c84cacfa924ee8b7e2ff8ed79402aba14ac4333e440f
66
66
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
67
67
  dynamic:
68
- checksum: '08e0f625e22dea0d5121dbacff417ab1c929cae7610e8aac3cf04b862d61d934'
68
+ checksum: e231e106695160525e3f920e781c37f9d5875a3eacc18c38a0264c4b7f9c69bf
69
69
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
data/ext/base.rb CHANGED
@@ -11,8 +11,9 @@ EXT_PATH = File.expand_path("..", __FILE__).freeze
11
11
  AGENT_CONFIG = YAML.load(File.read(File.join(EXT_PATH, "agent.yml"))).freeze
12
12
 
13
13
  AGENT_PLATFORM = Appsignal::System.agent_platform
14
- ARCH = "#{RbConfig::CONFIG["host_cpu"]}-#{AGENT_PLATFORM}".freeze
15
- ARCH_CONFIG = AGENT_CONFIG["triples"][ARCH].freeze
14
+ AGENT_ARCHITECTURE = Appsignal::System.agent_architecture
15
+ TARGET_TRIPLE = "#{AGENT_ARCHITECTURE}-#{AGENT_PLATFORM}".freeze
16
+ ARCH_CONFIG = AGENT_CONFIG["triples"][TARGET_TRIPLE].freeze
16
17
  CA_CERT_PATH = File.join(EXT_PATH, "../resources/cacert.pem").freeze
17
18
 
18
19
  def ext_path(path)
@@ -38,9 +39,10 @@ def report
38
39
  "build" => {
39
40
  "time" => Time.now.utc,
40
41
  "package_path" => File.dirname(EXT_PATH),
41
- "architecture" => rbconfig["host_cpu"],
42
+ "architecture" => AGENT_ARCHITECTURE,
42
43
  "target" => AGENT_PLATFORM,
43
44
  "musl_override" => Appsignal::System.force_musl_build?,
45
+ "linux_arm_override" => Appsignal::System.force_linux_arm_build?,
44
46
  "dependencies" => {},
45
47
  "flags" => {}
46
48
  },
@@ -94,11 +96,11 @@ def installation_succeeded?
94
96
  end
95
97
 
96
98
  def check_architecture
97
- if AGENT_CONFIG["triples"].key?(ARCH)
99
+ if AGENT_CONFIG["triples"].key?(TARGET_TRIPLE)
98
100
  true
99
101
  else
100
102
  abort_installation(
101
- "AppSignal currently does not support your system architecture (#{ARCH})." \
103
+ "AppSignal currently does not support your system architecture (#{TARGET_TRIPLE})." \
102
104
  "Please let us know at support@appsignal.com, we aim to support everything our customers run."
103
105
  )
104
106
  end
@@ -184,7 +186,18 @@ def store_download_version_on_report
184
186
  end
185
187
 
186
188
  def http_proxy
187
- Gem.configuration[:http_proxy] || ENV["http_proxy"] || ENV["HTTP_PROXY"]
189
+ proxy = try_http_proxy_value(Gem.configuration[:http_proxy])
190
+ return proxy if proxy
191
+
192
+ proxy = try_http_proxy_value(ENV["http_proxy"])
193
+ return proxy if proxy
194
+
195
+ proxy = try_http_proxy_value(ENV["HTTP_PROXY"])
196
+ return proxy if proxy
197
+ end
198
+
199
+ def try_http_proxy_value(value)
200
+ value if value.respond_to?(:empty?) && !value.strip.empty?
188
201
  end
189
202
 
190
203
  # Fail the installation on purpose in a specific test environment.
@@ -399,6 +399,7 @@ module Appsignal
399
399
  puts " Architecture: #{report["architecture"]}"
400
400
  puts " Target: #{report["target"]}"
401
401
  puts " Musl override: #{report["musl_override"]}"
402
+ puts " Linux ARM override: #{report["linux_arm_override"]}"
402
403
  puts " Library type: #{report["library_type"]}"
403
404
  puts " Source: #{report["source"]}" if report["source"] != "remote"
404
405
  puts " Dependencies: #{report["dependencies"]}"
@@ -416,7 +417,7 @@ module Appsignal
416
417
  rbconfig = RbConfig::CONFIG
417
418
  puts "Host information"
418
419
  data_section :host do
419
- puts_and_save :architecture, "Architecture", rbconfig["host_cpu"]
420
+ puts_and_save :architecture, "Architecture", Appsignal::System.agent_architecture
420
421
 
421
422
  os_label = os = rbconfig["host_os"]
422
423
  os_label = "#{os} (Microsoft Windows is not supported.)" if Gem.win_platform?
@@ -290,6 +290,7 @@ module Appsignal
290
290
  ENV["_APPSIGNAL_FILES_WORLD_ACCESSIBLE"] = config_hash[:files_world_accessible].to_s
291
291
  ENV["_APPSIGNAL_TRANSACTION_DEBUG_MODE"] = config_hash[:transaction_debug_mode].to_s
292
292
  ENV["_APPSIGNAL_SEND_ENVIRONMENT_METADATA"] = config_hash[:send_environment_metadata].to_s
293
+ ENV["_APPSIGNAL_ENABLE_STATSD"] = "true"
293
294
  ENV["_APP_REVISION"] = config_hash[:revision].to_s
294
295
  end
295
296
 
@@ -32,7 +32,7 @@ module Appsignal
32
32
  return unless dependencies_present?
33
33
  return if installed?
34
34
 
35
- Appsignal.logger.info("Installing #{name} hook")
35
+ Appsignal.logger.debug("Installing #{name} hook")
36
36
  begin
37
37
  install
38
38
  @installed = true
@@ -108,3 +108,4 @@ require "appsignal/hooks/mongo_ruby_driver"
108
108
  require "appsignal/hooks/webmachine"
109
109
  require "appsignal/hooks/data_mapper"
110
110
  require "appsignal/hooks/que"
111
+ require "appsignal/hooks/excon"
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appsignal
4
+ class Hooks
5
+ # @api private
6
+ class ExconHook < Appsignal::Hooks::Hook
7
+ register :excon
8
+
9
+ def dependencies_present?
10
+ Appsignal.config && defined?(::Excon)
11
+ end
12
+
13
+ def install
14
+ require "appsignal/integrations/excon"
15
+ ::Excon.defaults[:instrumentor] = Appsignal::Integrations::ExconIntegration
16
+ end
17
+ end
18
+ end
19
+ end
@@ -11,23 +11,8 @@ module Appsignal
11
11
  end
12
12
 
13
13
  def install
14
- if ::Puma.respond_to?(:stats) && !defined?(APPSIGNAL_PUMA_PLUGIN_LOADED)
15
- # Only install the minutely probe if a user isn't using our Puma
16
- # plugin, which lives in `lib/puma/appsignal.rb`. This plugin defines
17
- # the {APPSIGNAL_PUMA_PLUGIN_LOADED} constant.
18
- #
19
- # We prefer people use the AppSignal Puma plugin. This fallback is
20
- # only there when users relied on our *magic* integration.
21
- #
22
- # Using the Puma plugin, the minutely probe thread will still run in
23
- # Puma workers, for other non-Puma probes, but the Puma probe only
24
- # runs in the Puma main process.
25
- # For more information:
26
- # https://docs.appsignal.com/ruby/integrations/puma.html
27
- Appsignal::Minutely.probes.register :puma, ::Appsignal::Probes::PumaProbe
28
- end
29
-
30
14
  return unless defined?(::Puma::Cluster)
15
+
31
16
  # For clustered mode with multiple workers
32
17
  ::Puma::Cluster.send(:prepend, Module.new do
33
18
  def stop_workers
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appsignal
4
+ module Integrations
5
+ module ExconIntegration
6
+ def self.instrument(name, data, &block)
7
+ namespace, *event = name.split(".")
8
+ rails_name = [event, namespace].flatten.join(".")
9
+
10
+ title =
11
+ if rails_name == "response.excon"
12
+ data[:host]
13
+ else
14
+ "#{data[:method].to_s.upcase} #{data[:scheme]}://#{data[:host]}"
15
+ end
16
+ Appsignal.instrument(rails_name, title, &block)
17
+ end
18
+ end
19
+ end
20
+ end