appsignal 3.9.2 → 3.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +3135 -0
- data/.rubocop.yml +28 -20
- data/.rubocop_todo.yml +7 -33
- data/CHANGELOG.md +38 -0
- data/Rakefile +79 -64
- data/appsignal.gemspec +1 -1
- data/build_matrix.yml +109 -179
- data/ext/base.rb +1 -1
- data/gemfiles/hanami-2.1.gemfile +7 -0
- data/lib/appsignal/cli/diagnose.rb +1 -1
- data/lib/appsignal/config.rb +1 -1
- data/lib/appsignal/demo.rb +0 -1
- data/lib/appsignal/environment.rb +5 -1
- data/lib/appsignal/extension/jruby.rb +1 -1
- data/lib/appsignal/helpers/instrumentation.rb +1 -1
- data/lib/appsignal/integrations/grape.rb +19 -47
- data/lib/appsignal/integrations/hanami.rb +8 -7
- data/lib/appsignal/integrations/padrino.rb +46 -43
- data/lib/appsignal/integrations/railtie.rb +0 -3
- data/lib/appsignal/integrations/sinatra.rb +0 -1
- data/lib/appsignal/probes/gvl.rb +24 -2
- data/lib/appsignal/probes/sidekiq.rb +1 -1
- data/lib/appsignal/probes.rb +1 -1
- data/lib/appsignal/rack/abstract_middleware.rb +62 -28
- data/lib/appsignal/rack/event_handler.rb +12 -3
- data/lib/appsignal/rack/grape_middleware.rb +40 -0
- data/lib/appsignal/rack/hanami_middleware.rb +1 -11
- data/lib/appsignal/rack/rails_instrumentation.rb +14 -55
- data/lib/appsignal/utils/integration_memory_logger.rb +78 -0
- data/lib/appsignal/utils.rb +1 -0
- data/lib/appsignal/version.rb +1 -1
- data/lib/appsignal.rb +34 -33
- data/spec/.rubocop.yml +1 -1
- data/spec/lib/appsignal/cli/diagnose_spec.rb +1 -1
- data/spec/lib/appsignal/cli/install_spec.rb +3 -3
- data/spec/lib/appsignal/config_spec.rb +7 -5
- data/spec/lib/appsignal/demo_spec.rb +38 -41
- data/spec/lib/appsignal/hooks/action_cable_spec.rb +86 -167
- data/spec/lib/appsignal/hooks/active_support_notifications/finish_with_state_shared_examples.rb +8 -20
- data/spec/lib/appsignal/hooks/active_support_notifications/instrument_shared_examples.rb +38 -84
- data/spec/lib/appsignal/hooks/active_support_notifications/start_finish_shared_examples.rb +16 -37
- data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +4 -4
- data/spec/lib/appsignal/hooks/activejob_spec.rb +111 -200
- data/spec/lib/appsignal/hooks/delayed_job_spec.rb +54 -91
- data/spec/lib/appsignal/hooks/dry_monitor_spec.rb +14 -32
- data/spec/lib/appsignal/hooks/excon_spec.rb +8 -12
- data/spec/lib/appsignal/hooks/net_http_spec.rb +7 -42
- data/spec/lib/appsignal/hooks/rake_spec.rb +9 -19
- data/spec/lib/appsignal/hooks/redis_client_spec.rb +18 -30
- data/spec/lib/appsignal/hooks/redis_spec.rb +10 -16
- data/spec/lib/appsignal/hooks/resque_spec.rb +42 -62
- data/spec/lib/appsignal/hooks/shoryuken_spec.rb +33 -74
- data/spec/lib/appsignal/integrations/hanami_spec.rb +79 -21
- data/spec/lib/appsignal/integrations/http_spec.rb +12 -20
- data/spec/lib/appsignal/integrations/net_http_spec.rb +33 -0
- data/spec/lib/appsignal/integrations/object_spec.rb +29 -36
- data/spec/lib/appsignal/integrations/padrino_spec.rb +47 -70
- data/spec/lib/appsignal/integrations/que_spec.rb +43 -70
- data/spec/lib/appsignal/integrations/railtie_spec.rb +26 -67
- data/spec/lib/appsignal/integrations/sidekiq_spec.rb +86 -160
- data/spec/lib/appsignal/integrations/sinatra_spec.rb +0 -1
- data/spec/lib/appsignal/integrations/webmachine_spec.rb +28 -39
- data/spec/lib/appsignal/probes/gvl_spec.rb +80 -3
- data/spec/lib/appsignal/probes_spec.rb +7 -4
- data/spec/lib/appsignal/rack/abstract_middleware_spec.rb +215 -106
- data/spec/lib/appsignal/rack/event_handler_spec.rb +81 -78
- data/spec/lib/appsignal/rack/generic_instrumentation_spec.rb +2 -12
- data/spec/lib/appsignal/rack/grape_middleware_spec.rb +234 -0
- data/spec/lib/appsignal/rack/hanami_middleware_spec.rb +2 -16
- data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +67 -131
- data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +36 -44
- data/spec/lib/appsignal/rack/streaming_listener_spec.rb +68 -86
- data/spec/lib/appsignal/transaction_spec.rb +76 -90
- data/spec/lib/appsignal/utils/integration_memory_logger_spec.rb +163 -0
- data/spec/lib/appsignal_spec.rb +363 -342
- data/spec/support/helpers/dependency_helper.rb +6 -1
- data/spec/support/helpers/std_streams_helper.rb +1 -1
- data/spec/support/helpers/transaction_helpers.rb +8 -0
- data/spec/support/matchers/transaction.rb +185 -0
- data/spec/support/mocks/dummy_app.rb +20 -0
- data/spec/support/shared_examples/instrument.rb +17 -12
- data/spec/support/testing.rb +18 -9
- metadata +15 -10
- data/.semaphore/semaphore.yml +0 -2347
- data/script/lint_git +0 -22
- data/spec/lib/appsignal/integrations/grape_spec.rb +0 -239
- data/spec/support/matchers/be_completed.rb +0 -5
- /data/gemfiles/{hanami.gemfile → hanami-2.0.gemfile} +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
module DependencyHelper
|
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
|
@@ -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
|
@@ -1,22 +1,14 @@
|
|
1
1
|
RSpec.shared_examples "instrument helper" do
|
2
|
-
|
3
|
-
|
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
|
data/spec/support/testing.rb
CHANGED
@@ -120,16 +120,25 @@ end
|
|
120
120
|
|
121
121
|
module AppsignalTest
|
122
122
|
module Transaction
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
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.
|
4
|
+
version: 3.9.3
|
5
5
|
platform: ruby
|
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-
|
13
|
+
date: 2024-07-02 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.
|
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.
|
84
|
+
version: 1.64.1
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: timecop
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,13 +135,13 @@ extra_rdoc_files: []
|
|
135
135
|
files:
|
136
136
|
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
137
137
|
- ".github/ISSUE_TEMPLATE/chore.md"
|
138
|
+
- ".github/workflows/ci.yml"
|
138
139
|
- ".github/workflows/create_release_from_tag.yml"
|
139
140
|
- ".gitignore"
|
140
141
|
- ".gitmodules"
|
141
142
|
- ".rspec"
|
142
143
|
- ".rubocop.yml"
|
143
144
|
- ".rubocop_todo.yml"
|
144
|
-
- ".semaphore/semaphore.yml"
|
145
145
|
- ".yardopts"
|
146
146
|
- CHANGELOG.md
|
147
147
|
- CODE_OF_CONDUCT.md
|
@@ -163,7 +163,8 @@ files:
|
|
163
163
|
- gemfiles/capistrano3.gemfile
|
164
164
|
- gemfiles/dry-monitor.gemfile
|
165
165
|
- gemfiles/grape.gemfile
|
166
|
-
- gemfiles/hanami.gemfile
|
166
|
+
- gemfiles/hanami-2.0.gemfile
|
167
|
+
- gemfiles/hanami-2.1.gemfile
|
167
168
|
- gemfiles/http5.gemfile
|
168
169
|
- gemfiles/no_dependencies.gemfile
|
169
170
|
- gemfiles/padrino.gemfile
|
@@ -274,6 +275,7 @@ files:
|
|
274
275
|
- lib/appsignal/rack/abstract_middleware.rb
|
275
276
|
- lib/appsignal/rack/event_handler.rb
|
276
277
|
- lib/appsignal/rack/generic_instrumentation.rb
|
278
|
+
- lib/appsignal/rack/grape_middleware.rb
|
277
279
|
- lib/appsignal/rack/hanami_middleware.rb
|
278
280
|
- lib/appsignal/rack/rails_instrumentation.rb
|
279
281
|
- lib/appsignal/rack/sinatra_instrumentation.rb
|
@@ -286,6 +288,7 @@ files:
|
|
286
288
|
- lib/appsignal/utils/data.rb
|
287
289
|
- lib/appsignal/utils/hash_sanitizer.rb
|
288
290
|
- lib/appsignal/utils/integration_logger.rb
|
291
|
+
- lib/appsignal/utils/integration_memory_logger.rb
|
289
292
|
- lib/appsignal/utils/json.rb
|
290
293
|
- lib/appsignal/utils/query_params_sanitizer.rb
|
291
294
|
- lib/appsignal/utils/rails_helper.rb
|
@@ -296,7 +299,6 @@ files:
|
|
296
299
|
- mono.yml
|
297
300
|
- resources/appsignal.yml.erb
|
298
301
|
- resources/cacert.pem
|
299
|
-
- script/lint_git
|
300
302
|
- spec/.rubocop.yml
|
301
303
|
- spec/lib/appsignal/auth_check_spec.rb
|
302
304
|
- spec/lib/appsignal/capistrano2_spec.rb
|
@@ -357,10 +359,10 @@ files:
|
|
357
359
|
- spec/lib/appsignal/hooks/webmachine_spec.rb
|
358
360
|
- spec/lib/appsignal/hooks_spec.rb
|
359
361
|
- spec/lib/appsignal/integrations/data_mapper_spec.rb
|
360
|
-
- spec/lib/appsignal/integrations/grape_spec.rb
|
361
362
|
- spec/lib/appsignal/integrations/hanami_spec.rb
|
362
363
|
- spec/lib/appsignal/integrations/http_spec.rb
|
363
364
|
- spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb
|
365
|
+
- spec/lib/appsignal/integrations/net_http_spec.rb
|
364
366
|
- spec/lib/appsignal/integrations/object_spec.rb
|
365
367
|
- spec/lib/appsignal/integrations/padrino_spec.rb
|
366
368
|
- spec/lib/appsignal/integrations/que_spec.rb
|
@@ -377,6 +379,7 @@ files:
|
|
377
379
|
- spec/lib/appsignal/rack/abstract_middleware_spec.rb
|
378
380
|
- spec/lib/appsignal/rack/event_handler_spec.rb
|
379
381
|
- spec/lib/appsignal/rack/generic_instrumentation_spec.rb
|
382
|
+
- spec/lib/appsignal/rack/grape_middleware_spec.rb
|
380
383
|
- spec/lib/appsignal/rack/hanami_middleware_spec.rb
|
381
384
|
- spec/lib/appsignal/rack/rails_instrumentation_spec.rb
|
382
385
|
- spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb
|
@@ -388,6 +391,7 @@ files:
|
|
388
391
|
- spec/lib/appsignal/utils/data_spec.rb
|
389
392
|
- spec/lib/appsignal/utils/hash_sanitizer_spec.rb
|
390
393
|
- spec/lib/appsignal/utils/integration_logger_spec.rb
|
394
|
+
- spec/lib/appsignal/utils/integration_memory_logger_spec.rb
|
391
395
|
- spec/lib/appsignal/utils/json_spec.rb
|
392
396
|
- spec/lib/appsignal/utils/query_params_sanitizer_spec.rb
|
393
397
|
- spec/lib/appsignal_spec.rb
|
@@ -421,10 +425,11 @@ files:
|
|
421
425
|
- spec/support/helpers/time_helpers.rb
|
422
426
|
- spec/support/helpers/transaction_helpers.rb
|
423
427
|
- spec/support/helpers/wait_for_helper.rb
|
424
|
-
- spec/support/matchers/be_completed.rb
|
425
428
|
- spec/support/matchers/contains_log.rb
|
426
429
|
- spec/support/matchers/have_colorized_text.rb
|
430
|
+
- spec/support/matchers/transaction.rb
|
427
431
|
- spec/support/mocks/appsignal_mock.rb
|
432
|
+
- spec/support/mocks/dummy_app.rb
|
428
433
|
- spec/support/mocks/fake_gc_profiler.rb
|
429
434
|
- spec/support/mocks/fake_gvl_tools.rb
|
430
435
|
- spec/support/mocks/mock_probe.rb
|
@@ -462,7 +467,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
462
467
|
- !ruby/object:Gem::Version
|
463
468
|
version: '0'
|
464
469
|
requirements: []
|
465
|
-
rubygems_version: 3.
|
470
|
+
rubygems_version: 3.3.7
|
466
471
|
signing_key:
|
467
472
|
specification_version: 4
|
468
473
|
summary: Logs performance and exception data from your app to appsignal.com
|