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.
@@ -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