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.
Files changed (77) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  3. data/.github/ISSUE_TEMPLATE/chore.md +14 -0
  4. data/.gitignore +1 -2
  5. data/.rubocop.yml +3 -0
  6. data/.travis.yml +25 -27
  7. data/CHANGELOG.md +632 -535
  8. data/README.md +8 -3
  9. data/Rakefile +118 -122
  10. data/SUPPORT.md +16 -0
  11. data/appsignal.gemspec +14 -4
  12. data/build_matrix.yml +16 -8
  13. data/ext/Rakefile +2 -3
  14. data/ext/agent.yml +40 -37
  15. data/ext/base.rb +37 -14
  16. data/ext/extconf.rb +3 -4
  17. data/gemfiles/capistrano2.gemfile +5 -0
  18. data/gemfiles/capistrano3.gemfile +5 -0
  19. data/gemfiles/grape.gemfile +5 -0
  20. data/gemfiles/no_dependencies.gemfile +5 -0
  21. data/gemfiles/padrino.gemfile +5 -0
  22. data/gemfiles/que.gemfile +5 -0
  23. data/gemfiles/que_beta.gemfile +10 -0
  24. data/gemfiles/rails-3.2.gemfile +5 -0
  25. data/gemfiles/rails-4.0.gemfile +5 -0
  26. data/gemfiles/rails-4.1.gemfile +5 -0
  27. data/gemfiles/rails-4.2.gemfile +5 -0
  28. data/gemfiles/rails-6.0.gemfile +1 -1
  29. data/gemfiles/resque.gemfile +5 -0
  30. data/lib/appsignal.rb +1 -4
  31. data/lib/appsignal/cli/demo.rb +5 -2
  32. data/lib/appsignal/cli/diagnose/utils.rb +2 -0
  33. data/lib/appsignal/cli/install.rb +34 -10
  34. data/lib/appsignal/cli/notify_of_deploy.rb +10 -0
  35. data/lib/appsignal/config.rb +5 -2
  36. data/lib/appsignal/event_formatter/action_view/render_formatter.rb +10 -8
  37. data/lib/appsignal/helpers/instrumentation.rb +18 -9
  38. data/lib/appsignal/helpers/metrics.rb +0 -1
  39. data/lib/appsignal/hooks.rb +3 -1
  40. data/lib/appsignal/hooks/active_support_notifications.rb +2 -5
  41. data/lib/appsignal/hooks/puma.rb +15 -13
  42. data/lib/appsignal/hooks/sequel.rb +1 -1
  43. data/lib/appsignal/hooks/sidekiq.rb +33 -8
  44. data/lib/appsignal/integrations/que.rb +9 -8
  45. data/lib/appsignal/minutely.rb +38 -19
  46. data/lib/appsignal/transaction.rb +5 -0
  47. data/lib/appsignal/utils/rails_helper.rb +4 -0
  48. data/lib/appsignal/version.rb +1 -1
  49. data/lib/puma/plugin/appsignal.rb +26 -0
  50. data/spec/lib/appsignal/cli/diagnose/utils_spec.rb +40 -0
  51. data/spec/lib/appsignal/cli/install_spec.rb +51 -7
  52. data/spec/lib/appsignal/cli/notify_of_deploy_spec.rb +10 -0
  53. data/spec/lib/appsignal/config_spec.rb +13 -8
  54. data/spec/lib/appsignal/event_formatter/action_view/render_formatter_spec.rb +38 -28
  55. data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +104 -25
  56. data/spec/lib/appsignal/hooks/puma_spec.rb +69 -39
  57. data/spec/lib/appsignal/hooks/sidekiq_spec.rb +65 -3
  58. data/spec/lib/appsignal/hooks_spec.rb +4 -0
  59. data/spec/lib/appsignal/minutely_spec.rb +150 -88
  60. data/spec/lib/appsignal/transaction_spec.rb +27 -4
  61. data/spec/lib/appsignal_spec.rb +62 -11
  62. data/spec/lib/puma/appsignal_spec.rb +91 -0
  63. data/spec/support/{project_fixture → fixtures/projects/valid}/config/application.rb +0 -0
  64. data/spec/support/{project_fixture → fixtures/projects/valid}/config/appsignal.yml +0 -0
  65. data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/development.rb +0 -0
  66. data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/production.rb +0 -0
  67. data/spec/support/{project_fixture → fixtures/projects/valid}/config/environments/test.rb +0 -0
  68. data/spec/support/{project_fixture → fixtures/projects/valid}/log/.gitkeep +0 -0
  69. data/spec/support/helpers/config_helpers.rb +1 -1
  70. data/spec/support/helpers/wait_for_helper.rb +28 -0
  71. data/spec/support/mocks/mock_probe.rb +11 -0
  72. metadata +38 -30
  73. data/spec/support/fixtures/containers/cgroups/docker +0 -14
  74. data/spec/support/fixtures/containers/cgroups/docker_systemd +0 -8
  75. data/spec/support/fixtures/containers/cgroups/lxc +0 -10
  76. data/spec/support/fixtures/containers/cgroups/no_permission +0 -0
  77. 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) { double(:error, :message => "test message", :backtrace => ["line 1"]) }
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
- "RSpec::Mocks::Double",
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) { double(:error, :message => nil, :backtrace => ["line 1"]) }
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
- "RSpec::Mocks::Double",
690
+ "ExampleStandardError",
668
691
  "",
669
692
  Appsignal::Utils::Data.generate(["line 1"])
670
693
  )
@@ -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
- .with("Can't send error, given value is not an exception")
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 nil" do
739
- it "does nothing" do
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(nil)
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
@@ -1,7 +1,7 @@
1
1
  module ConfigHelpers
2
2
  def project_fixture_path
3
3
  File.expand_path(
4
- File.join(File.dirname(__FILE__), "../project_fixture")
4
+ File.join(File.dirname(__FILE__), "../fixtures/projects/valid")
5
5
  )
6
6
  end
7
7
 
@@ -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
@@ -0,0 +1,11 @@
1
+ class MockProbe
2
+ attr_reader :calls
3
+
4
+ def initialize
5
+ @calls = 0
6
+ end
7
+
8
+ def call
9
+ @calls += 1
10
+ end
11
+ 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.2.alpha.1
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-03-28 00:00:00.000000000 Z
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.7'
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.7'
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: '0'
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: '0'
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/project_fixture/config/application.rb
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
- rubygems_version: 3.0.2
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/project_fixture/config/application.rb
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