appsignal 0.10.6 → 0.11.0.beta.1
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/appsignal.rb +3 -1
- data/lib/appsignal/agent.rb +44 -13
- data/lib/appsignal/aggregator.rb +1 -0
- data/lib/appsignal/event.rb +20 -0
- data/lib/appsignal/event/moped_event.rb +85 -0
- data/lib/appsignal/integrations/resque.rb +4 -5
- data/lib/appsignal/ipc.rb +68 -0
- data/lib/appsignal/params_sanitizer.rb +117 -0
- data/lib/appsignal/transaction.rb +11 -12
- data/lib/appsignal/transaction/params_sanitizer.rb +2 -117
- data/lib/appsignal/transmitter.rb +11 -0
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/agent_spec.rb +114 -50
- data/spec/lib/appsignal/aggregator_spec.rb +1 -0
- data/spec/lib/appsignal/event/moped_event_spec.rb +190 -0
- data/spec/lib/appsignal/event_spec.rb +48 -0
- data/spec/lib/appsignal/ipc_spec.rb +128 -0
- data/spec/lib/appsignal/{transaction/params_sanitizer_spec.rb → params_sanitizer_spec.rb} +2 -2
- data/spec/lib/appsignal/transaction_spec.rb +33 -25
- data/spec/lib/appsignal_spec.rb +1 -1
- data/spec/spec_helper.rb +4 -0
- data/spec/support/helpers/notification_helpers.rb +1 -1
- metadata +16 -9
- data/lib/appsignal/pipe.rb +0 -44
- data/spec/lib/appsignal/pipe_spec.rb +0 -60
data/lib/appsignal/pipe.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
module Appsignal
|
2
|
-
class Pipe
|
3
|
-
attr_reader :reader, :writer, :listener
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
Appsignal.logger.debug "Initializing pipe in #{$$}"
|
7
|
-
@reader, @writer = IO.pipe
|
8
|
-
@listener = Thread.new do
|
9
|
-
loop do
|
10
|
-
Appsignal.agent.enqueue(Marshal::load(@reader))
|
11
|
-
end
|
12
|
-
end
|
13
|
-
@listening = true
|
14
|
-
end
|
15
|
-
|
16
|
-
def write(transaction)
|
17
|
-
Marshal::dump(transaction, @writer)
|
18
|
-
rescue IOError
|
19
|
-
Appsignal.logger.debug "Broken pipe in #{$$}"
|
20
|
-
Appsignal.agent.shutdown(true, 'broken pipe')
|
21
|
-
end
|
22
|
-
|
23
|
-
def stop_listening!
|
24
|
-
Thread.kill(@listener)
|
25
|
-
@reader.close unless @reader.closed?
|
26
|
-
@listening = false
|
27
|
-
end
|
28
|
-
|
29
|
-
def listening?
|
30
|
-
!! @listening
|
31
|
-
end
|
32
|
-
|
33
|
-
class << self
|
34
|
-
def init
|
35
|
-
Thread.current[:appsignal_pipe] = Appsignal::Pipe.new
|
36
|
-
end
|
37
|
-
|
38
|
-
def current
|
39
|
-
Thread.current[:appsignal_pipe]
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Appsignal::Pipe do
|
4
|
-
before :all do
|
5
|
-
Appsignal::Pipe.init
|
6
|
-
end
|
7
|
-
let(:agent) { double }
|
8
|
-
|
9
|
-
subject { Appsignal::Pipe.current }
|
10
|
-
|
11
|
-
its(:reader) { should be_instance_of(IO) }
|
12
|
-
its(:writer) { should be_instance_of(IO) }
|
13
|
-
its(:listener) { should be_instance_of(Thread) }
|
14
|
-
its(:listening?) { should be_true }
|
15
|
-
|
16
|
-
describe "#write" do
|
17
|
-
context "with a regular request" do
|
18
|
-
let(:transaction) { regular_transaction }
|
19
|
-
|
20
|
-
it "should dump" do
|
21
|
-
Marshal.should_receive(:dump)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context "when the pipe is closed" do
|
26
|
-
let(:transaction) { regular_transaction }
|
27
|
-
before { Appsignal.stub(:agent => agent) }
|
28
|
-
|
29
|
-
it "should shutdown" do
|
30
|
-
Appsignal::Pipe.current.writer.close
|
31
|
-
agent.should_receive(:shutdown)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
after { Appsignal::Pipe.current.write(transaction) }
|
36
|
-
end
|
37
|
-
|
38
|
-
describe "#stop_listening!" do
|
39
|
-
before do
|
40
|
-
subject.stop_listening!
|
41
|
-
sleep 0.1
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should have closed the reader" do
|
45
|
-
subject.reader.closed?.should be_true
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should have killed the listener thread" do
|
49
|
-
subject.listener.alive?.should be_false
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should not crash when called twice" do
|
53
|
-
expect { subject.stop_listening! }.not_to raise_error
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should know it's not listening anymore" do
|
57
|
-
subject.listening?.should be_false
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|