appsignal 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,7 @@
1
+ # 0.9.4
2
+ * Log Rails and Sinatra version
3
+ * Resubscribe to notifications after fork
4
+
1
5
  # 0.9.3
2
6
  * Log if appsignal is not active for an environment
3
7
 
@@ -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
- ActiveSupport::Notifications.unsubscribe(subscriber)
128
+ unsubscribe
116
129
  Thread.kill(thread) if thread
117
130
  send_queue if send_current_queue && @aggregator.has_transactions?
118
131
  end
@@ -1,5 +1,5 @@
1
1
  if defined?(::Rails)
2
- Appsignal.logger.info('Loading Rails integration')
2
+ Appsignal.logger.info("Loading Rails (#{Rails.version}) integration")
3
3
 
4
4
  module Appsignal
5
5
  module Integrations
@@ -1,6 +1,6 @@
1
1
  require 'appsignal'
2
2
 
3
- Appsignal.logger.info('Loading Sinatra integration')
3
+ Appsignal.logger.info("Loading Sinatra (#{Sinatra::VERSION}) integration")
4
4
 
5
5
  app_settings = ::Sinatra::Application.settings
6
6
  Appsignal.config = Appsignal::Config.new(
@@ -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)
@@ -1,3 +1,3 @@
1
1
  module Appsignal
2
- VERSION = '0.9.3'
2
+ VERSION = '0.9.4'
3
3
  end
@@ -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(:each) do
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.3
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-07-24 00:00:00.000000000 Z
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: 1.8.23
254
+ rubygems_version: 2.2.2
273
255
  signing_key:
274
- specification_version: 3
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