appsignal 3.0.4 → 3.0.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: adfc426b4de03866b5598de0917060befa98d748ef29ca3ddf91ce2c2038550a
4
- data.tar.gz: 9eb6f73987c6430543a3456d3931e861d9959a24ea2416c51a6a64004926dbd5
3
+ metadata.gz: 40235bf15979f6db3bea6f7e6258f36f1b7a00d19231d3f9a8a10a24aa55d89b
4
+ data.tar.gz: d71d1a3fbfc1f04a67e28f372aefba58151eef1b4ff1faa16a968cb07b9ea4a8
5
5
  SHA512:
6
- metadata.gz: e9242f6fb0b269ddfcf90bccea590573c2f4bca81790723c3fa198caa4a2eca9311daea2da37eb091440578f4d98771f25d96123286ffa48a54d9d640c7652a0
7
- data.tar.gz: 19c4e6886eae5303d0a34736ca22b1fed49e5b20e959b321eb4205d59f27b8c38150c484d58817c67652603495ab76aec51ac710e1de82026c257e4fabc98325
6
+ metadata.gz: 8f7b4e86ae1edaad2f534b1370aab274ce7b2c89b1f98705b4bfbafe6d553df98a1a264878a7f1a027187b50d5851dfecbaab99168388f04fc4f093ccb50827d
7
+ data.tar.gz: 149b5769caba01d5411ed4933c905eafb3b4e0c84e2797a36b1a82ee6f8cf6f1adfc068726eee5bc435a3005c98b0c6a1e780bd6bdcd3f99d6d2cb199f24097b
data/CHANGELOG.md CHANGED
@@ -1,4 +1,34 @@
1
- # Changelog
1
+ # AppSignal for Ruby gem Changelog
2
+
3
+ ## 3.0.9
4
+
5
+ - [44dd4bdc](https://github.com/appsignal/appsignal-ruby/commit/44dd4bdc824ec88337b75791c1870358a4aa274f) patch - Check Rails.backtrace_cleaner method before calling the method. This prevents a NoMethodError from being raised in some edge cases.
6
+
7
+ ## 3.0.8
8
+
9
+ - [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).
10
+
11
+ ## 3.0.7
12
+
13
+ - [27f9b178](https://github.com/appsignal/appsignal-ruby/commit/27f9b178c20006ee15e69bdf878f3a0c9975b1f4) patch - Bump agent to 6caf6d0. Replaces curl HTTP client and includes various other maintenance updates.
14
+ - [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.
15
+
16
+ ```
17
+ # config/puma.rb
18
+ plugin :appsignal
19
+ extra_runtime_dependencies ["appsignal"]
20
+ ```
21
+
22
+ ## 3.0.6
23
+
24
+ - [d354d79b](https://github.com/appsignal/appsignal-ruby/commit/d354d79b293fd549e66cae60d805d1b1e9e9d2d8) patch - Add Excon integration. Track requests and responses from the Excon gem.
25
+ - [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>")`.
26
+
27
+ ## 3.0.5
28
+
29
+ - [4bddac36](https://github.com/appsignal/appsignal-ruby/commit/4bddac3618ccea03c165eec53cee90e222b68cd6) patch - Skip empty HTTP proxy config. When any of the HTTP proxy config returns an
30
+ empty string, skip this config. This fixes installation issues where an empty
31
+ String is used as a HTTP proxy, causing a RuntimeError upon installation.
2
32
 
3
33
  ## 3.0.4
4
34
 
@@ -6,22 +36,22 @@
6
36
  these messages in debug mode. This should reduce the noise for users running
7
37
  AppSignal with the STDOUT logger, such as is the default on Heroku.
8
38
 
9
- # 3.0.3
39
+ ## 3.0.3
10
40
  - Fix deprecation message for set_error namespace argument. PR #712
11
41
  - Fix example code for Transaction#set_namespace method. PR #713
12
42
  - Fix extension fallbacks on extension installation failure, that caused
13
43
  - NoMethodErrors. PR #720
14
44
  - Bump agent to v-75e76ad. PR #721
15
45
 
16
- # 3.0.2
46
+ ## 3.0.2
17
47
  - Fix error on Rails boot when `enable_frontend_error_catching` is `true`.
18
48
  PR #711
19
49
 
20
- # 3.0.1
50
+ ## 3.0.1
21
51
  - Fix error occurring on APPSIGNAL_DNS_SERVER environment variable option
22
52
  parsing. PR #709
23
53
 
24
- # 3.0.0
54
+ ## 3.0.0
25
55
 
26
56
  Please read our [upgrade from version 2 to 3 guide][upgrade3] before upgrading.
27
57
 
@@ -37,46 +67,46 @@ Please read our [upgrade from version 2 to 3 guide][upgrade3] before upgrading.
37
67
  - Add Sidekiq error handler. Report more Sidekiq errors that happen around job
38
68
  execution. PR #699
39
69
 
40
- # 2.11.9
70
+ ## 2.11.9
41
71
  - Fix and simplify Ruby method delegation for object method instrumentation in
42
72
  the different Ruby versions. PR #706
43
73
 
44
- # 2.11.8
74
+ ## 2.11.8
45
75
  - Mark minutely probe thread as fork-safe by @pixeltrix. PR #704
46
76
 
47
- # 2.11.7
77
+ ## 2.11.7
48
78
  - Fix ActionCable integration in test environment using `stub_connection`.
49
79
  PR #705
50
80
 
51
- # 2.11.6
81
+ ## 2.11.6
52
82
  - Prepend Sidekiq middleware to wrap all Sidekiq middleware. Catches more
53
83
  errors and provide more complete performance measurements. PR #698
54
84
 
55
- # 2.11.5
85
+ ## 2.11.5
56
86
  - Add more detailed logging to finish_event calls when the event is unknown, so
57
87
  we know what event is being tried to finish. Commit
58
88
  c888a04d1b9ac947652b29c111c650fb5a5cf71c
59
89
 
60
- # 2.11.4
90
+ ## 2.11.4
61
91
  - Support Ruby 3.0 for Object method instrumentation with keyword arguments
62
92
  (https://docs.appsignal.com/ruby/instrumentation/method-instrumentation.html)
63
93
  PR #693
64
94
 
65
- # 2.11.3
95
+ ## 2.11.3
66
96
  - Support Shoryuken batch workers. PR #687
67
97
 
68
- # 2.11.2
98
+ ## 2.11.2
69
99
  - Support Ruby 3.0. PR #681
70
100
  - Support breadcrumbs. PR #666
71
101
  - Log Ruby errors on extension download. PR #679
72
102
  - Fix Ruby 1.9 build. PR #680
73
103
 
74
- # 2.11.1
104
+ ## 2.11.1
75
105
  - Support AS notifications instrumenters that use `start` and `finish`.
76
106
  - Updated agent with better logging and an IO stats fix.
77
107
  - ActionMailer magic dashboard
78
108
 
79
- # 2.11.0
109
+ ## 2.11.0
80
110
  - Track queue time regardless of namespace. Support custom namespaces. PR #602
81
111
  - Improve deprecation message from frontend error middleware. PR #620
82
112
  - Report Ruby environment metadata. PR #621, #627, #619, #618
@@ -103,20 +133,20 @@ Please read our [upgrade from version 2 to 3 guide][upgrade3] before upgrading.
103
133
  - Update AuthCheck class to use DeprecationMessage helper. PR #649
104
134
  - Print extension load error when AppSignal is loaded. PR #651
105
135
 
106
- # 2.10.12
136
+ ## 2.10.12
107
137
  - Fix `working_directory_path` config option loaded from environment variables.
108
138
  PR #653
109
139
 
110
- # 2.10.11
140
+ ## 2.10.11
111
141
  - Fix extension install report status output in `appsignal diagnose`. PR #636
112
142
  - Support setting a specific configuration file to load with the
113
143
  `Appsignal::Config` initializer. PR #638
114
144
 
115
- # 2.10.10
145
+ ## 2.10.10
116
146
  - Bump agent to v-4548c88. PR #634
117
147
  - Fix issue with host metrics values being reported as "Infinity".
118
148
 
119
- # 2.10.9
149
+ ## 2.10.9
120
150
  - Use http proxy if configured when downloading agent. PR #606
121
151
  - Clear event details cache every 48 hours.
122
152
  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/ext/agent.yml CHANGED
@@ -1,62 +1,69 @@
1
1
  ---
2
- version: 75e76ad
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: 81edea50b934fe5b42c0081a1de5782bc477c321c1c76127d7fa525917f70a04
9
+ checksum: c279d061ac04b53c8e2ea21b7714d4d54964495124ddc7e794ba998366f9c195
10
10
  filename: appsignal-x86_64-darwin-all-static.tar.gz
11
11
  dynamic:
12
- checksum: 60befd59ac704ee21d5881ca0aef6b38caa50b1d1972425bf8f40b4f9710ec1e
12
+ checksum: 52284dd2e073e5252363f18f8668cf17d82befe65bfa4376f8d4f61f6e08ece9
13
13
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
14
14
  universal-darwin:
15
15
  static:
16
- checksum: 81edea50b934fe5b42c0081a1de5782bc477c321c1c76127d7fa525917f70a04
16
+ checksum: c279d061ac04b53c8e2ea21b7714d4d54964495124ddc7e794ba998366f9c195
17
17
  filename: appsignal-x86_64-darwin-all-static.tar.gz
18
18
  dynamic:
19
- checksum: 60befd59ac704ee21d5881ca0aef6b38caa50b1d1972425bf8f40b4f9710ec1e
19
+ checksum: 52284dd2e073e5252363f18f8668cf17d82befe65bfa4376f8d4f61f6e08ece9
20
20
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
21
+ aarch64-linux:
22
+ static:
23
+ checksum: 3054b6e3bcab8c8959d4e87eb6fd9fc7a5821e0986c8e733154c2b76251c9e70
24
+ filename: appsignal-aarch64-linux-all-static.tar.gz
25
+ dynamic:
26
+ checksum: 50f96493c1d81dbb0910581598e0d97a8567a3bc6b27a17dbb14d01c97bf7b7c
27
+ filename: appsignal-aarch64-linux-all-dynamic.tar.gz
21
28
  i686-linux:
22
29
  static:
23
- checksum: 60ad6a1f69c8f89b5642f49fbf794409e8ada7d63a9126b2c59832c2a92d5b22
30
+ checksum: 30554989a59632cdaf8fdf5d15024b866d32930e91c080425955842e8078952b
24
31
  filename: appsignal-i686-linux-all-static.tar.gz
25
32
  dynamic:
26
- checksum: aedf259de392ea00fd17bc30924cde70d9a1d82a62c6eeefc881cd5ea5dcce63
33
+ checksum: 437e24a97738995375c18559220fc30b6b9599cfc9339d5a410225e7fdfeb875
27
34
  filename: appsignal-i686-linux-all-dynamic.tar.gz
28
35
  x86-linux:
29
36
  static:
30
- checksum: 60ad6a1f69c8f89b5642f49fbf794409e8ada7d63a9126b2c59832c2a92d5b22
37
+ checksum: 30554989a59632cdaf8fdf5d15024b866d32930e91c080425955842e8078952b
31
38
  filename: appsignal-i686-linux-all-static.tar.gz
32
39
  dynamic:
33
- checksum: aedf259de392ea00fd17bc30924cde70d9a1d82a62c6eeefc881cd5ea5dcce63
40
+ checksum: 437e24a97738995375c18559220fc30b6b9599cfc9339d5a410225e7fdfeb875
34
41
  filename: appsignal-i686-linux-all-dynamic.tar.gz
35
42
  x86_64-linux:
36
43
  static:
37
- checksum: 7e3cf760f9bd364a6602f05e5014ce1c8e8ac9a97f7a533769711e0fb21e1f45
44
+ checksum: f11fa7ec493c3668e965ef4cff077d44fe55101197a5eeaf50ccacf7314eba2b
38
45
  filename: appsignal-x86_64-linux-all-static.tar.gz
39
46
  dynamic:
40
- checksum: 4a9a4ea22abc93c3afa7d5bfd6f442cd69bf4d672e8db2df1aa2157cfb3fcc4b
47
+ checksum: bc7991b388eb541eddc26d8272738b4d9befa594f4b73a222b425e0ee7b6157d
41
48
  filename: appsignal-x86_64-linux-all-dynamic.tar.gz
42
49
  x86_64-linux-musl:
43
50
  static:
44
- checksum: 4d4dd00607cbe0fb4d14a15e74990f207eba90134c2d1a079b58f0d50f1ab76b
51
+ checksum: 0dae02e77e244275b69bb8332e79bdcb0e0fa3b6b6f84744780ce0baffa9784f
45
52
  filename: appsignal-x86_64-linux-musl-all-static.tar.gz
46
53
  dynamic:
47
- checksum: 067a6d821e220c9c88ceb8f936390ce458fa94f41c13d32603d773485a8cdfd2
54
+ checksum: a56f3e3cb6e30e638f91f14ba69ae1b5086bb566dedb6f0c630be24834a8fd4f
48
55
  filename: appsignal-x86_64-linux-musl-all-dynamic.tar.gz
49
56
  x86_64-freebsd:
50
57
  static:
51
- checksum: 176bc1ff1ad40a585ea10456a8ae3f6502c614d713dcbb957d550fa1ae44e7ca
58
+ checksum: d9146a04bbbb85dccf22c84cacfa924ee8b7e2ff8ed79402aba14ac4333e440f
52
59
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
53
60
  dynamic:
54
- checksum: 88c6f3e03f8f6c25a4705f7d6c4286eaa563069a9fb8fad3c0a19e5b9a09f80b
61
+ checksum: e231e106695160525e3f920e781c37f9d5875a3eacc18c38a0264c4b7f9c69bf
55
62
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
56
63
  amd64-freebsd:
57
64
  static:
58
- checksum: 176bc1ff1ad40a585ea10456a8ae3f6502c614d713dcbb957d550fa1ae44e7ca
65
+ checksum: d9146a04bbbb85dccf22c84cacfa924ee8b7e2ff8ed79402aba14ac4333e440f
59
66
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
60
67
  dynamic:
61
- checksum: 88c6f3e03f8f6c25a4705f7d6c4286eaa563069a9fb8fad3c0a19e5b9a09f80b
68
+ checksum: e231e106695160525e3f920e781c37f9d5875a3eacc18c38a0264c4b7f9c69bf
62
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
 
@@ -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
@@ -3,12 +3,15 @@
3
3
  module Appsignal
4
4
  module Integrations
5
5
  module RedisIntegration
6
- def process(commands, &block)
7
- sanitized_commands = commands.map do |command, *args|
8
- "#{command}#{" ?" * args.size}"
9
- end.join("\n")
6
+ def write(command)
7
+ sanitized_command =
8
+ if command[0] == :eval
9
+ "#{command[1]}#{" ?" * (command.size - 3)}"
10
+ else
11
+ "#{command[0]}#{" ?" * (command.size - 1)}"
12
+ end
10
13
 
11
- Appsignal.instrument "query.redis", id, sanitized_commands do
14
+ Appsignal.instrument "query.redis", id, sanitized_command do
12
15
  super
13
16
  end
14
17
  end