appsignal 0.12.beta.27 → 0.12.beta.28

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d054cbb23d1f6f7651694ca0f977750c1acb6c42
4
- data.tar.gz: 77eafebe1d5f886af5b0c56a0ee9e8dfbd2017b0
3
+ metadata.gz: 4b75976d688e1bcc018a9ff67eb4a9e8e077f2ed
4
+ data.tar.gz: 9abe6a6341d43db08c129532f41d7f9f790e6e54
5
5
  SHA512:
6
- metadata.gz: 781a0870b049a9249abaa3d84690665f9dc690e991fcef94eb41d71a5da06686581b6bbb2b1948b7a1a99de9b869224478095a39ff1a337ab209db2117421e07
7
- data.tar.gz: 3d237d5fa981075f978d7734dfd0a3d4420d8e2304ebc713d99716b205cbb915c732bf85651e78b9cb49500d6e4e31517ea6d9efc3deb0809c050e3c97ce257a
6
+ metadata.gz: 9907f3b3b77ba7b755e25e5a927a60db029794da307bc6e3a71d311c3afd31b9bbc321e25d839d244ed775784a925d1ea318d32e1409cf3ad8350890eac5c0a6
7
+ data.tar.gz: 27084e35e9f1054bce5a062ede800e2d885b731a70c72d36ad5164ceb63c8c21f0e18f95a57e609b172d6abe886acdfbf8ab5a199c0891dc6784684f181379bf
@@ -7,8 +7,14 @@ static VALUE start(VALUE self) {
7
7
  return Qnil;
8
8
  }
9
9
 
10
- static VALUE stop(VALUE self) {
11
- appsignal_stop();
10
+ static VALUE stop_agent(VALUE self) {
11
+ appsignal_stop_agent();
12
+
13
+ return Qnil;
14
+ }
15
+
16
+ static VALUE stop_extension(VALUE self) {
17
+ appsignal_stop_extension();
12
18
 
13
19
  return Qnil;
14
20
  }
@@ -209,7 +215,8 @@ void Init_appsignal_extension(void) {
209
215
 
210
216
  // Transaction monitoring
211
217
  rb_define_singleton_method(Extension, "start", start, 0);
212
- rb_define_singleton_method(Extension, "stop", stop, 0);
218
+ rb_define_singleton_method(Extension, "stop_agent", stop_agent, 0);
219
+ rb_define_singleton_method(Extension, "stop_extension", stop_extension, 0);
213
220
  rb_define_singleton_method(Extension, "start_transaction", start_transaction, 1);
214
221
  rb_define_singleton_method(Extension, "start_event", start_event, 1);
215
222
  rb_define_singleton_method(Extension, "finish_event", finish_event, 4);
@@ -13,6 +13,7 @@ module Appsignal
13
13
  attr_accessor :config, :subscriber, :logger, :agent, :in_memory_log
14
14
 
15
15
  def load_integrations
16
+ require 'appsignal/integrations/celluloid'
16
17
  require 'appsignal/integrations/delayed_job'
17
18
  require 'appsignal/integrations/sidekiq'
18
19
  require 'appsignal/integrations/resque'
@@ -59,10 +60,15 @@ module Appsignal
59
60
  end
60
61
  end
61
62
 
62
- def stop
63
- Appsignal::Extension.stop
63
+ def stop_agent
64
+ Appsignal::Extension.stop_agent
64
65
  end
65
66
 
67
+ def stop_extension
68
+ Appsignal::Extension.stop_extension
69
+ end
70
+
71
+
66
72
  def monitor_transaction(name, payload={})
67
73
  unless active?
68
74
  yield
@@ -0,0 +1,18 @@
1
+ if defined?(::Celluloid)
2
+ Appsignal.logger.info('Loading Celluloid integration')
3
+
4
+ # Some versions of Celluloid have race conditions while exiting
5
+ # that can result in a dead lock. We stop appsignal before shutting
6
+ # down Celluloid so we're sure our thread does not aggravate this situation.
7
+
8
+ ::Celluloid.class_eval do
9
+ class << self
10
+ alias shutdown_without_appsignal shutdown
11
+
12
+ def shutdown
13
+ Appsignal.stop_extension
14
+ shutdown_without_appsignal
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,4 +1,4 @@
1
1
  module Appsignal
2
- VERSION = '0.12.beta.27'
3
- AGENT_VERSION = 'c2587ec'
2
+ VERSION = '0.12.beta.28'
3
+ AGENT_VERSION = 'de3c9a4'
4
4
  end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Celluloid integration" do
4
+ let(:file) { File.expand_path('lib/appsignal/integrations/celluloid.rb') }
5
+
6
+ context "with celluloid" do
7
+ before(:all) do
8
+ module Celluloid
9
+ def self.shutdown
10
+ end
11
+ end
12
+ end
13
+
14
+ before do
15
+ load file
16
+ end
17
+
18
+ specify { expect(Appsignal).to receive(:stop_extension) }
19
+
20
+ specify { expect(Celluloid).to receive(:shutdown_without_appsignal) }
21
+ after do
22
+ Celluloid.shutdown
23
+ end
24
+ end
25
+
26
+ context "without celluloid" do
27
+ before(:all) { Object.send(:remove_const, :Celluloid) }
28
+
29
+ specify { expect { ::Celluloid }.to raise_error(NameError) }
30
+ specify { expect { load file }.to_not raise_error }
31
+ end
32
+ end
@@ -135,10 +135,18 @@ describe Appsignal do
135
135
  end
136
136
  end
137
137
 
138
- describe ".stop" do
139
- it "should call stop on the extension" do
140
- Appsignal::Extension.should_receive(:stop)
141
- Appsignal.stop
138
+ describe ".stop_agent" do
139
+ it "should call stop_agent on the extension" do
140
+ Appsignal::Extension.should_receive(:stop_agent)
141
+ Appsignal.stop_agent
142
+ Appsignal.active?.should be_false
143
+ end
144
+ end
145
+
146
+ describe ".stop_extension" do
147
+ it "should call stop_extension on the extension" do
148
+ Appsignal::Extension.should_receive(:stop_extension)
149
+ Appsignal.stop_extension
142
150
  Appsignal.active?.should be_false
143
151
  end
144
152
  end
@@ -409,7 +417,7 @@ describe Appsignal do
409
417
  it "should format a log line" do
410
418
  Process.stub(:pid => 100)
411
419
  subject.call('Debug', Time.parse('2015-07-08'), nil, 'log line').should ==
412
- '[2015-07-08T00:00:00 (process) #100][Debug] log line'
420
+ "[2015-07-08T00:00:00 (process) #100][Debug] log line\n"
413
421
  end
414
422
  end
415
423
 
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: 0.12.beta.27
4
+ version: 0.12.beta.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Beekman
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-08-17 00:00:00.000000000 Z
15
+ date: 2015-08-18 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rack
@@ -159,6 +159,7 @@ files:
159
159
  - lib/appsignal/integrations/capistrano/appsignal.cap
160
160
  - lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
161
161
  - lib/appsignal/integrations/capistrano/careful_logger.rb
162
+ - lib/appsignal/integrations/celluloid.rb
162
163
  - lib/appsignal/integrations/delayed_job.rb
163
164
  - lib/appsignal/integrations/rails.rb
164
165
  - lib/appsignal/integrations/resque.rb
@@ -197,6 +198,7 @@ files:
197
198
  - spec/lib/appsignal/instrumentations/net_http_spec.rb
198
199
  - spec/lib/appsignal/integrations/capistrano2_spec.rb
199
200
  - spec/lib/appsignal/integrations/capistrano3_spec.rb
201
+ - spec/lib/appsignal/integrations/celluloid_spec.rb
200
202
  - spec/lib/appsignal/integrations/delayed_job_spec.rb
201
203
  - spec/lib/appsignal/integrations/rails_spec.rb
202
204
  - spec/lib/appsignal/integrations/resque_spec.rb
@@ -266,6 +268,7 @@ test_files:
266
268
  - spec/lib/appsignal/instrumentations/net_http_spec.rb
267
269
  - spec/lib/appsignal/integrations/capistrano2_spec.rb
268
270
  - spec/lib/appsignal/integrations/capistrano3_spec.rb
271
+ - spec/lib/appsignal/integrations/celluloid_spec.rb
269
272
  - spec/lib/appsignal/integrations/delayed_job_spec.rb
270
273
  - spec/lib/appsignal/integrations/rails_spec.rb
271
274
  - spec/lib/appsignal/integrations/resque_spec.rb