appsignal 3.0.0.rc.1-java → 3.0.4-java
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 +4 -4
- data/.semaphore/semaphore.yml +64 -199
- data/CHANGELOG.md +27 -1
- data/Rakefile +12 -4
- data/appsignal.gemspec +19 -4
- data/build_matrix.yml +16 -24
- data/ext/agent.yml +17 -17
- data/gemfiles/capistrano2.gemfile +0 -1
- data/gemfiles/capistrano3.gemfile +0 -1
- data/gemfiles/grape.gemfile +0 -1
- data/gemfiles/no_dependencies.gemfile +2 -6
- data/gemfiles/rails-3.2.gemfile +2 -0
- data/gemfiles/rails-4.2.gemfile +6 -0
- data/gemfiles/resque-2.gemfile +0 -4
- data/gemfiles/sequel-435.gemfile +0 -1
- data/gemfiles/sequel.gemfile +0 -1
- data/gemfiles/sinatra.gemfile +0 -1
- data/lib/appsignal/config.rb +1 -1
- data/lib/appsignal/extension.rb +50 -0
- data/lib/appsignal/helpers/instrumentation.rb +2 -2
- data/lib/appsignal/hooks.rb +1 -1
- data/lib/appsignal/integrations/padrino.rb +1 -1
- data/lib/appsignal/integrations/railtie.rb +1 -5
- data/lib/appsignal/integrations/sinatra.rb +1 -1
- data/lib/appsignal/transaction.rb +2 -2
- data/lib/appsignal/version.rb +1 -1
- data/mono.yml +16 -0
- data/spec/lib/appsignal/cli/diagnose_spec.rb +1 -0
- data/spec/lib/appsignal/config_spec.rb +2 -0
- data/spec/lib/appsignal/extension_install_failure_spec.rb +0 -7
- data/spec/lib/appsignal/extension_spec.rb +43 -9
- data/spec/lib/appsignal/hooks_spec.rb +4 -1
- data/spec/lib/appsignal/transaction_spec.rb +17 -0
- data/spec/lib/appsignal/utils/data_spec.rb +133 -87
- data/spec/lib/appsignal_spec.rb +2 -2
- data/spec/lib/puma/appsignal_spec.rb +1 -1
- data/spec/spec_helper.rb +22 -0
- data/spec/support/testing.rb +11 -1
- data/support/install_deps +9 -8
- metadata +6 -7
- data/gemfiles/rails-4.0.gemfile +0 -6
- data/gemfiles/rails-4.1.gemfile +0 -6
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,37 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.0.4
|
4
|
+
|
5
|
+
- [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
|
6
|
+
these messages in debug mode. This should reduce the noise for users running
|
7
|
+
AppSignal with the STDOUT logger, such as is the default on Heroku.
|
8
|
+
|
9
|
+
# 3.0.3
|
10
|
+
- Fix deprecation message for set_error namespace argument. PR #712
|
11
|
+
- Fix example code for Transaction#set_namespace method. PR #713
|
12
|
+
- Fix extension fallbacks on extension installation failure, that caused
|
13
|
+
- NoMethodErrors. PR #720
|
14
|
+
- Bump agent to v-75e76ad. PR #721
|
15
|
+
|
16
|
+
# 3.0.2
|
17
|
+
- Fix error on Rails boot when `enable_frontend_error_catching` is `true`.
|
18
|
+
PR #711
|
19
|
+
|
20
|
+
# 3.0.1
|
21
|
+
- Fix error occurring on APPSIGNAL_DNS_SERVER environment variable option
|
22
|
+
parsing. PR #709
|
23
|
+
|
3
24
|
# 3.0.0
|
25
|
+
|
26
|
+
Please read our [upgrade from version 2 to 3 guide][upgrade3] before upgrading.
|
27
|
+
|
28
|
+
[upgrade3]: https://docs.appsignal.com/ruby/installation/upgrade-from-2-to-3.html
|
29
|
+
|
4
30
|
- Drop Ruby 1.9 support. PR #683, #682, #688, #694
|
5
31
|
- Require Ruby 2.0 or newer for gem. PR #701
|
6
32
|
- Use Module.prepend for all gem integrations. Fixes #603 in combination with
|
7
33
|
other gems that provide instrumentation for gems. PR #683
|
8
|
-
- Remove deprecated integrations, classes, methods and arguments. PR #685
|
34
|
+
- Remove deprecated integrations, classes, methods and arguments. PR #685, #686
|
9
35
|
- Deprecate `set_error` and `send_error` error helpers `tags` and `namespace`
|
10
36
|
arguments. PR #702
|
11
37
|
- Add Sidekiq error handler. Report more Sidekiq errors that happen around job
|
data/Rakefile
CHANGED
@@ -377,8 +377,6 @@ begin
|
|
377
377
|
is_jruby = defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
|
378
378
|
excludes = []
|
379
379
|
excludes << "spec/lib/appsignal/extension/jruby_spec.rb" unless is_jruby
|
380
|
-
is_ruby19 = RUBY_VERSION < "2.0"
|
381
|
-
excludes << "spec/lib/appsignal/integrations/object_spec.rb" if is_ruby19
|
382
380
|
exclude_pattern = "--exclude-pattern=#{excludes.join(",")}" if excludes.any?
|
383
381
|
|
384
382
|
desc "Run the AppSignal gem test suite."
|
@@ -387,10 +385,20 @@ begin
|
|
387
385
|
end
|
388
386
|
|
389
387
|
namespace :test do
|
390
|
-
|
391
|
-
RSpec::Core::RakeTask.new :failure do |t|
|
388
|
+
RSpec::Core::RakeTask.new :rspec_failure do |t|
|
392
389
|
t.rspec_opts = "#{exclude_pattern} --tag extension_installation_failure"
|
393
390
|
end
|
391
|
+
|
392
|
+
desc "Intentionally fail the extension installation"
|
393
|
+
task :prepare_failure do
|
394
|
+
# ENV var to make sure installation fails on purpurse
|
395
|
+
ENV["_TEST_APPSIGNAL_EXTENSION_FAILURE"] = "true"
|
396
|
+
# Run extension installation with intentional failure
|
397
|
+
`rake extension:install`
|
398
|
+
end
|
399
|
+
|
400
|
+
desc "Run the Appsignal gem test in an extension failure scenario"
|
401
|
+
task :failure => [:prepare_failure, :rspec_failure]
|
394
402
|
end
|
395
403
|
rescue LoadError # rubocop:disable Lint/HandleExceptions
|
396
404
|
# When running rake install, there is no RSpec yet.
|
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"
|
@@ -42,9 +42,24 @@ Gem::Specification.new do |gem| # rubocop:disable Metrics/BlockLength
|
|
42
42
|
gem.add_development_dependency "timecop"
|
43
43
|
gem.add_development_dependency "webmock"
|
44
44
|
gem.add_development_dependency "yard", ">= 0.9.20"
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
gem.add_development_dependency "pry"
|
46
|
+
|
47
|
+
# Dependencies that need to be locked to a specific version in developement
|
48
|
+
ruby_version = Gem::Version.new(RUBY_VERSION)
|
49
|
+
if ruby_version > Gem::Version.new("2.5.0")
|
50
|
+
# RuboCop dependency parallel depends on Ruby > 2.4
|
48
51
|
gem.add_development_dependency "rubocop", "0.50.0"
|
49
52
|
end
|
53
|
+
if ruby_version < Gem::Version.new("2.1.0")
|
54
|
+
# Newer versions of rexml use keyword arguments with optional arguments which
|
55
|
+
# work in Ruby 2.1 and newer.
|
56
|
+
gem.add_development_dependency "rexml", "3.2.4"
|
57
|
+
end
|
58
|
+
if ruby_version < Gem::Version.new("2.1.0")
|
59
|
+
# public_suffix 3.0 and newer don't support Ruby < 2.1
|
60
|
+
gem.add_development_dependency "public_suffix", "~> 2.0.5"
|
61
|
+
elsif ruby_version < Gem::Version.new("2.3.0")
|
62
|
+
# public_suffix 4.0 and newer don't support Ruby < 2.3
|
63
|
+
gem.add_development_dependency "public_suffix", "~> 3.1.1"
|
64
|
+
end
|
50
65
|
end
|
data/build_matrix.yml
CHANGED
@@ -88,6 +88,10 @@ matrix:
|
|
88
88
|
gemsets: # By default all gems are tested
|
89
89
|
none:
|
90
90
|
- "no_dependencies"
|
91
|
+
old_rails:
|
92
|
+
- "no_dependencies"
|
93
|
+
- "rails-3.2"
|
94
|
+
- "rails-4.2"
|
91
95
|
minimal:
|
92
96
|
- "no_dependencies"
|
93
97
|
- "rails-5.2"
|
@@ -97,6 +101,7 @@ matrix:
|
|
97
101
|
- ruby: "2.0.0-p648"
|
98
102
|
rubygems: "2.7.8"
|
99
103
|
bundler: "1.17.3"
|
104
|
+
gems: "old_rails"
|
100
105
|
- ruby: "2.1.10"
|
101
106
|
rubygems: "2.7.8"
|
102
107
|
bundler: "1.17.3"
|
@@ -112,8 +117,8 @@ matrix:
|
|
112
117
|
- ruby: "2.5.8"
|
113
118
|
gems: "minimal"
|
114
119
|
- ruby: "2.6.6"
|
115
|
-
- ruby: "2.7.
|
116
|
-
- ruby: "3.0.
|
120
|
+
- ruby: "2.7.3"
|
121
|
+
- ruby: "3.0.1"
|
117
122
|
- ruby: "jruby-9.1.17.0"
|
118
123
|
gems: "minimal"
|
119
124
|
gems:
|
@@ -122,47 +127,37 @@ matrix:
|
|
122
127
|
- gem: "capistrano3"
|
123
128
|
- gem: "grape"
|
124
129
|
- gem: "padrino"
|
125
|
-
exclude:
|
126
|
-
ruby:
|
127
|
-
- "2.0.0-p648"
|
128
130
|
- gem: "que"
|
129
131
|
- gem: "que_beta"
|
130
|
-
exclude:
|
131
|
-
ruby:
|
132
|
-
- "2.0.0-p648"
|
133
132
|
- gem: "rails-3.2"
|
134
133
|
bundler: "1.17.3"
|
135
134
|
exclude:
|
136
135
|
ruby:
|
137
136
|
- "2.6.6"
|
138
|
-
- "2.7.
|
139
|
-
- "3.0.
|
137
|
+
- "2.7.3"
|
138
|
+
- "3.0.1"
|
140
139
|
- gem: "rails-4.2"
|
141
140
|
bundler: "1.17.3"
|
142
141
|
exclude:
|
143
142
|
ruby:
|
144
143
|
- "2.6.6"
|
145
|
-
- "2.7.
|
146
|
-
- "3.0.
|
144
|
+
- "2.7.3"
|
145
|
+
- "3.0.1"
|
147
146
|
- gem: "rails-5.0"
|
148
147
|
exclude:
|
149
148
|
ruby:
|
150
|
-
- "
|
151
|
-
- "3.0.0"
|
149
|
+
- "3.0.1"
|
152
150
|
- gem: "rails-5.1"
|
153
151
|
exclude:
|
154
152
|
ruby:
|
155
|
-
- "
|
156
|
-
- "3.0.0"
|
153
|
+
- "3.0.1"
|
157
154
|
- gem: "rails-5.2"
|
158
155
|
exclude:
|
159
156
|
ruby:
|
160
|
-
- "
|
161
|
-
- "3.0.0"
|
157
|
+
- "3.0.1"
|
162
158
|
- gem: "rails-6.0"
|
163
159
|
exclude:
|
164
160
|
ruby:
|
165
|
-
- "2.0.0-p648"
|
166
161
|
- "2.1.10"
|
167
162
|
- "2.2.10"
|
168
163
|
- "2.3.8"
|
@@ -172,15 +167,12 @@ matrix:
|
|
172
167
|
bundler: "1.17.3"
|
173
168
|
exclude:
|
174
169
|
ruby:
|
175
|
-
- "3.0.
|
170
|
+
- "3.0.1"
|
176
171
|
- gem: "resque-2"
|
177
|
-
exclude:
|
178
|
-
ruby:
|
179
|
-
- "2.0.0-p648"
|
180
172
|
- gem: "sequel"
|
181
173
|
- gem: "sequel-435"
|
182
174
|
exclude:
|
183
175
|
ruby:
|
184
|
-
- "3.0.
|
176
|
+
- "3.0.1"
|
185
177
|
- gem: "sinatra"
|
186
178
|
- gem: "webmachine"
|
data/ext/agent.yml
CHANGED
@@ -1,62 +1,62 @@
|
|
1
1
|
---
|
2
|
-
version:
|
2
|
+
version: 75e76ad
|
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:
|
9
|
+
checksum: 81edea50b934fe5b42c0081a1de5782bc477c321c1c76127d7fa525917f70a04
|
10
10
|
filename: appsignal-x86_64-darwin-all-static.tar.gz
|
11
11
|
dynamic:
|
12
|
-
checksum:
|
12
|
+
checksum: 60befd59ac704ee21d5881ca0aef6b38caa50b1d1972425bf8f40b4f9710ec1e
|
13
13
|
filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
|
14
14
|
universal-darwin:
|
15
15
|
static:
|
16
|
-
checksum:
|
16
|
+
checksum: 81edea50b934fe5b42c0081a1de5782bc477c321c1c76127d7fa525917f70a04
|
17
17
|
filename: appsignal-x86_64-darwin-all-static.tar.gz
|
18
18
|
dynamic:
|
19
|
-
checksum:
|
19
|
+
checksum: 60befd59ac704ee21d5881ca0aef6b38caa50b1d1972425bf8f40b4f9710ec1e
|
20
20
|
filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
|
21
21
|
i686-linux:
|
22
22
|
static:
|
23
|
-
checksum:
|
23
|
+
checksum: 60ad6a1f69c8f89b5642f49fbf794409e8ada7d63a9126b2c59832c2a92d5b22
|
24
24
|
filename: appsignal-i686-linux-all-static.tar.gz
|
25
25
|
dynamic:
|
26
|
-
checksum:
|
26
|
+
checksum: aedf259de392ea00fd17bc30924cde70d9a1d82a62c6eeefc881cd5ea5dcce63
|
27
27
|
filename: appsignal-i686-linux-all-dynamic.tar.gz
|
28
28
|
x86-linux:
|
29
29
|
static:
|
30
|
-
checksum:
|
30
|
+
checksum: 60ad6a1f69c8f89b5642f49fbf794409e8ada7d63a9126b2c59832c2a92d5b22
|
31
31
|
filename: appsignal-i686-linux-all-static.tar.gz
|
32
32
|
dynamic:
|
33
|
-
checksum:
|
33
|
+
checksum: aedf259de392ea00fd17bc30924cde70d9a1d82a62c6eeefc881cd5ea5dcce63
|
34
34
|
filename: appsignal-i686-linux-all-dynamic.tar.gz
|
35
35
|
x86_64-linux:
|
36
36
|
static:
|
37
|
-
checksum:
|
37
|
+
checksum: 7e3cf760f9bd364a6602f05e5014ce1c8e8ac9a97f7a533769711e0fb21e1f45
|
38
38
|
filename: appsignal-x86_64-linux-all-static.tar.gz
|
39
39
|
dynamic:
|
40
|
-
checksum:
|
40
|
+
checksum: 4a9a4ea22abc93c3afa7d5bfd6f442cd69bf4d672e8db2df1aa2157cfb3fcc4b
|
41
41
|
filename: appsignal-x86_64-linux-all-dynamic.tar.gz
|
42
42
|
x86_64-linux-musl:
|
43
43
|
static:
|
44
|
-
checksum:
|
44
|
+
checksum: 4d4dd00607cbe0fb4d14a15e74990f207eba90134c2d1a079b58f0d50f1ab76b
|
45
45
|
filename: appsignal-x86_64-linux-musl-all-static.tar.gz
|
46
46
|
dynamic:
|
47
|
-
checksum:
|
47
|
+
checksum: 067a6d821e220c9c88ceb8f936390ce458fa94f41c13d32603d773485a8cdfd2
|
48
48
|
filename: appsignal-x86_64-linux-musl-all-dynamic.tar.gz
|
49
49
|
x86_64-freebsd:
|
50
50
|
static:
|
51
|
-
checksum:
|
51
|
+
checksum: 176bc1ff1ad40a585ea10456a8ae3f6502c614d713dcbb957d550fa1ae44e7ca
|
52
52
|
filename: appsignal-x86_64-freebsd-all-static.tar.gz
|
53
53
|
dynamic:
|
54
|
-
checksum:
|
54
|
+
checksum: 88c6f3e03f8f6c25a4705f7d6c4286eaa563069a9fb8fad3c0a19e5b9a09f80b
|
55
55
|
filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
|
56
56
|
amd64-freebsd:
|
57
57
|
static:
|
58
|
-
checksum:
|
58
|
+
checksum: 176bc1ff1ad40a585ea10456a8ae3f6502c614d713dcbb957d550fa1ae44e7ca
|
59
59
|
filename: appsignal-x86_64-freebsd-all-static.tar.gz
|
60
60
|
dynamic:
|
61
|
-
checksum:
|
61
|
+
checksum: 88c6f3e03f8f6c25a4705f7d6c4286eaa563069a9fb8fad3c0a19e5b9a09f80b
|
62
62
|
filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
|
data/gemfiles/grape.gemfile
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rack', '~> 1.6'
|
4
|
-
|
5
3
|
ruby_version = Gem::Version.new(RUBY_VERSION)
|
6
|
-
if ruby_version < Gem::Version.new("2.
|
7
|
-
|
8
|
-
# Ruby 1.9
|
9
|
-
gem "crack", "0.4.4"
|
4
|
+
if ruby_version < Gem::Version.new("2.3.0")
|
5
|
+
gem 'rack', '~> 1.6'
|
10
6
|
end
|
11
7
|
|
12
8
|
gemspec :path => '../'
|
data/gemfiles/rails-3.2.gemfile
CHANGED
data/gemfiles/rails-4.2.gemfile
CHANGED
@@ -13,5 +13,11 @@ end
|
|
13
13
|
if ruby_version < Gem::Version.new("2.1.0")
|
14
14
|
gem 'nokogiri', '~> 1.6.0'
|
15
15
|
end
|
16
|
+
if ruby_version < Gem::Version.new("2.5.0")
|
17
|
+
gem 'sprockets', '~> 3.7.2'
|
18
|
+
end
|
19
|
+
|
20
|
+
gem "minitest", "5.12.0"
|
21
|
+
gem "connection_pool", "2.2.3"
|
16
22
|
|
17
23
|
gemspec :path => '../'
|
data/gemfiles/resque-2.gemfile
CHANGED
data/gemfiles/sequel-435.gemfile
CHANGED
data/gemfiles/sequel.gemfile
CHANGED
data/gemfiles/sinatra.gemfile
CHANGED
data/lib/appsignal/config.rb
CHANGED
@@ -81,7 +81,6 @@ module Appsignal
|
|
81
81
|
ENV_STRING_KEYS = %w[
|
82
82
|
APPSIGNAL_APP_NAME
|
83
83
|
APPSIGNAL_CA_FILE_PATH
|
84
|
-
APPSIGNAL_DNS_SERVERS
|
85
84
|
APPSIGNAL_HOSTNAME
|
86
85
|
APPSIGNAL_HTTP_PROXY
|
87
86
|
APPSIGNAL_LOG
|
@@ -112,6 +111,7 @@ module Appsignal
|
|
112
111
|
].freeze
|
113
112
|
# @api private
|
114
113
|
ENV_ARRAY_KEYS = %w[
|
114
|
+
APPSIGNAL_DNS_SERVERS
|
115
115
|
APPSIGNAL_FILTER_PARAMETERS
|
116
116
|
APPSIGNAL_FILTER_SESSION_DATA
|
117
117
|
APPSIGNAL_IGNORE_ACTIONS
|
data/lib/appsignal/extension.rb
CHANGED
@@ -40,6 +40,16 @@ module Appsignal
|
|
40
40
|
def method_missing(m, *args, &block)
|
41
41
|
super if Appsignal.testing?
|
42
42
|
end
|
43
|
+
|
44
|
+
unless Appsignal.extension_loaded?
|
45
|
+
def data_map_new
|
46
|
+
Appsignal::Extension::MockData.new
|
47
|
+
end
|
48
|
+
|
49
|
+
def data_array_new
|
50
|
+
Appsignal::Extension::MockData.new
|
51
|
+
end
|
52
|
+
end
|
43
53
|
end
|
44
54
|
|
45
55
|
if Appsignal::System.jruby?
|
@@ -62,5 +72,45 @@ module Appsignal
|
|
62
72
|
"#<#{self.class.name}:#{object_id} #{self}>"
|
63
73
|
end
|
64
74
|
end
|
75
|
+
|
76
|
+
# Mock of the {Data} class. This mock is used when the extension cannot be
|
77
|
+
# loaded. This mock listens to all method calls and does nothing, and
|
78
|
+
# prevents NoMethodErrors from being raised.
|
79
|
+
#
|
80
|
+
# Disabled in testing so we can make sure that we don't miss an extension
|
81
|
+
# function implementation.
|
82
|
+
#
|
83
|
+
# This class inherits from the {Data} class so that it passes type checks.
|
84
|
+
class MockData < Data
|
85
|
+
def initialize(*_args)
|
86
|
+
# JRuby extension requirement, as it sends a pointer to the Data object
|
87
|
+
# when creating it
|
88
|
+
end
|
89
|
+
|
90
|
+
def method_missing(_method, *_args, &_block)
|
91
|
+
super if Appsignal.testing?
|
92
|
+
end
|
93
|
+
|
94
|
+
def to_s
|
95
|
+
"{}"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# Mock of the {Transaction} class. This mock is used when the extension
|
100
|
+
# cannot be loaded. This mock listens to all method calls and does nothing,
|
101
|
+
# and prevents NoMethodErrors from being raised.
|
102
|
+
#
|
103
|
+
# Disabled in testing so we can make sure that we don't miss an extension
|
104
|
+
# function implementation.
|
105
|
+
class MockTransaction
|
106
|
+
def initialize(*_args)
|
107
|
+
# JRuby extension requirement, as it sends a pointer to the Transaction
|
108
|
+
# object when creating it
|
109
|
+
end
|
110
|
+
|
111
|
+
def method_missing(_method, *_args, &_block)
|
112
|
+
super if Appsignal.testing?
|
113
|
+
end
|
114
|
+
end
|
65
115
|
end
|
66
116
|
end
|