appsignal 3.9.2-java → 3.10.0-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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3138 -0
  3. data/.rubocop.yml +28 -20
  4. data/.rubocop_todo.yml +7 -33
  5. data/CHANGELOG.md +130 -0
  6. data/README.md +0 -1
  7. data/Rakefile +80 -65
  8. data/appsignal.gemspec +1 -1
  9. data/build_matrix.yml +112 -184
  10. data/ext/base.rb +1 -1
  11. data/gemfiles/hanami-2.1.gemfile +7 -0
  12. data/gemfiles/webmachine1.gemfile +5 -4
  13. data/lib/appsignal/cli/diagnose.rb +1 -1
  14. data/lib/appsignal/config.rb +5 -1
  15. data/lib/appsignal/demo.rb +0 -1
  16. data/lib/appsignal/environment.rb +11 -2
  17. data/lib/appsignal/extension/jruby.rb +1 -1
  18. data/lib/appsignal/helpers/instrumentation.rb +164 -2
  19. data/lib/appsignal/hooks/active_job.rb +1 -6
  20. data/lib/appsignal/integrations/grape.rb +19 -47
  21. data/lib/appsignal/integrations/hanami.rb +8 -7
  22. data/lib/appsignal/integrations/padrino.rb +51 -52
  23. data/lib/appsignal/integrations/railtie.rb +0 -3
  24. data/lib/appsignal/integrations/rake.rb +46 -12
  25. data/lib/appsignal/integrations/sidekiq.rb +1 -11
  26. data/lib/appsignal/integrations/sinatra.rb +0 -1
  27. data/lib/appsignal/integrations/webmachine.rb +15 -9
  28. data/lib/appsignal/probes/gvl.rb +24 -2
  29. data/lib/appsignal/probes/sidekiq.rb +1 -1
  30. data/lib/appsignal/probes.rb +1 -1
  31. data/lib/appsignal/rack/abstract_middleware.rb +104 -33
  32. data/lib/appsignal/rack/body_wrapper.rb +143 -0
  33. data/lib/appsignal/rack/event_handler.rb +12 -3
  34. data/lib/appsignal/rack/generic_instrumentation.rb +5 -4
  35. data/lib/appsignal/rack/grape_middleware.rb +40 -0
  36. data/lib/appsignal/rack/hanami_middleware.rb +2 -12
  37. data/lib/appsignal/rack/instrumentation_middleware.rb +62 -0
  38. data/lib/appsignal/rack/rails_instrumentation.rb +14 -57
  39. data/lib/appsignal/rack/sinatra_instrumentation.rb +1 -3
  40. data/lib/appsignal/rack/streaming_listener.rb +13 -59
  41. data/lib/appsignal/rack.rb +31 -0
  42. data/lib/appsignal/transaction.rb +50 -8
  43. data/lib/appsignal/utils/integration_memory_logger.rb +78 -0
  44. data/lib/appsignal/utils.rb +1 -0
  45. data/lib/appsignal/version.rb +1 -1
  46. data/lib/appsignal.rb +36 -33
  47. data/spec/.rubocop.yml +1 -1
  48. data/spec/lib/appsignal/cli/diagnose_spec.rb +1 -1
  49. data/spec/lib/appsignal/cli/install_spec.rb +3 -3
  50. data/spec/lib/appsignal/config_spec.rb +8 -5
  51. data/spec/lib/appsignal/demo_spec.rb +38 -41
  52. data/spec/lib/appsignal/hooks/action_cable_spec.rb +86 -167
  53. data/spec/lib/appsignal/hooks/active_support_notifications/finish_with_state_shared_examples.rb +8 -20
  54. data/spec/lib/appsignal/hooks/active_support_notifications/instrument_shared_examples.rb +38 -84
  55. data/spec/lib/appsignal/hooks/active_support_notifications/start_finish_shared_examples.rb +16 -37
  56. data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +4 -4
  57. data/spec/lib/appsignal/hooks/activejob_spec.rb +111 -200
  58. data/spec/lib/appsignal/hooks/delayed_job_spec.rb +54 -91
  59. data/spec/lib/appsignal/hooks/dry_monitor_spec.rb +14 -32
  60. data/spec/lib/appsignal/hooks/excon_spec.rb +8 -12
  61. data/spec/lib/appsignal/hooks/net_http_spec.rb +7 -42
  62. data/spec/lib/appsignal/hooks/rake_spec.rb +107 -34
  63. data/spec/lib/appsignal/hooks/redis_client_spec.rb +18 -30
  64. data/spec/lib/appsignal/hooks/redis_spec.rb +10 -16
  65. data/spec/lib/appsignal/hooks/resque_spec.rb +42 -62
  66. data/spec/lib/appsignal/hooks/shoryuken_spec.rb +33 -74
  67. data/spec/lib/appsignal/integrations/hanami_spec.rb +79 -21
  68. data/spec/lib/appsignal/integrations/http_spec.rb +12 -20
  69. data/spec/lib/appsignal/integrations/net_http_spec.rb +33 -0
  70. data/spec/lib/appsignal/integrations/object_spec.rb +29 -36
  71. data/spec/lib/appsignal/integrations/padrino_spec.rb +190 -163
  72. data/spec/lib/appsignal/integrations/que_spec.rb +43 -70
  73. data/spec/lib/appsignal/integrations/railtie_spec.rb +26 -67
  74. data/spec/lib/appsignal/integrations/sidekiq_spec.rb +86 -160
  75. data/spec/lib/appsignal/integrations/sinatra_spec.rb +10 -3
  76. data/spec/lib/appsignal/integrations/webmachine_spec.rb +77 -40
  77. data/spec/lib/appsignal/probes/gvl_spec.rb +80 -3
  78. data/spec/lib/appsignal/probes_spec.rb +7 -4
  79. data/spec/lib/appsignal/rack/abstract_middleware_spec.rb +302 -105
  80. data/spec/lib/appsignal/rack/body_wrapper_spec.rb +263 -0
  81. data/spec/lib/appsignal/rack/event_handler_spec.rb +81 -78
  82. data/spec/lib/appsignal/rack/generic_instrumentation_spec.rb +70 -27
  83. data/spec/lib/appsignal/rack/grape_middleware_spec.rb +234 -0
  84. data/spec/lib/appsignal/rack/hanami_middleware_spec.rb +2 -16
  85. data/spec/lib/appsignal/rack/instrumentation_middleware_spec.rb +38 -0
  86. data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +67 -131
  87. data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +36 -44
  88. data/spec/lib/appsignal/rack/streaming_listener_spec.rb +44 -139
  89. data/spec/lib/appsignal/transaction_spec.rb +239 -94
  90. data/spec/lib/appsignal/utils/integration_memory_logger_spec.rb +163 -0
  91. data/spec/lib/appsignal_spec.rb +556 -344
  92. data/spec/support/helpers/dependency_helper.rb +6 -1
  93. data/spec/support/helpers/std_streams_helper.rb +1 -1
  94. data/spec/support/helpers/transaction_helpers.rb +8 -0
  95. data/spec/support/matchers/transaction.rb +185 -0
  96. data/spec/support/mocks/dummy_app.rb +20 -0
  97. data/spec/support/shared_examples/instrument.rb +17 -12
  98. data/spec/support/testing.rb +18 -9
  99. metadata +20 -11
  100. data/.semaphore/semaphore.yml +0 -2347
  101. data/script/lint_git +0 -22
  102. data/spec/lib/appsignal/integrations/grape_spec.rb +0 -239
  103. data/spec/support/matchers/be_completed.rb +0 -5
  104. data/support/check_versions +0 -22
  105. /data/gemfiles/{hanami.gemfile → hanami-2.0.gemfile} +0 -0
@@ -1,4 +1,4 @@
1
- module DependencyHelper # rubocop:disable Metrics/ModuleLength
1
+ module DependencyHelper
2
2
  module_function
3
3
 
4
4
  def ruby_version
@@ -123,6 +123,11 @@ module DependencyHelper # rubocop:disable Metrics/ModuleLength
123
123
  dependency_present? "hanami"
124
124
  end
125
125
 
126
+ def hanami2_1_present?
127
+ hanami_present? &&
128
+ Gem::Version.new(::Hanami::VERSION) >= Gem::Version.new("2.1.0")
129
+ end
130
+
126
131
  def dry_monitor_present?
127
132
  dependency_present? "dry-monitor"
128
133
  end
@@ -89,6 +89,6 @@ module StdStreamsHelper
89
89
  end
90
90
  end
91
91
  reject
92
- end.join(",")
92
+ end.join
93
93
  end
94
94
  end
@@ -44,6 +44,14 @@ module TransactionHelpers
44
44
  created_transactions.last
45
45
  end
46
46
 
47
+ def current_transaction?
48
+ Appsignal::Transaction.current?
49
+ end
50
+
51
+ def current_transaction
52
+ Appsignal::Transaction.current
53
+ end
54
+
47
55
  # Set current transaction manually.
48
56
  # Cleared by {clear_current_transaction!}
49
57
  #
@@ -0,0 +1,185 @@
1
+ def define_transaction_metadata_matcher_for(matcher_key, value_key = matcher_key)
2
+ value_key = value_key.to_s
3
+
4
+ RSpec::Matchers.define "have_#{matcher_key}" do |expected_value|
5
+ match(:notify_expectation_failures => true) do |transaction|
6
+ actual_value = transaction.to_h[value_key]
7
+ if expected_value
8
+ expect(actual_value).to eq(expected_value)
9
+ else
10
+ expect(actual_value).to_not be_nil
11
+ end
12
+ end
13
+
14
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
15
+ actual_value = transaction.to_h[value_key]
16
+ if expected_value
17
+ expect(actual_value).to_not eq(expected_value)
18
+ else
19
+ expect(actual_value).to be_nil
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ define_transaction_metadata_matcher_for(:id)
26
+ define_transaction_metadata_matcher_for(:namespace)
27
+ define_transaction_metadata_matcher_for(:action)
28
+
29
+ def define_transaction_sample_matcher_for(matcher_key, value_key = matcher_key)
30
+ value_key = value_key.to_s
31
+
32
+ RSpec::Matchers.define "include_#{matcher_key}" do |expected_value|
33
+ match(:notify_expectation_failures => true) do |transaction|
34
+ sample_data = transaction.to_h.dig("sample_data", value_key) || {}
35
+
36
+ if expected_value
37
+ expected_value = hash_including(expected_value) if expected_value.is_a?(Hash)
38
+ expect(sample_data).to match(expected_value)
39
+ else
40
+ expect(sample_data).to be_present
41
+ end
42
+ end
43
+
44
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
45
+ sample_data = transaction.to_h.dig("sample_data", value_key) || {}
46
+
47
+ if expected_value
48
+ expect(sample_data).to_not include(expected_value)
49
+ else
50
+ expect(sample_data).to be_empty
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ define_transaction_sample_matcher_for(:sample_metadata, :metadata)
57
+ define_transaction_sample_matcher_for(:params)
58
+ define_transaction_sample_matcher_for(:environment)
59
+ define_transaction_sample_matcher_for(:session_data)
60
+ define_transaction_sample_matcher_for(:tags)
61
+ define_transaction_sample_matcher_for(:custom_data)
62
+
63
+ RSpec::Matchers.define :be_completed do
64
+ match(:notify_expectation_failures => true) do |transaction|
65
+ values_match? transaction.ext._completed?, true
66
+ end
67
+ end
68
+
69
+ RSpec::Matchers.define :have_error do |error_class, error_message|
70
+ match(:notify_expectation_failures => true) do |transaction|
71
+ transaction_error = transaction.to_h["error"]
72
+ if error_class && error_message
73
+ expect(transaction_error).to include(
74
+ "name" => error_class,
75
+ "message" => error_message,
76
+ "backtrace" => kind_of(String)
77
+ )
78
+ else
79
+ expect(transaction_error).to be_any
80
+ end
81
+ end
82
+
83
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
84
+ transaction_error = transaction.to_h["error"]
85
+ if error_class && error_message
86
+ expect(transaction_error).to_not include(
87
+ "name" => error_class,
88
+ "message" => error_message,
89
+ "backtrace" => kind_of(String)
90
+ )
91
+ else
92
+ expect(transaction_error).to be_nil
93
+ end
94
+ end
95
+ end
96
+
97
+ RSpec::Matchers.define :include_event do |event|
98
+ match(:notify_expectation_failures => true) do |transaction|
99
+ events = transaction.to_h["events"]
100
+ if event
101
+ expect(events).to include(format_event(event))
102
+ else
103
+ expect(events).to be_any
104
+ end
105
+ end
106
+
107
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
108
+ events = transaction.to_h["events"]
109
+ if event
110
+ expect(events).to_not include(format_event(event))
111
+ else
112
+ expect(events).to be_empty
113
+ end
114
+ end
115
+
116
+ def format_event(event)
117
+ hash_including({
118
+ "body" => "",
119
+ "body_format" => Appsignal::EventFormatter::DEFAULT,
120
+ "count" => 1,
121
+ "name" => kind_of(String),
122
+ "title" => ""
123
+ }.merge(event.transform_keys(&:to_s)))
124
+ end
125
+ end
126
+ RSpec::Matchers.alias_matcher :include_events, :include_event
127
+
128
+ RSpec::Matchers.define :include_metadata do |metadata|
129
+ match(:notify_expectation_failures => true) do |transaction|
130
+ actual_metadata = transaction.to_h["metadata"]
131
+ if metadata
132
+ expect(actual_metadata).to include(metadata)
133
+ else
134
+ expect(actual_metadata).to be_any
135
+ end
136
+ end
137
+
138
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
139
+ actual_metadata = transaction.to_h["metadata"]
140
+ if metadata
141
+ expect(actual_metadata).to_not include(metadata)
142
+ else
143
+ expect(actual_metadata).to be_empty
144
+ end
145
+ end
146
+ end
147
+
148
+ RSpec::Matchers.define :include_breadcrumb do |action, category, message, metadata, time|
149
+ match(:notify_expectation_failures => true) do |transaction|
150
+ breadcrumbs = transaction.to_h.dig("sample_data", "breadcrumbs")
151
+ if action
152
+ breadcrumb = format_breadcrumb(action, category, message, metadata, time)
153
+ expect(breadcrumbs).to include(breadcrumb)
154
+ else
155
+ expect(transaction.to_h.dig("sample_data", "breadcrumbs")).to be_any
156
+ end
157
+ end
158
+
159
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
160
+ breadcrumbs = transaction.to_h.dig("sample_data", "breadcrumbs")
161
+ if action
162
+ breadcrumb = format_breadcrumb(action, category, message, metadata, time)
163
+ expect(breadcrumbs).to_not include(breadcrumb)
164
+ else
165
+ expect(breadcrumbs).to_not be_any
166
+ end
167
+ end
168
+
169
+ def format_breadcrumb(action, category, message, metadata, time)
170
+ {
171
+ "action" => action,
172
+ "category" => category,
173
+ "message" => message,
174
+ "metadata" => metadata,
175
+ "time" => time
176
+ }
177
+ end
178
+ end
179
+ RSpec::Matchers.alias_matcher :include_breadcrumbs, :include_breadcrumb
180
+
181
+ RSpec::Matchers.define :have_queue_start do |queue_start_time|
182
+ match(:notify_expectation_failures => true) do |transaction|
183
+ expect(transaction.ext.queue_start).to eq(queue_start_time)
184
+ end
185
+ end
@@ -0,0 +1,20 @@
1
+ class DummyApp
2
+ def initialize(&app)
3
+ @app = app
4
+ @called = false
5
+ end
6
+
7
+ def call(env)
8
+ if @app
9
+ @app&.call(env)
10
+ else
11
+ [200, {}, ["body"]]
12
+ end
13
+ ensure
14
+ @called = true
15
+ end
16
+
17
+ def called?
18
+ @called
19
+ end
20
+ end
@@ -1,22 +1,14 @@
1
1
  RSpec.shared_examples "instrument helper" do
2
- let(:stub) { double }
3
- before do
4
- expect(stub).to receive(:method_call).and_return("return value")
5
-
6
- expect(transaction).to receive(:start_event)
7
- expect(transaction).to receive(:finish_event).with(
8
- "name",
9
- "title",
10
- "body",
11
- 0
12
- )
13
- end
2
+ around { |example| keep_transactions { example.run } }
3
+ let(:stub) { double(:method_call => "return value") }
14
4
 
15
5
  it "records an event around the given block" do
16
6
  return_value = instrumenter.instrument "name", "title", "body" do
17
7
  stub.method_call
18
8
  end
19
9
  expect(return_value).to eq "return value"
10
+
11
+ expect_transaction_to_have_event
20
12
  end
21
13
 
22
14
  context "with an error raised in the passed block" do
@@ -27,6 +19,8 @@ RSpec.shared_examples "instrument helper" do
27
19
  raise ExampleException, "foo"
28
20
  end
29
21
  end.to raise_error(ExampleException, "foo")
22
+
23
+ expect_transaction_to_have_event
30
24
  end
31
25
  end
32
26
 
@@ -38,6 +32,17 @@ RSpec.shared_examples "instrument helper" do
38
32
  throw :foo
39
33
  end
40
34
  end.to throw_symbol(:foo)
35
+
36
+ expect_transaction_to_have_event
41
37
  end
42
38
  end
39
+
40
+ def expect_transaction_to_have_event
41
+ expect(transaction).to include_event(
42
+ "name" => "name",
43
+ "title" => "title",
44
+ "body" => "body",
45
+ "body_format" => Appsignal::EventFormatter::DEFAULT
46
+ )
47
+ end
43
48
  end
@@ -120,16 +120,25 @@ end
120
120
 
121
121
  module AppsignalTest
122
122
  module Transaction
123
- # Override the {Appsignal::Transaction.new} method so we can track which
124
- # transactions are created on the {Appsignal::Testing.transactions} list.
125
- #
126
- # @see TransactionHelpers#last_transaction
127
- def new(*_args)
128
- transaction = super
129
- Appsignal::Testing.transactions << transaction
130
- transaction
123
+ module ClassMethods
124
+ # Override the {Appsignal::Transaction.new} method so we can track which
125
+ # transactions are created on the {Appsignal::Testing.transactions} list.
126
+ #
127
+ # @see TransactionHelpers#last_transaction
128
+ def new(*_args)
129
+ transaction = super
130
+ Appsignal::Testing.transactions << transaction
131
+ transaction
132
+ end
133
+ end
134
+
135
+ module InstanceMethods
136
+ def _sample
137
+ sample_data
138
+ end
131
139
  end
132
140
  end
133
141
  end
134
142
 
135
- Appsignal::Transaction.extend(AppsignalTest::Transaction)
143
+ Appsignal::Transaction.extend(AppsignalTest::Transaction::ClassMethods)
144
+ Appsignal::Transaction.prepend(AppsignalTest::Transaction::InstanceMethods)
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: 3.9.2
4
+ version: 3.10.0
5
5
  platform: java
6
6
  authors:
7
7
  - Robert Beekman
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-06-26 00:00:00.000000000 Z
13
+ date: 2024-07-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack
@@ -74,14 +74,14 @@ dependencies:
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 1.50.0
77
+ version: 1.64.1
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 1.50.0
84
+ version: 1.64.1
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: timecop
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -149,13 +149,13 @@ extra_rdoc_files: []
149
149
  files:
150
150
  - ".github/ISSUE_TEMPLATE/bug_report.md"
151
151
  - ".github/ISSUE_TEMPLATE/chore.md"
152
+ - ".github/workflows/ci.yml"
152
153
  - ".github/workflows/create_release_from_tag.yml"
153
154
  - ".gitignore"
154
155
  - ".gitmodules"
155
156
  - ".rspec"
156
157
  - ".rubocop.yml"
157
158
  - ".rubocop_todo.yml"
158
- - ".semaphore/semaphore.yml"
159
159
  - ".yardopts"
160
160
  - CHANGELOG.md
161
161
  - CODE_OF_CONDUCT.md
@@ -177,7 +177,8 @@ files:
177
177
  - gemfiles/capistrano3.gemfile
178
178
  - gemfiles/dry-monitor.gemfile
179
179
  - gemfiles/grape.gemfile
180
- - gemfiles/hanami.gemfile
180
+ - gemfiles/hanami-2.0.gemfile
181
+ - gemfiles/hanami-2.1.gemfile
181
182
  - gemfiles/http5.gemfile
182
183
  - gemfiles/no_dependencies.gemfile
183
184
  - gemfiles/padrino.gemfile
@@ -285,10 +286,14 @@ files:
285
286
  - lib/appsignal/probes/helpers.rb
286
287
  - lib/appsignal/probes/mri.rb
287
288
  - lib/appsignal/probes/sidekiq.rb
289
+ - lib/appsignal/rack.rb
288
290
  - lib/appsignal/rack/abstract_middleware.rb
291
+ - lib/appsignal/rack/body_wrapper.rb
289
292
  - lib/appsignal/rack/event_handler.rb
290
293
  - lib/appsignal/rack/generic_instrumentation.rb
294
+ - lib/appsignal/rack/grape_middleware.rb
291
295
  - lib/appsignal/rack/hanami_middleware.rb
296
+ - lib/appsignal/rack/instrumentation_middleware.rb
292
297
  - lib/appsignal/rack/rails_instrumentation.rb
293
298
  - lib/appsignal/rack/sinatra_instrumentation.rb
294
299
  - lib/appsignal/rack/streaming_listener.rb
@@ -300,6 +305,7 @@ files:
300
305
  - lib/appsignal/utils/data.rb
301
306
  - lib/appsignal/utils/hash_sanitizer.rb
302
307
  - lib/appsignal/utils/integration_logger.rb
308
+ - lib/appsignal/utils/integration_memory_logger.rb
303
309
  - lib/appsignal/utils/json.rb
304
310
  - lib/appsignal/utils/query_params_sanitizer.rb
305
311
  - lib/appsignal/utils/rails_helper.rb
@@ -310,7 +316,6 @@ files:
310
316
  - mono.yml
311
317
  - resources/appsignal.yml.erb
312
318
  - resources/cacert.pem
313
- - script/lint_git
314
319
  - spec/.rubocop.yml
315
320
  - spec/lib/appsignal/auth_check_spec.rb
316
321
  - spec/lib/appsignal/capistrano2_spec.rb
@@ -371,10 +376,10 @@ files:
371
376
  - spec/lib/appsignal/hooks/webmachine_spec.rb
372
377
  - spec/lib/appsignal/hooks_spec.rb
373
378
  - spec/lib/appsignal/integrations/data_mapper_spec.rb
374
- - spec/lib/appsignal/integrations/grape_spec.rb
375
379
  - spec/lib/appsignal/integrations/hanami_spec.rb
376
380
  - spec/lib/appsignal/integrations/http_spec.rb
377
381
  - spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb
382
+ - spec/lib/appsignal/integrations/net_http_spec.rb
378
383
  - spec/lib/appsignal/integrations/object_spec.rb
379
384
  - spec/lib/appsignal/integrations/padrino_spec.rb
380
385
  - spec/lib/appsignal/integrations/que_spec.rb
@@ -389,9 +394,12 @@ files:
389
394
  - spec/lib/appsignal/probes/sidekiq_spec.rb
390
395
  - spec/lib/appsignal/probes_spec.rb
391
396
  - spec/lib/appsignal/rack/abstract_middleware_spec.rb
397
+ - spec/lib/appsignal/rack/body_wrapper_spec.rb
392
398
  - spec/lib/appsignal/rack/event_handler_spec.rb
393
399
  - spec/lib/appsignal/rack/generic_instrumentation_spec.rb
400
+ - spec/lib/appsignal/rack/grape_middleware_spec.rb
394
401
  - spec/lib/appsignal/rack/hanami_middleware_spec.rb
402
+ - spec/lib/appsignal/rack/instrumentation_middleware_spec.rb
395
403
  - spec/lib/appsignal/rack/rails_instrumentation_spec.rb
396
404
  - spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb
397
405
  - spec/lib/appsignal/rack/streaming_listener_spec.rb
@@ -402,6 +410,7 @@ files:
402
410
  - spec/lib/appsignal/utils/data_spec.rb
403
411
  - spec/lib/appsignal/utils/hash_sanitizer_spec.rb
404
412
  - spec/lib/appsignal/utils/integration_logger_spec.rb
413
+ - spec/lib/appsignal/utils/integration_memory_logger_spec.rb
405
414
  - spec/lib/appsignal/utils/json_spec.rb
406
415
  - spec/lib/appsignal/utils/query_params_sanitizer_spec.rb
407
416
  - spec/lib/appsignal_spec.rb
@@ -435,10 +444,11 @@ files:
435
444
  - spec/support/helpers/time_helpers.rb
436
445
  - spec/support/helpers/transaction_helpers.rb
437
446
  - spec/support/helpers/wait_for_helper.rb
438
- - spec/support/matchers/be_completed.rb
439
447
  - spec/support/matchers/contains_log.rb
440
448
  - spec/support/matchers/have_colorized_text.rb
449
+ - spec/support/matchers/transaction.rb
441
450
  - spec/support/mocks/appsignal_mock.rb
451
+ - spec/support/mocks/dummy_app.rb
442
452
  - spec/support/mocks/fake_gc_profiler.rb
443
453
  - spec/support/mocks/fake_gvl_tools.rb
444
454
  - spec/support/mocks/mock_probe.rb
@@ -448,7 +458,6 @@ files:
448
458
  - spec/support/stubs/sidekiq/api.rb
449
459
  - spec/support/testing.rb
450
460
  - support/bundler_wrapper
451
- - support/check_versions
452
461
  - support/install_deps
453
462
  homepage: https://github.com/appsignal/appsignal-ruby
454
463
  licenses:
@@ -476,7 +485,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
476
485
  - !ruby/object:Gem::Version
477
486
  version: '0'
478
487
  requirements: []
479
- rubygems_version: 3.5.11
488
+ rubygems_version: 3.5.14
480
489
  signing_key:
481
490
  specification_version: 4
482
491
  summary: Logs performance and exception data from your app to appsignal.com