appsignal 2.9.2.alpha.1 → 2.9.18.beta.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 +5 -5
- data/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
- data/.github/ISSUE_TEMPLATE/chore.md +14 -0
- data/.gitignore +1 -2
- data/.rubocop.yml +3 -0
- data/.travis.yml +25 -27
- data/CHANGELOG.md +632 -535
- data/README.md +8 -3
- data/Rakefile +118 -122
- data/SUPPORT.md +16 -0
- data/appsignal.gemspec +14 -4
- data/build_matrix.yml +16 -8
- data/ext/Rakefile +2 -3
- data/ext/agent.yml +40 -37
- data/ext/base.rb +37 -14
- data/ext/extconf.rb +3 -4
- data/gemfiles/capistrano2.gemfile +5 -0
- data/gemfiles/capistrano3.gemfile +5 -0
- data/gemfiles/grape.gemfile +5 -0
- data/gemfiles/no_dependencies.gemfile +5 -0
- data/gemfiles/padrino.gemfile +5 -0
- data/gemfiles/que.gemfile +5 -0
- data/gemfiles/que_beta.gemfile +10 -0
- data/gemfiles/rails-3.2.gemfile +5 -0
- data/gemfiles/rails-4.0.gemfile +5 -0
- data/gemfiles/rails-4.1.gemfile +5 -0
- data/gemfiles/rails-4.2.gemfile +5 -0
- data/gemfiles/rails-6.0.gemfile +1 -1
- data/gemfiles/resque.gemfile +5 -0
- data/lib/appsignal.rb +1 -4
- data/lib/appsignal/cli/demo.rb +5 -2
- data/lib/appsignal/cli/diagnose/utils.rb +2 -0
- data/lib/appsignal/cli/install.rb +34 -10
- data/lib/appsignal/cli/notify_of_deploy.rb +10 -0
- data/lib/appsignal/config.rb +5 -2
- data/lib/appsignal/event_formatter/action_view/render_formatter.rb +10 -8
- data/lib/appsignal/helpers/instrumentation.rb +18 -9
- data/lib/appsignal/helpers/metrics.rb +0 -1
- data/lib/appsignal/hooks.rb +3 -1
- data/lib/appsignal/hooks/active_support_notifications.rb +2 -5
- data/lib/appsignal/hooks/puma.rb +15 -13
- data/lib/appsignal/hooks/sequel.rb +1 -1
- data/lib/appsignal/hooks/sidekiq.rb +33 -8
- data/lib/appsignal/integrations/que.rb +9 -8
- data/lib/appsignal/minutely.rb +38 -19
- data/lib/appsignal/transaction.rb +5 -0
- data/lib/appsignal/utils/rails_helper.rb +4 -0
- data/lib/appsignal/version.rb +1 -1
- data/lib/puma/plugin/appsignal.rb +26 -0
- data/spec/lib/appsignal/cli/diagnose/utils_spec.rb +40 -0
- data/spec/lib/appsignal/cli/install_spec.rb +51 -7
- data/spec/lib/appsignal/cli/notify_of_deploy_spec.rb +10 -0
- data/spec/lib/appsignal/config_spec.rb +13 -8
- data/spec/lib/appsignal/event_formatter/action_view/render_formatter_spec.rb +38 -28
- data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +104 -25
- data/spec/lib/appsignal/hooks/puma_spec.rb +69 -39
- data/spec/lib/appsignal/hooks/sidekiq_spec.rb +65 -3
- data/spec/lib/appsignal/hooks_spec.rb +4 -0
- data/spec/lib/appsignal/minutely_spec.rb +150 -88
- data/spec/lib/appsignal/transaction_spec.rb +27 -4
- data/spec/lib/appsignal_spec.rb +62 -11
- data/spec/lib/puma/appsignal_spec.rb +91 -0
- data/spec/support/{project_fixture → fixtures/projects/valid}/config/application.rb +0 -0
- data/spec/support/{project_fixture → fixtures/projects/valid}/config/appsignal.yml +0 -0
- data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/development.rb +0 -0
- data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/production.rb +0 -0
- data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/test.rb +0 -0
- data/spec/support/{project_fixture → fixtures/projects/valid}/log/.gitkeep +0 -0
- data/spec/support/helpers/config_helpers.rb +1 -1
- data/spec/support/helpers/wait_for_helper.rb +28 -0
- data/spec/support/mocks/mock_probe.rb +11 -0
- metadata +38 -30
- data/spec/support/fixtures/containers/cgroups/docker +0 -14
- data/spec/support/fixtures/containers/cgroups/docker_systemd +0 -8
- data/spec/support/fixtures/containers/cgroups/lxc +0 -10
- data/spec/support/fixtures/containers/cgroups/no_permission +0 -0
- data/spec/support/fixtures/containers/cgroups/none +0 -1
|
@@ -630,7 +630,11 @@ describe Appsignal::Transaction do
|
|
|
630
630
|
|
|
631
631
|
describe "#set_error" do
|
|
632
632
|
let(:env) { http_request_env_with_data }
|
|
633
|
-
let(:error)
|
|
633
|
+
let(:error) do
|
|
634
|
+
e = ExampleStandardError.new("test message")
|
|
635
|
+
allow(e).to receive(:backtrace).and_return(["line 1"])
|
|
636
|
+
e
|
|
637
|
+
end
|
|
634
638
|
|
|
635
639
|
it "should also respond to add_exception for backwords compatibility" do
|
|
636
640
|
expect(transaction).to respond_to(:add_exception)
|
|
@@ -643,10 +647,24 @@ describe Appsignal::Transaction do
|
|
|
643
647
|
transaction.set_error(error)
|
|
644
648
|
end
|
|
645
649
|
|
|
650
|
+
context "when error is not an error" do
|
|
651
|
+
let(:error) { Object.new }
|
|
652
|
+
|
|
653
|
+
it "does not add the error" do
|
|
654
|
+
expect(Appsignal.logger).to receive(:error).with(
|
|
655
|
+
"Appsignal::Transaction#set_error: Cannot set error. " \
|
|
656
|
+
"The given value is not an exception: #{error.inspect}"
|
|
657
|
+
)
|
|
658
|
+
expect(transaction.ext).to_not receive(:set_error)
|
|
659
|
+
|
|
660
|
+
transaction.set_error(error)
|
|
661
|
+
end
|
|
662
|
+
end
|
|
663
|
+
|
|
646
664
|
context "for a http request" do
|
|
647
665
|
it "should set an error in the extension" do
|
|
648
666
|
expect(transaction.ext).to receive(:set_error).with(
|
|
649
|
-
"
|
|
667
|
+
"ExampleStandardError",
|
|
650
668
|
"test message",
|
|
651
669
|
Appsignal::Utils::Data.generate(["line 1"])
|
|
652
670
|
)
|
|
@@ -656,7 +674,12 @@ describe Appsignal::Transaction do
|
|
|
656
674
|
end
|
|
657
675
|
|
|
658
676
|
context "when error message is nil" do
|
|
659
|
-
let(:error)
|
|
677
|
+
let(:error) do
|
|
678
|
+
e = ExampleStandardError.new
|
|
679
|
+
allow(e).to receive(:message).and_return(nil)
|
|
680
|
+
allow(e).to receive(:backtrace).and_return(["line 1"])
|
|
681
|
+
e
|
|
682
|
+
end
|
|
660
683
|
|
|
661
684
|
it "should not raise an error" do
|
|
662
685
|
expect { transaction.set_error(error) }.to_not raise_error
|
|
@@ -664,7 +687,7 @@ describe Appsignal::Transaction do
|
|
|
664
687
|
|
|
665
688
|
it "should set an error in the extension" do
|
|
666
689
|
expect(transaction.ext).to receive(:set_error).with(
|
|
667
|
-
"
|
|
690
|
+
"ExampleStandardError",
|
|
668
691
|
"",
|
|
669
692
|
Appsignal::Utils::Data.generate(["line 1"])
|
|
670
693
|
)
|
data/spec/lib/appsignal_spec.rb
CHANGED
|
@@ -94,12 +94,6 @@ describe Appsignal do
|
|
|
94
94
|
Appsignal.start
|
|
95
95
|
end
|
|
96
96
|
end
|
|
97
|
-
|
|
98
|
-
it "should add the gc probe to minutely" do
|
|
99
|
-
expect(Appsignal::Minutely).to receive(:register_garbage_collection_probe)
|
|
100
|
-
.and_call_original
|
|
101
|
-
Appsignal.start
|
|
102
|
-
end
|
|
103
97
|
end
|
|
104
98
|
|
|
105
99
|
context "when allocation tracking and gc instrumentation have been disabled" do
|
|
@@ -246,6 +240,16 @@ describe Appsignal do
|
|
|
246
240
|
|
|
247
241
|
context "not active" do
|
|
248
242
|
describe ".monitor_transaction" do
|
|
243
|
+
let(:log_stream) { StringIO.new }
|
|
244
|
+
let(:log) { log_contents(log_stream) }
|
|
245
|
+
before do
|
|
246
|
+
Appsignal.config = project_fixture_config("not_active")
|
|
247
|
+
Appsignal.start
|
|
248
|
+
Appsignal.start_logger
|
|
249
|
+
Appsignal.logger = test_logger(log_stream)
|
|
250
|
+
end
|
|
251
|
+
after { Appsignal.logger = nil }
|
|
252
|
+
|
|
249
253
|
it "should do nothing but still yield the block" do
|
|
250
254
|
expect(Appsignal::Transaction).to_not receive(:create)
|
|
251
255
|
expect(Appsignal).to_not receive(:instrument)
|
|
@@ -258,6 +262,23 @@ describe Appsignal do
|
|
|
258
262
|
end).to eq 1
|
|
259
263
|
end.to_not raise_error
|
|
260
264
|
end
|
|
265
|
+
|
|
266
|
+
context "with an unknown event type" do
|
|
267
|
+
it "yields the given block" do
|
|
268
|
+
expect do |blk|
|
|
269
|
+
Appsignal.monitor_transaction("unknown.sidekiq", &blk)
|
|
270
|
+
end.to yield_control
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
it "logs an error" do
|
|
274
|
+
Appsignal.monitor_transaction("unknown.sidekiq") {}
|
|
275
|
+
expect(log).to contains_log(
|
|
276
|
+
:error,
|
|
277
|
+
"Unrecognized name 'unknown.sidekiq': names must start with either 'perform_job' " \
|
|
278
|
+
"(for jobs and tasks) or 'process_action' (for HTTP requests)"
|
|
279
|
+
)
|
|
280
|
+
end
|
|
281
|
+
end
|
|
261
282
|
end
|
|
262
283
|
|
|
263
284
|
describe ".listen_for_error" do
|
|
@@ -305,10 +326,15 @@ describe Appsignal do
|
|
|
305
326
|
end
|
|
306
327
|
|
|
307
328
|
context "with config and started" do
|
|
329
|
+
let(:log_stream) { StringIO.new }
|
|
330
|
+
let(:log) { log_contents(log_stream) }
|
|
308
331
|
before do
|
|
309
332
|
Appsignal.config = project_fixture_config
|
|
310
333
|
Appsignal.start
|
|
334
|
+
Appsignal.start_logger
|
|
335
|
+
Appsignal.logger = test_logger(log_stream)
|
|
311
336
|
end
|
|
337
|
+
after { Appsignal.logger = nil }
|
|
312
338
|
|
|
313
339
|
describe ".monitor_transaction" do
|
|
314
340
|
context "with a successful call" do
|
|
@@ -365,6 +391,23 @@ describe Appsignal do
|
|
|
365
391
|
end.to raise_error(error)
|
|
366
392
|
end
|
|
367
393
|
end
|
|
394
|
+
|
|
395
|
+
context "with an unknown event type" do
|
|
396
|
+
it "yields the given block" do
|
|
397
|
+
expect do |blk|
|
|
398
|
+
Appsignal.monitor_transaction("unknown.sidekiq", &blk)
|
|
399
|
+
end.to yield_control
|
|
400
|
+
end
|
|
401
|
+
|
|
402
|
+
it "logs an error" do
|
|
403
|
+
Appsignal.monitor_transaction("unknown.sidekiq") {}
|
|
404
|
+
expect(log).to contains_log(
|
|
405
|
+
:error,
|
|
406
|
+
"Unrecognized name 'unknown.sidekiq': names must start with either 'perform_job' " \
|
|
407
|
+
"(for jobs and tasks) or 'process_action' (for HTTP requests)"
|
|
408
|
+
)
|
|
409
|
+
end
|
|
410
|
+
end
|
|
368
411
|
end
|
|
369
412
|
|
|
370
413
|
describe ".monitor_single_transaction" do
|
|
@@ -614,8 +657,10 @@ describe Appsignal do
|
|
|
614
657
|
let(:error) { double }
|
|
615
658
|
|
|
616
659
|
it "logs an error message" do
|
|
617
|
-
expect(Appsignal.logger).to receive(:error)
|
|
618
|
-
.
|
|
660
|
+
expect(Appsignal.logger).to receive(:error).with(
|
|
661
|
+
"Appsignal.send_error: Cannot send error. " \
|
|
662
|
+
"The given value is not an exception: #{error.inspect}"
|
|
663
|
+
)
|
|
619
664
|
end
|
|
620
665
|
|
|
621
666
|
it "does not send the error" do
|
|
@@ -735,13 +780,19 @@ describe Appsignal do
|
|
|
735
780
|
Appsignal.set_error(error)
|
|
736
781
|
end
|
|
737
782
|
|
|
738
|
-
context "when the error is
|
|
739
|
-
|
|
783
|
+
context "when the error is not an Exception" do
|
|
784
|
+
let(:error) { Object.new }
|
|
785
|
+
|
|
786
|
+
it "logs an error" do
|
|
787
|
+
expect(Appsignal.logger).to receive(:error).with(
|
|
788
|
+
"Appsignal.set_error: Cannot set error. " \
|
|
789
|
+
"The given value is not an exception: #{error.inspect}"
|
|
790
|
+
)
|
|
740
791
|
expect(transaction).to_not receive(:set_error)
|
|
741
792
|
expect(transaction).to_not receive(:set_tags)
|
|
742
793
|
expect(transaction).to_not receive(:set_namespace)
|
|
743
794
|
|
|
744
|
-
Appsignal.set_error(
|
|
795
|
+
Appsignal.set_error(error)
|
|
745
796
|
end
|
|
746
797
|
end
|
|
747
798
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
RSpec.describe "Puma plugin" do
|
|
2
|
+
include WaitForHelper
|
|
3
|
+
|
|
4
|
+
class MockPumaLauncher
|
|
5
|
+
def events
|
|
6
|
+
return @events if defined?(@events)
|
|
7
|
+
|
|
8
|
+
@events = MockPumaEvents.new
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class MockPumaEvents
|
|
13
|
+
def on_booted(&block)
|
|
14
|
+
@on_booted = block if block_given?
|
|
15
|
+
@on_booted if defined?(@on_booted)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
let(:probe) { MockProbe.new }
|
|
20
|
+
let(:launcher) { MockPumaLauncher.new }
|
|
21
|
+
before do
|
|
22
|
+
module Puma
|
|
23
|
+
def self.stats
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
class Plugin
|
|
27
|
+
class << self
|
|
28
|
+
attr_reader :plugin
|
|
29
|
+
|
|
30
|
+
def create(&block)
|
|
31
|
+
@plugin = Class.new(::Puma::Plugin)
|
|
32
|
+
@plugin.class_eval(&block)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Appsignal::Minutely.probes.clear
|
|
39
|
+
ENV["APPSIGNAL_ENABLE_MINUTELY_PROBES"] = "true"
|
|
40
|
+
Appsignal.config = project_fixture_config
|
|
41
|
+
# Speed up test time
|
|
42
|
+
allow(Appsignal::Minutely).to receive(:initial_wait_time).and_return(0.001)
|
|
43
|
+
allow(Appsignal::Minutely).to receive(:wait_time).and_return(0.001)
|
|
44
|
+
|
|
45
|
+
Appsignal::Minutely.probes.register :my_probe, probe
|
|
46
|
+
load File.expand_path("../lib/puma/plugin/appsignal.rb", APPSIGNAL_SPEC_DIR)
|
|
47
|
+
end
|
|
48
|
+
after do
|
|
49
|
+
Appsignal.config = nil
|
|
50
|
+
Object.send :remove_const, :Puma
|
|
51
|
+
Object.send :remove_const, :APPSIGNAL_PUMA_PLUGIN_LOADED
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "registers the PumaProbe" do
|
|
55
|
+
expect(Appsignal::Minutely.probes[:my_probe]).to eql(probe)
|
|
56
|
+
expect(Appsignal::Minutely.probes[:puma]).to be_nil
|
|
57
|
+
plugin = Puma::Plugin.plugin.new
|
|
58
|
+
expect(launcher.events.on_booted).to be_nil
|
|
59
|
+
|
|
60
|
+
plugin.start(launcher)
|
|
61
|
+
expect(Appsignal::Minutely.probes[:puma]).to be_nil
|
|
62
|
+
expect(launcher.events.on_booted).to_not be_nil
|
|
63
|
+
|
|
64
|
+
launcher.events.on_booted.call
|
|
65
|
+
expect(Appsignal::Minutely.probes[:puma]).to eql(Appsignal::Hooks::PumaProbe)
|
|
66
|
+
|
|
67
|
+
# Minutely probes started and called
|
|
68
|
+
wait_for("enough probe calls") { probe.calls >= 2 }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
context "without Puma.stats" do
|
|
72
|
+
before { Puma.singleton_class.send(:remove_method, :stats) }
|
|
73
|
+
|
|
74
|
+
it "does not register the PumaProbe" do
|
|
75
|
+
expect(Appsignal::Minutely.probes[:my_probe]).to eql(probe)
|
|
76
|
+
expect(Appsignal::Minutely.probes[:puma]).to be_nil
|
|
77
|
+
plugin = Puma::Plugin.plugin.new
|
|
78
|
+
expect(launcher.events.on_booted).to be_nil
|
|
79
|
+
|
|
80
|
+
plugin.start(launcher)
|
|
81
|
+
expect(Appsignal::Minutely.probes[:puma]).to be_nil
|
|
82
|
+
expect(launcher.events.on_booted).to_not be_nil
|
|
83
|
+
|
|
84
|
+
launcher.events.on_booted.call
|
|
85
|
+
expect(Appsignal::Minutely.probes[:puma]).to be_nil
|
|
86
|
+
|
|
87
|
+
# Minutely probes started and called
|
|
88
|
+
wait_for("enough probe calls") { probe.calls >= 2 }
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
File without changes
|
|
File without changes
|
data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/development.rb
RENAMED
|
File without changes
|
data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/production.rb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module WaitForHelper
|
|
2
|
+
# Wait for a condition to be met
|
|
3
|
+
#
|
|
4
|
+
# @example
|
|
5
|
+
# # Perform threaded operation
|
|
6
|
+
# wait_for("enough probe calls") { probe.calls >= 2 }
|
|
7
|
+
# # Assert on result
|
|
8
|
+
#
|
|
9
|
+
# @param name [String] The name of the condition to check. Used in the
|
|
10
|
+
# error when it fails.
|
|
11
|
+
# @yield Assertion to check.
|
|
12
|
+
# @yieldreturn [Boolean] True/False value that indicates if the condition
|
|
13
|
+
# is met.
|
|
14
|
+
# @raise [StandardError] Raises error if the condition is not met after 5
|
|
15
|
+
# seconds, 5_000 tries.
|
|
16
|
+
def wait_for(name)
|
|
17
|
+
max_wait = 5_000
|
|
18
|
+
i = 0
|
|
19
|
+
while i <= max_wait
|
|
20
|
+
break if yield
|
|
21
|
+
i += 1
|
|
22
|
+
sleep 0.001
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
return unless i == max_wait
|
|
26
|
+
raise "Waited 5 seconds for #{name} condition, but was not met."
|
|
27
|
+
end
|
|
28
|
+
end
|
metadata
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: appsignal
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.9.
|
|
4
|
+
version: 2.9.18.beta.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Robert Beekman
|
|
8
8
|
- Thijs Cadier
|
|
9
|
+
- Tom de Bruijn
|
|
9
10
|
autorequire:
|
|
10
11
|
bindir: bin
|
|
11
12
|
cert_chain: []
|
|
12
|
-
date: 2019-
|
|
13
|
+
date: 2019-11-18 00:00:00.000000000 Z
|
|
13
14
|
dependencies:
|
|
14
15
|
- !ruby/object:Gem::Dependency
|
|
15
16
|
name: rack
|
|
@@ -45,14 +46,14 @@ dependencies:
|
|
|
45
46
|
requirements:
|
|
46
47
|
- - "~>"
|
|
47
48
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: '3.
|
|
49
|
+
version: '3.8'
|
|
49
50
|
type: :development
|
|
50
51
|
prerelease: false
|
|
51
52
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
53
|
requirements:
|
|
53
54
|
- - "~>"
|
|
54
55
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '3.
|
|
56
|
+
version: '3.8'
|
|
56
57
|
- !ruby/object:Gem::Dependency
|
|
57
58
|
name: pry
|
|
58
59
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -115,14 +116,14 @@ dependencies:
|
|
|
115
116
|
requirements:
|
|
116
117
|
- - ">="
|
|
117
118
|
- !ruby/object:Gem::Version
|
|
118
|
-
version:
|
|
119
|
+
version: 0.9.20
|
|
119
120
|
type: :development
|
|
120
121
|
prerelease: false
|
|
121
122
|
version_requirements: !ruby/object:Gem::Requirement
|
|
122
123
|
requirements:
|
|
123
124
|
- - ">="
|
|
124
125
|
- !ruby/object:Gem::Version
|
|
125
|
-
version:
|
|
126
|
+
version: 0.9.20
|
|
126
127
|
description: The official appsignal.com gem
|
|
127
128
|
email:
|
|
128
129
|
- support@appsignal.com
|
|
@@ -132,6 +133,8 @@ extensions:
|
|
|
132
133
|
- ext/extconf.rb
|
|
133
134
|
extra_rdoc_files: []
|
|
134
135
|
files:
|
|
136
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
|
137
|
+
- ".github/ISSUE_TEMPLATE/chore.md"
|
|
135
138
|
- ".gitignore"
|
|
136
139
|
- ".rspec"
|
|
137
140
|
- ".rubocop.yml"
|
|
@@ -144,6 +147,7 @@ files:
|
|
|
144
147
|
- LICENSE
|
|
145
148
|
- README.md
|
|
146
149
|
- Rakefile
|
|
150
|
+
- SUPPORT.md
|
|
147
151
|
- appsignal.gemspec
|
|
148
152
|
- benchmark.rake
|
|
149
153
|
- bin/appsignal
|
|
@@ -159,6 +163,7 @@ files:
|
|
|
159
163
|
- gemfiles/no_dependencies.gemfile
|
|
160
164
|
- gemfiles/padrino.gemfile
|
|
161
165
|
- gemfiles/que.gemfile
|
|
166
|
+
- gemfiles/que_beta.gemfile
|
|
162
167
|
- gemfiles/rails-3.2.gemfile
|
|
163
168
|
- gemfiles/rails-4.0.gemfile
|
|
164
169
|
- gemfiles/rails-4.1.gemfile
|
|
@@ -250,6 +255,7 @@ files:
|
|
|
250
255
|
- lib/appsignal/utils/query_params_sanitizer.rb
|
|
251
256
|
- lib/appsignal/utils/rails_helper.rb
|
|
252
257
|
- lib/appsignal/version.rb
|
|
258
|
+
- lib/puma/plugin/appsignal.rb
|
|
253
259
|
- lib/sequel/extensions/appsignal_integration.rb
|
|
254
260
|
- resources/appsignal.yml.erb
|
|
255
261
|
- resources/cacert.pem
|
|
@@ -323,13 +329,15 @@ files:
|
|
|
323
329
|
- spec/lib/appsignal/utils/json_spec.rb
|
|
324
330
|
- spec/lib/appsignal/utils/query_params_sanitizer_spec.rb
|
|
325
331
|
- spec/lib/appsignal_spec.rb
|
|
332
|
+
- spec/lib/puma/appsignal_spec.rb
|
|
326
333
|
- spec/spec_helper.rb
|
|
327
|
-
- spec/support/fixtures/containers/cgroups/docker
|
|
328
|
-
- spec/support/fixtures/containers/cgroups/docker_systemd
|
|
329
|
-
- spec/support/fixtures/containers/cgroups/lxc
|
|
330
|
-
- spec/support/fixtures/containers/cgroups/no_permission
|
|
331
|
-
- spec/support/fixtures/containers/cgroups/none
|
|
332
334
|
- spec/support/fixtures/generated_config.yml
|
|
335
|
+
- spec/support/fixtures/projects/valid/config/application.rb
|
|
336
|
+
- spec/support/fixtures/projects/valid/config/appsignal.yml
|
|
337
|
+
- spec/support/fixtures/projects/valid/config/environments/development.rb
|
|
338
|
+
- spec/support/fixtures/projects/valid/config/environments/production.rb
|
|
339
|
+
- spec/support/fixtures/projects/valid/config/environments/test.rb
|
|
340
|
+
- spec/support/fixtures/projects/valid/log/.gitkeep
|
|
333
341
|
- spec/support/fixtures/uploaded_file.txt
|
|
334
342
|
- spec/support/helpers/api_request_helper.rb
|
|
335
343
|
- spec/support/helpers/cli_helpers.rb
|
|
@@ -344,15 +352,11 @@ files:
|
|
|
344
352
|
- spec/support/helpers/system_helpers.rb
|
|
345
353
|
- spec/support/helpers/time_helpers.rb
|
|
346
354
|
- spec/support/helpers/transaction_helpers.rb
|
|
355
|
+
- spec/support/helpers/wait_for_helper.rb
|
|
347
356
|
- spec/support/matchers/contains_log.rb
|
|
348
357
|
- spec/support/mocks/fake_gc_profiler.rb
|
|
349
358
|
- spec/support/mocks/mock_extension.rb
|
|
350
|
-
- spec/support/
|
|
351
|
-
- spec/support/project_fixture/config/appsignal.yml
|
|
352
|
-
- spec/support/project_fixture/config/environments/development.rb
|
|
353
|
-
- spec/support/project_fixture/config/environments/production.rb
|
|
354
|
-
- spec/support/project_fixture/config/environments/test.rb
|
|
355
|
-
- spec/support/project_fixture/log/.gitkeep
|
|
359
|
+
- spec/support/mocks/mock_probe.rb
|
|
356
360
|
- spec/support/rails/my_app.rb
|
|
357
361
|
- spec/support/shared_examples/instrument.rb
|
|
358
362
|
- spec/support/stubs/delayed_job.rb
|
|
@@ -362,7 +366,12 @@ files:
|
|
|
362
366
|
homepage: https://github.com/appsignal/appsignal-ruby
|
|
363
367
|
licenses:
|
|
364
368
|
- MIT
|
|
365
|
-
metadata:
|
|
369
|
+
metadata:
|
|
370
|
+
bug_tracker_uri: https://github.com/appsignal/appsignal-ruby/issues
|
|
371
|
+
changelog_uri: https://github.com/appsignal/appsignal-ruby/blob/master/CHANGELOG.md
|
|
372
|
+
documentation_uri: https://docs.appsignal.com/ruby/
|
|
373
|
+
homepage_uri: https://docs.appsignal.com/ruby/
|
|
374
|
+
source_code_uri: https://github.com/appsignal/appsignal-ruby
|
|
366
375
|
post_install_message:
|
|
367
376
|
rdoc_options: []
|
|
368
377
|
require_paths:
|
|
@@ -379,7 +388,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
379
388
|
- !ruby/object:Gem::Version
|
|
380
389
|
version: 1.3.1
|
|
381
390
|
requirements: []
|
|
382
|
-
|
|
391
|
+
rubyforge_project:
|
|
392
|
+
rubygems_version: 2.6.14.3
|
|
383
393
|
signing_key:
|
|
384
394
|
specification_version: 4
|
|
385
395
|
summary: Logs performance and exception data from your app to appsignal.com
|
|
@@ -454,13 +464,15 @@ test_files:
|
|
|
454
464
|
- spec/lib/appsignal/utils/json_spec.rb
|
|
455
465
|
- spec/lib/appsignal/utils/query_params_sanitizer_spec.rb
|
|
456
466
|
- spec/lib/appsignal_spec.rb
|
|
467
|
+
- spec/lib/puma/appsignal_spec.rb
|
|
457
468
|
- spec/spec_helper.rb
|
|
458
|
-
- spec/support/fixtures/containers/cgroups/docker
|
|
459
|
-
- spec/support/fixtures/containers/cgroups/docker_systemd
|
|
460
|
-
- spec/support/fixtures/containers/cgroups/lxc
|
|
461
|
-
- spec/support/fixtures/containers/cgroups/no_permission
|
|
462
|
-
- spec/support/fixtures/containers/cgroups/none
|
|
463
469
|
- spec/support/fixtures/generated_config.yml
|
|
470
|
+
- spec/support/fixtures/projects/valid/config/application.rb
|
|
471
|
+
- spec/support/fixtures/projects/valid/config/appsignal.yml
|
|
472
|
+
- spec/support/fixtures/projects/valid/config/environments/development.rb
|
|
473
|
+
- spec/support/fixtures/projects/valid/config/environments/production.rb
|
|
474
|
+
- spec/support/fixtures/projects/valid/config/environments/test.rb
|
|
475
|
+
- spec/support/fixtures/projects/valid/log/.gitkeep
|
|
464
476
|
- spec/support/fixtures/uploaded_file.txt
|
|
465
477
|
- spec/support/helpers/api_request_helper.rb
|
|
466
478
|
- spec/support/helpers/cli_helpers.rb
|
|
@@ -475,15 +487,11 @@ test_files:
|
|
|
475
487
|
- spec/support/helpers/system_helpers.rb
|
|
476
488
|
- spec/support/helpers/time_helpers.rb
|
|
477
489
|
- spec/support/helpers/transaction_helpers.rb
|
|
490
|
+
- spec/support/helpers/wait_for_helper.rb
|
|
478
491
|
- spec/support/matchers/contains_log.rb
|
|
479
492
|
- spec/support/mocks/fake_gc_profiler.rb
|
|
480
493
|
- spec/support/mocks/mock_extension.rb
|
|
481
|
-
- spec/support/
|
|
482
|
-
- spec/support/project_fixture/config/appsignal.yml
|
|
483
|
-
- spec/support/project_fixture/config/environments/development.rb
|
|
484
|
-
- spec/support/project_fixture/config/environments/production.rb
|
|
485
|
-
- spec/support/project_fixture/config/environments/test.rb
|
|
486
|
-
- spec/support/project_fixture/log/.gitkeep
|
|
494
|
+
- spec/support/mocks/mock_probe.rb
|
|
487
495
|
- spec/support/rails/my_app.rb
|
|
488
496
|
- spec/support/shared_examples/instrument.rb
|
|
489
497
|
- spec/support/stubs/delayed_job.rb
|