appsignal 2.11.1-java → 3.0.0.beta.1-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/.rubocop.yml +6 -1
- data/.semaphore/semaphore.yml +197 -23
- data/CHANGELOG.md +25 -0
- data/README.md +9 -0
- data/Rakefile +9 -6
- data/build_matrix.yml +13 -4
- data/ext/agent.yml +17 -17
- data/ext/base.rb +12 -9
- data/gemfiles/no_dependencies.gemfile +7 -0
- data/gemfiles/resque-2.gemfile +0 -1
- data/gemfiles/webmachine.gemfile +1 -0
- data/lib/appsignal.rb +1 -27
- data/lib/appsignal/auth_check.rb +2 -8
- data/lib/appsignal/cli.rb +1 -23
- data/lib/appsignal/cli/diagnose/utils.rb +8 -11
- data/lib/appsignal/cli/install.rb +5 -8
- data/lib/appsignal/config.rb +0 -24
- data/lib/appsignal/event_formatter.rb +0 -25
- data/lib/appsignal/helpers/instrumentation.rb +32 -0
- data/lib/appsignal/hooks.rb +0 -23
- data/lib/appsignal/hooks/action_cable.rb +3 -34
- data/lib/appsignal/hooks/active_support_notifications.rb +7 -86
- data/lib/appsignal/hooks/celluloid.rb +5 -9
- data/lib/appsignal/hooks/net_http.rb +2 -12
- data/lib/appsignal/hooks/puma.rb +3 -5
- data/lib/appsignal/hooks/que.rb +1 -1
- data/lib/appsignal/hooks/rake.rb +2 -24
- data/lib/appsignal/hooks/redis.rb +2 -13
- data/lib/appsignal/hooks/resque.rb +2 -43
- data/lib/appsignal/hooks/shoryuken.rb +43 -4
- data/lib/appsignal/hooks/unicorn.rb +3 -24
- data/lib/appsignal/hooks/webmachine.rb +1 -7
- data/lib/appsignal/integrations/action_cable.rb +34 -0
- data/lib/appsignal/integrations/active_support_notifications.rb +77 -0
- data/lib/appsignal/integrations/net_http.rb +16 -0
- data/lib/appsignal/integrations/object.rb +44 -17
- data/lib/appsignal/integrations/padrino.rb +5 -7
- data/lib/appsignal/integrations/que.rb +26 -33
- data/lib/appsignal/integrations/railtie.rb +1 -4
- data/lib/appsignal/integrations/rake.rb +26 -2
- data/lib/appsignal/integrations/redis.rb +17 -0
- data/lib/appsignal/integrations/resque.rb +39 -10
- data/lib/appsignal/integrations/unicorn.rb +28 -0
- data/lib/appsignal/integrations/webmachine.rb +22 -24
- data/lib/appsignal/minutely.rb +0 -12
- data/lib/appsignal/system.rb +4 -0
- data/lib/appsignal/transaction.rb +30 -2
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/auth_check_spec.rb +1 -24
- data/spec/lib/appsignal/cli_spec.rb +1 -1
- data/spec/lib/appsignal/config_spec.rb +0 -66
- data/spec/lib/appsignal/event_formatter_spec.rb +0 -37
- data/spec/lib/appsignal/hooks/celluloid_spec.rb +6 -1
- data/spec/lib/appsignal/hooks/rake_spec.rb +1 -2
- data/spec/lib/appsignal/hooks/redis_spec.rb +50 -15
- data/spec/lib/appsignal/hooks/resque_spec.rb +10 -2
- data/spec/lib/appsignal/hooks/shoryuken_spec.rb +151 -104
- data/spec/lib/appsignal/hooks/sidekiq_spec.rb +4 -2
- data/spec/lib/appsignal/hooks/unicorn_spec.rb +14 -3
- data/spec/lib/appsignal/hooks/webmachine_spec.rb +2 -13
- data/spec/lib/appsignal/hooks_spec.rb +0 -57
- data/spec/lib/appsignal/integrations/object_spec.rb +25 -10
- data/spec/lib/appsignal/integrations/padrino_spec.rb +2 -3
- data/spec/lib/appsignal/integrations/railtie_spec.rb +0 -45
- data/spec/lib/appsignal/integrations/webmachine_spec.rb +26 -8
- data/spec/lib/appsignal/minutely_spec.rb +0 -19
- data/spec/lib/appsignal/transaction_spec.rb +56 -14
- data/spec/lib/appsignal/transmitter_spec.rb +1 -1
- data/spec/lib/appsignal_spec.rb +30 -69
- data/spec/spec_helper.rb +1 -15
- metadata +13 -22
- data/lib/appsignal/cli/notify_of_deploy.rb +0 -131
- data/lib/appsignal/integrations/resque_active_job.rb +0 -19
- data/lib/appsignal/js_exception_transaction.rb +0 -56
- data/lib/appsignal/rack/js_exception_catcher.rb +0 -80
- data/spec/lib/appsignal/cli/notify_of_deploy_spec.rb +0 -180
- data/spec/lib/appsignal/integrations/resque_active_job_spec.rb +0 -28
- data/spec/lib/appsignal/integrations/resque_spec.rb +0 -28
- data/spec/lib/appsignal/js_exception_transaction_spec.rb +0 -128
- data/spec/lib/appsignal/rack/js_exception_catcher_spec.rb +0 -170
@@ -1,170 +0,0 @@
|
|
1
|
-
describe Appsignal::Rack::JSExceptionCatcher do
|
2
|
-
let(:app) { double(:call => true) }
|
3
|
-
let(:options) { nil }
|
4
|
-
let(:config_options) { { :enable_frontend_error_catching => true } }
|
5
|
-
let(:config) { project_fixture_config("production", config_options) }
|
6
|
-
let(:deprecation_message) do
|
7
|
-
"The Appsignal::Rack::JSExceptionCatcher is " \
|
8
|
-
"deprecated and will be removed in a future version. Please use " \
|
9
|
-
"the official AppSignal JavaScript integration by disabling " \
|
10
|
-
"`enable_frontend_error_catching` in your configuration and " \
|
11
|
-
"installing AppSignal for JavaScript instead. " \
|
12
|
-
"(https://docs.appsignal.com/front-end/)"
|
13
|
-
end
|
14
|
-
before { Appsignal.config = config }
|
15
|
-
|
16
|
-
describe "#initialize" do
|
17
|
-
let(:out_stream) { std_stream }
|
18
|
-
let(:err_stream) { std_stream }
|
19
|
-
let(:output) { out_stream.read }
|
20
|
-
let(:stderr) { err_stream.read }
|
21
|
-
|
22
|
-
it "logs to the logger" do
|
23
|
-
log = capture_logs do
|
24
|
-
capture_std_streams(out_stream, err_stream) do
|
25
|
-
Appsignal::Rack::JSExceptionCatcher.new(app, options)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
expect(log).to contains_log(:warn, deprecation_message)
|
29
|
-
expect(log).to contains_log(:debug, "Initializing Appsignal::Rack::JSExceptionCatcher")
|
30
|
-
expect(stderr).to include "appsignal WARNING: #{deprecation_message}"
|
31
|
-
expect(stderr).to_not include("appsignal:")
|
32
|
-
expect(output).to be_empty
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "#call" do
|
37
|
-
let(:catcher) do
|
38
|
-
silence :allowed => ["enable_frontend_error_catching"] do
|
39
|
-
Appsignal::Rack::JSExceptionCatcher.new(app, options)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
after { catcher.call(env) }
|
43
|
-
|
44
|
-
context "when path is not frontend_error_catching_path" do
|
45
|
-
let(:env) { { "PATH_INFO" => "/foo" } }
|
46
|
-
|
47
|
-
context "when AppSignal is not active" do
|
48
|
-
before { config[:active] = false }
|
49
|
-
|
50
|
-
it "calls the next middleware" do
|
51
|
-
expect(app).to receive(:call).with(env)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
context "when AppSignal is active" do
|
56
|
-
before { config[:active] = true }
|
57
|
-
|
58
|
-
it "calls the next middleware" do
|
59
|
-
expect(app).to receive(:call).with(env)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context "when path is frontend_error_catching_path" do
|
65
|
-
let(:transaction) { double(:complete! => true) }
|
66
|
-
let(:env) do
|
67
|
-
{
|
68
|
-
"PATH_INFO" => "/appsignal_error_catcher",
|
69
|
-
"rack.input" => double(:read => '{"name": "error"}')
|
70
|
-
}
|
71
|
-
end
|
72
|
-
|
73
|
-
context "when AppSignal is not active" do
|
74
|
-
before { config[:active] = false }
|
75
|
-
|
76
|
-
it "doesn't create an AppSignal transaction" do
|
77
|
-
expect(Appsignal::JSExceptionTransaction).to_not receive(:new)
|
78
|
-
end
|
79
|
-
|
80
|
-
it "returns a 202 status" do
|
81
|
-
expect(catcher.call(env)).to eq(
|
82
|
-
[202, {}, ["AppSignal JavaScript error catching endpoint is not active."]]
|
83
|
-
)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
context "when AppSignal is active" do
|
88
|
-
before { config[:active] = true }
|
89
|
-
|
90
|
-
it "creates a JSExceptionTransaction" do
|
91
|
-
expect(Appsignal::JSExceptionTransaction).to receive(:new)
|
92
|
-
.with("name" => "error")
|
93
|
-
.and_return(transaction)
|
94
|
-
|
95
|
-
expect(transaction).to receive(:complete!)
|
96
|
-
end
|
97
|
-
|
98
|
-
it "returns 200" do
|
99
|
-
allow(Appsignal::JSExceptionTransaction).to receive(:new)
|
100
|
-
.and_return(transaction)
|
101
|
-
|
102
|
-
expect(catcher.call(env)).to eq([200, {}, []])
|
103
|
-
end
|
104
|
-
|
105
|
-
context "when request payload is empty" do
|
106
|
-
let(:env) do
|
107
|
-
{
|
108
|
-
"PATH_INFO" => "/appsignal_error_catcher",
|
109
|
-
"rack.input" => double(:read => "")
|
110
|
-
}
|
111
|
-
end
|
112
|
-
|
113
|
-
it "does not create a transaction" do
|
114
|
-
expect(Appsignal::JSExceptionTransaction).to_not receive(:new)
|
115
|
-
end
|
116
|
-
|
117
|
-
it "returns 400" do
|
118
|
-
expect(catcher.call(env)).to eq([400, {}, ["Request payload is not valid JSON."]])
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
context "when `frontend_error_catching_path` is different" do
|
123
|
-
let(:config_options) { { :frontend_error_catching_path => "/foo" } }
|
124
|
-
|
125
|
-
it "does not create a transaction" do
|
126
|
-
expect(Appsignal::JSExceptionTransaction).to_not receive(:new)
|
127
|
-
end
|
128
|
-
|
129
|
-
it "calls the next middleware" do
|
130
|
-
expect(app).to receive(:call).with(env)
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
context "when `name` is empty" do
|
135
|
-
let(:env) do
|
136
|
-
{
|
137
|
-
"PATH_INFO" => "/appsignal_error_catcher",
|
138
|
-
"rack.input" => double(:read => '{"name": ""}')
|
139
|
-
}
|
140
|
-
end
|
141
|
-
|
142
|
-
it "does not create a transaction" do
|
143
|
-
expect(Appsignal::JSExceptionTransaction).to_not receive(:new)
|
144
|
-
end
|
145
|
-
|
146
|
-
it "returns 422" do
|
147
|
-
expect(catcher.call(env)).to eq([422, {}, []])
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
context "when `name` doesn't exist" do
|
152
|
-
let(:env) do
|
153
|
-
{
|
154
|
-
"PATH_INFO" => "/appsignal_error_catcher",
|
155
|
-
"rack.input" => double(:read => '{"foo": ""}')
|
156
|
-
}
|
157
|
-
end
|
158
|
-
|
159
|
-
it "does not create a transaction" do
|
160
|
-
expect(Appsignal::JSExceptionTransaction).to_not receive(:new)
|
161
|
-
end
|
162
|
-
|
163
|
-
it "returns 422" do
|
164
|
-
expect(catcher.call(env)).to eq([422, {}, []])
|
165
|
-
end
|
166
|
-
end
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|