appsignal 2.2.1 → 2.3.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/appsignal.gemspec +1 -2
  4. data/ext/agent.yml +11 -11
  5. data/ext/appsignal_extension.c +17 -1
  6. data/lib/appsignal/config.rb +7 -4
  7. data/lib/appsignal/hooks.rb +1 -6
  8. data/lib/appsignal/hooks/action_cable.rb +113 -0
  9. data/lib/appsignal/hooks/active_support_notifications.rb +12 -4
  10. data/lib/appsignal/hooks/shoryuken.rb +11 -11
  11. data/lib/appsignal/hooks/sidekiq.rb +5 -3
  12. data/lib/appsignal/integrations/delayed_job_plugin.rb +5 -1
  13. data/lib/appsignal/integrations/resque_active_job.rb +4 -1
  14. data/lib/appsignal/transaction.rb +40 -13
  15. data/lib/appsignal/version.rb +1 -1
  16. data/spec/lib/appsignal/config_spec.rb +8 -1
  17. data/spec/lib/appsignal/hooks/action_cable_spec.rb +370 -0
  18. data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +39 -7
  19. data/spec/lib/appsignal/hooks/delayed_job_spec.rb +179 -34
  20. data/spec/lib/appsignal/hooks/shoryuken_spec.rb +125 -30
  21. data/spec/lib/appsignal/hooks/sidekiq_spec.rb +140 -21
  22. data/spec/lib/appsignal/hooks_spec.rb +0 -21
  23. data/spec/lib/appsignal/integrations/resque_active_job_spec.rb +62 -17
  24. data/spec/lib/appsignal/integrations/resque_spec.rb +24 -12
  25. data/spec/lib/appsignal/transaction_spec.rb +230 -91
  26. data/spec/spec_helper.rb +8 -2
  27. data/spec/support/helpers/dependency_helper.rb +4 -0
  28. data/spec/support/helpers/env_helpers.rb +1 -1
  29. data/spec/support/helpers/log_helpers.rb +17 -0
  30. data/spec/support/matchers/contains_log.rb +7 -0
  31. data/spec/support/shared_examples/instrument.rb +2 -2
  32. metadata +13 -20
@@ -13,10 +13,13 @@ require "pry"
13
13
  require "timecop"
14
14
  require "webmock/rspec"
15
15
 
16
- Dir[File.join(APPSIGNAL_SPEC_DIR, "support/helpers", "*.rb")].each do |f|
16
+ Dir[File.join(APPSIGNAL_SPEC_DIR, "support", "helpers", "*.rb")].each do |f|
17
17
  require f
18
18
  end
19
- Dir[File.join(APPSIGNAL_SPEC_DIR, "support/mocks", "*.rb")].each do |f|
19
+ Dir[File.join(DirectoryHelper.support_dir, "mocks", "*.rb")].each do |f|
20
+ require f
21
+ end
22
+ Dir[File.join(DirectoryHelper.support_dir, "matchers", "*.rb")].each do |f|
20
23
  require f
21
24
  end
22
25
  Dir[File.join(APPSIGNAL_SPEC_DIR, "support/shared_examples", "*.rb")].each do |f|
@@ -52,8 +55,11 @@ RSpec.configure do |config|
52
55
  config.include TransactionHelpers
53
56
  config.include ApiRequestHelper
54
57
  config.include SystemHelpers
58
+ config.include LogHelpers
55
59
  config.extend DependencyHelper
56
60
 
61
+ config.fail_if_no_examples = true
62
+
57
63
  config.before :context do
58
64
  # Use modified SYSTEM_TMP_DIR
59
65
  Appsignal::Config.send :remove_const, :SYSTEM_TMP_DIR
@@ -21,6 +21,10 @@ module DependencyHelper
21
21
  dependency_present? "redis"
22
22
  end
23
23
 
24
+ def action_cable_present?
25
+ dependency_present? "actioncable"
26
+ end
27
+
24
28
  def active_job_present?
25
29
  dependency_present? "activejob"
26
30
  end
@@ -3,7 +3,7 @@ module EnvHelpers
3
3
  path = args.delete(:path) || "/blog"
4
4
  Rack::MockRequest.env_for(
5
5
  path,
6
- :params => {
6
+ :params => args[:params] || {
7
7
  "controller" => "blog_posts",
8
8
  "action" => "show",
9
9
  "id" => "1"
@@ -0,0 +1,17 @@
1
+ module LogHelpers
2
+ def use_logger_with(log)
3
+ Appsignal.logger = Logger.new(log)
4
+ Appsignal.logger.formatter =
5
+ proc do |severity, _datetime, _progname, msg|
6
+ # This format is used in the `contains_log` matcher.
7
+ "[#{severity}] #{msg}\n"
8
+ end
9
+ yield
10
+ Appsignal.logger = nil
11
+ end
12
+
13
+ def log_contents(log)
14
+ log.rewind
15
+ log.read
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ RSpec::Matchers.define :contains_log do |level, message|
2
+ match do |actual|
3
+ actual.include?("[#{level.upcase}] #{message}")
4
+ end
5
+
6
+ diffable
7
+ end
@@ -24,9 +24,9 @@ RSpec.shared_examples "instrument helper" do
24
24
  expect do
25
25
  instrumenter.instrument "name", "title", "body" do
26
26
  stub.method_call
27
- raise "foo"
27
+ raise VerySpecificError, "foo"
28
28
  end
29
- end.to raise_error(StandardError, "foo")
29
+ end.to raise_error(VerySpecificError, "foo")
30
30
  end
31
31
  end
32
32
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appsignal
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Beekman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-10 00:00:00.000000000 Z
12
+ date: 2017-06-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -25,20 +25,6 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
- - !ruby/object:Gem::Dependency
29
- name: thread_safe
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
42
28
  - !ruby/object:Gem::Dependency
43
29
  name: rake
44
30
  requirement: !ruby/object:Gem::Requirement
@@ -59,14 +45,14 @@ dependencies:
59
45
  requirements:
60
46
  - - "~>"
61
47
  - !ruby/object:Gem::Version
62
- version: '3.5'
48
+ version: '3.6'
63
49
  type: :development
64
50
  prerelease: false
65
51
  version_requirements: !ruby/object:Gem::Requirement
66
52
  requirements:
67
53
  - - "~>"
68
54
  - !ruby/object:Gem::Version
69
- version: '3.5'
55
+ version: '3.6'
70
56
  - !ruby/object:Gem::Dependency
71
57
  name: pry
72
58
  requirement: !ruby/object:Gem::Requirement
@@ -201,6 +187,7 @@ files:
201
187
  - lib/appsignal/extension.rb
202
188
  - lib/appsignal/garbage_collection_profiler.rb
203
189
  - lib/appsignal/hooks.rb
190
+ - lib/appsignal/hooks/action_cable.rb
204
191
  - lib/appsignal/hooks/active_support_notifications.rb
205
192
  - lib/appsignal/hooks/celluloid.rb
206
193
  - lib/appsignal/hooks/data_mapper.rb
@@ -270,6 +257,7 @@ files:
270
257
  - spec/lib/appsignal/event_formatter_spec.rb
271
258
  - spec/lib/appsignal/extension_spec.rb
272
259
  - spec/lib/appsignal/garbage_collection_profiler_spec.rb
260
+ - spec/lib/appsignal/hooks/action_cable_spec.rb
273
261
  - spec/lib/appsignal/hooks/active_support_notifications_spec.rb
274
262
  - spec/lib/appsignal/hooks/celluloid_spec.rb
275
263
  - spec/lib/appsignal/hooks/data_mapper_spec.rb
@@ -325,11 +313,13 @@ files:
325
313
  - spec/support/helpers/dependency_helper.rb
326
314
  - spec/support/helpers/directory_helper.rb
327
315
  - spec/support/helpers/env_helpers.rb
316
+ - spec/support/helpers/log_helpers.rb
328
317
  - spec/support/helpers/std_streams_helper.rb
329
318
  - spec/support/helpers/system_helpers.rb
330
319
  - spec/support/helpers/time_helpers.rb
331
320
  - spec/support/helpers/transaction_helpers.rb
332
321
  - spec/support/helpers/very_specific_error.rb
322
+ - spec/support/matchers/contains_log.rb
333
323
  - spec/support/mocks/fake_gc_profiler.rb
334
324
  - spec/support/mocks/mock_extension.rb
335
325
  - spec/support/project_fixture/config/application.rb
@@ -357,9 +347,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
357
347
  version: '1.9'
358
348
  required_rubygems_version: !ruby/object:Gem::Requirement
359
349
  requirements:
360
- - - ">="
350
+ - - ">"
361
351
  - !ruby/object:Gem::Version
362
- version: '0'
352
+ version: 1.3.1
363
353
  requirements: []
364
354
  rubyforge_project:
365
355
  rubygems_version: 2.6.12
@@ -389,6 +379,7 @@ test_files:
389
379
  - spec/lib/appsignal/event_formatter_spec.rb
390
380
  - spec/lib/appsignal/extension_spec.rb
391
381
  - spec/lib/appsignal/garbage_collection_profiler_spec.rb
382
+ - spec/lib/appsignal/hooks/action_cable_spec.rb
392
383
  - spec/lib/appsignal/hooks/active_support_notifications_spec.rb
393
384
  - spec/lib/appsignal/hooks/celluloid_spec.rb
394
385
  - spec/lib/appsignal/hooks/data_mapper_spec.rb
@@ -444,11 +435,13 @@ test_files:
444
435
  - spec/support/helpers/dependency_helper.rb
445
436
  - spec/support/helpers/directory_helper.rb
446
437
  - spec/support/helpers/env_helpers.rb
438
+ - spec/support/helpers/log_helpers.rb
447
439
  - spec/support/helpers/std_streams_helper.rb
448
440
  - spec/support/helpers/system_helpers.rb
449
441
  - spec/support/helpers/time_helpers.rb
450
442
  - spec/support/helpers/transaction_helpers.rb
451
443
  - spec/support/helpers/very_specific_error.rb
444
+ - spec/support/matchers/contains_log.rb
452
445
  - spec/support/mocks/fake_gc_profiler.rb
453
446
  - spec/support/mocks/mock_extension.rb
454
447
  - spec/support/project_fixture/config/application.rb