appsignal 0.9.3 → 0.9.4
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 +7 -0
- data/CHANGELOG.md +4 -0
- data/lib/appsignal/agent.rb +14 -1
- data/lib/appsignal/integrations/rails.rb +1 -1
- data/lib/appsignal/integrations/sinatra.rb +1 -1
- data/lib/appsignal/transaction.rb +1 -1
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/agent_spec.rb +28 -5
- metadata +25 -43
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 87281056af89689a3f66010e44c4f3a2791f137b
|
4
|
+
data.tar.gz: 2c0011b3c7b98bcf39ed208ad14036ed964606c4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6c220755d2e9ea83500fa489db7d95bf446cfaf9b15d781f3043d3bbe6208041ef46a528a5d42fe55ccc3526e4acbaacd6783ece791f7b261f9b83cab8127b16
|
7
|
+
data.tar.gz: 78ca1bcc64361c136879c5f1ae7f136e8718f166abd39a453b90ca274b3c5722b582dd527d0dc5f642d1292beb50777aa20aae4abe91826d4055e10c902b74cf
|
data/CHANGELOG.md
CHANGED
data/lib/appsignal/agent.rb
CHANGED
@@ -67,6 +67,18 @@ module Appsignal
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
def resubscribe
|
71
|
+
Appsignal.logger.debug('Resubscribing to notifications')
|
72
|
+
unsubscribe
|
73
|
+
subscribe
|
74
|
+
end
|
75
|
+
|
76
|
+
def unsubscribe
|
77
|
+
Appsignal.logger.debug('Unsubscribing from notifications')
|
78
|
+
ActiveSupport::Notifications.unsubscribe(@subscriber)
|
79
|
+
@subscriber = nil
|
80
|
+
end
|
81
|
+
|
70
82
|
def enqueue(transaction)
|
71
83
|
forked! if @pid != Process.pid
|
72
84
|
aggregator.add(transaction)
|
@@ -107,12 +119,13 @@ module Appsignal
|
|
107
119
|
Thread.exclusive do
|
108
120
|
@aggregator = Aggregator.new
|
109
121
|
end
|
122
|
+
resubscribe
|
110
123
|
restart_thread
|
111
124
|
end
|
112
125
|
|
113
126
|
def shutdown(send_current_queue=false, reason=nil)
|
114
127
|
Appsignal.logger.info("Shutting down agent (#{reason})")
|
115
|
-
|
128
|
+
unsubscribe
|
116
129
|
Thread.kill(thread) if thread
|
117
130
|
send_queue if send_current_queue && @aggregator.has_transactions?
|
118
131
|
end
|
@@ -136,7 +136,7 @@
|
|
136
136
|
Appsignal.enqueue(self)
|
137
137
|
end
|
138
138
|
else
|
139
|
-
Appsignal.logger.debug("Not processing transaction: #{@request_id}")
|
139
|
+
Appsignal.logger.debug("Not processing transaction: #{@request_id} (#{events.length} events recorded)")
|
140
140
|
end
|
141
141
|
ensure
|
142
142
|
Appsignal.transactions.delete(@request_id)
|
data/lib/appsignal/version.rb
CHANGED
@@ -83,11 +83,8 @@ describe Appsignal::Agent do
|
|
83
83
|
end
|
84
84
|
|
85
85
|
describe "#restart_thread" do
|
86
|
-
it "should stop thread" do
|
86
|
+
it "should stop and start the thread" do
|
87
87
|
subject.should_receive(:stop_thread)
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should start a thread" do
|
91
88
|
subject.should_receive(:start_thread)
|
92
89
|
end
|
93
90
|
|
@@ -135,7 +132,7 @@ describe Appsignal::Agent do
|
|
135
132
|
end
|
136
133
|
|
137
134
|
context "handling events" do
|
138
|
-
before
|
135
|
+
before :each do
|
139
136
|
# Unsubscribe previous notification subscribers
|
140
137
|
ActiveSupport::Notifications.notifier.instance_variable_get(:@subscribers).
|
141
138
|
reject { |sub| sub.instance_variable_get(:@pattern).is_a? String }.
|
@@ -193,6 +190,31 @@ describe Appsignal::Agent do
|
|
193
190
|
ActiveSupport::Notifications.instrument 'perform_job.processor'
|
194
191
|
end
|
195
192
|
end
|
193
|
+
|
194
|
+
describe "#unsubscribe" do
|
195
|
+
before :each do
|
196
|
+
Appsignal.agent.unsubscribe
|
197
|
+
end
|
198
|
+
|
199
|
+
it "should not have a subscriber" do
|
200
|
+
Appsignal.agent.subscriber.should be_nil
|
201
|
+
end
|
202
|
+
|
203
|
+
it "should add a normal event" do
|
204
|
+
Appsignal::Transaction.current.should_not_receive(:add_event)
|
205
|
+
|
206
|
+
ActiveSupport::Notifications.instrument 'moo'
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
describe "#resubscribe" do
|
212
|
+
it "should stop and start the thread" do
|
213
|
+
subject.should_receive(:unsubscribe)
|
214
|
+
subject.should_receive(:subscribe)
|
215
|
+
end
|
216
|
+
|
217
|
+
after { subject.resubscribe }
|
196
218
|
end
|
197
219
|
|
198
220
|
describe "#enqueue" do
|
@@ -272,6 +294,7 @@ describe Appsignal::Agent do
|
|
272
294
|
subject.pid.should == master_pid
|
273
295
|
|
274
296
|
Process.stub(:pid => 9000000001)
|
297
|
+
subject.should_receive(:resubscribe)
|
275
298
|
subject.should_receive(:restart_thread)
|
276
299
|
previous_aggregator = subject.aggregator
|
277
300
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appsignal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
5
|
-
prerelease:
|
4
|
+
version: 0.9.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Robert Beekman
|
@@ -13,134 +12,118 @@ authors:
|
|
13
12
|
autorequire:
|
14
13
|
bindir: bin
|
15
14
|
cert_chain: []
|
16
|
-
date: 2014-
|
15
|
+
date: 2014-08-05 00:00:00.000000000 Z
|
17
16
|
dependencies:
|
18
17
|
- !ruby/object:Gem::Dependency
|
19
18
|
name: activesupport
|
20
19
|
requirement: !ruby/object:Gem::Requirement
|
21
|
-
none: false
|
22
20
|
requirements:
|
23
|
-
- -
|
21
|
+
- - ">="
|
24
22
|
- !ruby/object:Gem::Version
|
25
23
|
version: '3.0'
|
26
24
|
type: :runtime
|
27
25
|
prerelease: false
|
28
26
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
27
|
requirements:
|
31
|
-
- -
|
28
|
+
- - ">="
|
32
29
|
- !ruby/object:Gem::Version
|
33
30
|
version: '3.0'
|
34
31
|
- !ruby/object:Gem::Dependency
|
35
32
|
name: rack
|
36
33
|
requirement: !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
34
|
requirements:
|
39
|
-
- -
|
35
|
+
- - ">="
|
40
36
|
- !ruby/object:Gem::Version
|
41
37
|
version: '0'
|
42
38
|
type: :runtime
|
43
39
|
prerelease: false
|
44
40
|
version_requirements: !ruby/object:Gem::Requirement
|
45
|
-
none: false
|
46
41
|
requirements:
|
47
|
-
- -
|
42
|
+
- - ">="
|
48
43
|
- !ruby/object:Gem::Version
|
49
44
|
version: '0'
|
50
45
|
- !ruby/object:Gem::Dependency
|
51
46
|
name: thread_safe
|
52
47
|
requirement: !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
48
|
requirements:
|
55
|
-
- -
|
49
|
+
- - ">="
|
56
50
|
- !ruby/object:Gem::Version
|
57
51
|
version: '0'
|
58
52
|
type: :runtime
|
59
53
|
prerelease: false
|
60
54
|
version_requirements: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
55
|
requirements:
|
63
|
-
- -
|
56
|
+
- - ">="
|
64
57
|
- !ruby/object:Gem::Version
|
65
58
|
version: '0'
|
66
59
|
- !ruby/object:Gem::Dependency
|
67
60
|
name: rake
|
68
61
|
requirement: !ruby/object:Gem::Requirement
|
69
|
-
none: false
|
70
62
|
requirements:
|
71
|
-
- -
|
63
|
+
- - ">="
|
72
64
|
- !ruby/object:Gem::Version
|
73
65
|
version: '0'
|
74
66
|
type: :development
|
75
67
|
prerelease: false
|
76
68
|
version_requirements: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
69
|
requirements:
|
79
|
-
- -
|
70
|
+
- - ">="
|
80
71
|
- !ruby/object:Gem::Version
|
81
72
|
version: '0'
|
82
73
|
- !ruby/object:Gem::Dependency
|
83
74
|
name: rspec
|
84
75
|
requirement: !ruby/object:Gem::Requirement
|
85
|
-
none: false
|
86
76
|
requirements:
|
87
|
-
- - ~>
|
77
|
+
- - "~>"
|
88
78
|
- !ruby/object:Gem::Version
|
89
79
|
version: 2.14.1
|
90
80
|
type: :development
|
91
81
|
prerelease: false
|
92
82
|
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
83
|
requirements:
|
95
|
-
- - ~>
|
84
|
+
- - "~>"
|
96
85
|
- !ruby/object:Gem::Version
|
97
86
|
version: 2.14.1
|
98
87
|
- !ruby/object:Gem::Dependency
|
99
88
|
name: pry
|
100
89
|
requirement: !ruby/object:Gem::Requirement
|
101
|
-
none: false
|
102
90
|
requirements:
|
103
|
-
- -
|
91
|
+
- - ">="
|
104
92
|
- !ruby/object:Gem::Version
|
105
93
|
version: '0'
|
106
94
|
type: :development
|
107
95
|
prerelease: false
|
108
96
|
version_requirements: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
97
|
requirements:
|
111
|
-
- -
|
98
|
+
- - ">="
|
112
99
|
- !ruby/object:Gem::Version
|
113
100
|
version: '0'
|
114
101
|
- !ruby/object:Gem::Dependency
|
115
102
|
name: timecop
|
116
103
|
requirement: !ruby/object:Gem::Requirement
|
117
|
-
none: false
|
118
104
|
requirements:
|
119
|
-
- -
|
105
|
+
- - ">="
|
120
106
|
- !ruby/object:Gem::Version
|
121
107
|
version: '0'
|
122
108
|
type: :development
|
123
109
|
prerelease: false
|
124
110
|
version_requirements: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
111
|
requirements:
|
127
|
-
- -
|
112
|
+
- - ">="
|
128
113
|
- !ruby/object:Gem::Version
|
129
114
|
version: '0'
|
130
115
|
- !ruby/object:Gem::Dependency
|
131
116
|
name: webmock
|
132
117
|
requirement: !ruby/object:Gem::Requirement
|
133
|
-
none: false
|
134
118
|
requirements:
|
135
|
-
- -
|
119
|
+
- - ">="
|
136
120
|
- !ruby/object:Gem::Version
|
137
121
|
version: '0'
|
138
122
|
type: :development
|
139
123
|
prerelease: false
|
140
124
|
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
125
|
requirements:
|
143
|
-
- -
|
126
|
+
- - ">="
|
144
127
|
- !ruby/object:Gem::Version
|
145
128
|
version: '0'
|
146
129
|
description: The official appsignal.com gem
|
@@ -151,8 +134,8 @@ executables:
|
|
151
134
|
extensions: []
|
152
135
|
extra_rdoc_files: []
|
153
136
|
files:
|
154
|
-
- .gitignore
|
155
|
-
- .travis.yml
|
137
|
+
- ".gitignore"
|
138
|
+
- ".travis.yml"
|
156
139
|
- CHANGELOG.md
|
157
140
|
- Gemfile
|
158
141
|
- LICENSE
|
@@ -251,27 +234,26 @@ files:
|
|
251
234
|
homepage: https://github.com/appsignal/appsignal
|
252
235
|
licenses:
|
253
236
|
- MIT
|
237
|
+
metadata: {}
|
254
238
|
post_install_message:
|
255
239
|
rdoc_options: []
|
256
240
|
require_paths:
|
257
241
|
- lib
|
258
242
|
required_ruby_version: !ruby/object:Gem::Requirement
|
259
|
-
none: false
|
260
243
|
requirements:
|
261
|
-
- -
|
244
|
+
- - ">="
|
262
245
|
- !ruby/object:Gem::Version
|
263
246
|
version: 1.9.3
|
264
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
248
|
requirements:
|
267
|
-
- -
|
249
|
+
- - ">="
|
268
250
|
- !ruby/object:Gem::Version
|
269
251
|
version: '0'
|
270
252
|
requirements: []
|
271
253
|
rubyforge_project:
|
272
|
-
rubygems_version:
|
254
|
+
rubygems_version: 2.2.2
|
273
255
|
signing_key:
|
274
|
-
specification_version:
|
256
|
+
specification_version: 4
|
275
257
|
summary: Logs performance and exception data from your app to appsignal.com
|
276
258
|
test_files:
|
277
259
|
- spec/lib/appsignal/agent_spec.rb
|