appsignal 0.11.13 → 0.11.14.beta.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 939d3b7a54a4b39ec139e95f135fcd25565fac74
4
- data.tar.gz: d186dc6f7a065ae88bff571e3963955dd0bf74a0
3
+ metadata.gz: 19f6aa00101f3a4629f9d5d7393ddace658ee343
4
+ data.tar.gz: 22377b463a085c914a89dd38635806f24ec97724
5
5
  SHA512:
6
- metadata.gz: c8f57aee9899c31b32997a99652702c36f9e3234d35c1e29acfcfc40d19285bd28a1cc244818c0cdbc6fcf804fa3680c770a83929e51765f46c52ae2524807b2
7
- data.tar.gz: d5f6ea1bcf79f0c5c23e169baff789e52a5c6ee8f0f75717ed285b3f84aa147694ae403f430a0007e967aae7b706a371c9b00b54174a577176dc77cf65d7a271
6
+ metadata.gz: 4ee40a6f511ac2bc1e4e3c439a99ac45a1f434538745e96bdd822ac85bdf7272dc5bd9d3458a6e6f3f96264beaa7772f2c995f5f1518376d57fe87a8e4e49413
7
+ data.tar.gz: d92cc1b8994f031eae4b088853ac59e205c6493e182592d98b25cfc841a968568d41d4b93f8a633079ded8c9ff3e583ea4d956d778ac55211d89844235bcc8b3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 0.11.14
2
+ * Support ActiveJob wrapped jobs
3
+ * Improve proxy support
4
+ * Improve rake support
5
+
1
6
  # 0.11.13
2
7
  * Add Padrino support
3
8
  * Add Rake task monitoring
@@ -3,6 +3,14 @@ module Rake
3
3
  alias_method :invoke_without_appsignal, :invoke
4
4
 
5
5
  def invoke(*args)
6
+ if Appsignal.active?
7
+ invoke_with_appsignal(*args)
8
+ else
9
+ invoke_without_appsignal(*args)
10
+ end
11
+ end
12
+
13
+ def invoke_with_appsignal(*args)
6
14
  transaction = Appsignal::Transaction.create(
7
15
  SecureRandom.uuid,
8
16
  ENV,
@@ -15,7 +15,7 @@ if defined?(::Sidekiq)
15
15
  def call(worker, item, queue)
16
16
  Appsignal.monitor_transaction(
17
17
  'perform_job.sidekiq',
18
- :class => item['class'],
18
+ :class => item['wrapped'] || item['class'],
19
19
  :method => 'perform',
20
20
  :metadata => formatted_metadata(item),
21
21
  :params => format_args(item['args']),
@@ -25,8 +25,10 @@ module Appsignal
25
25
  sanitize_hash(value)
26
26
  when Array
27
27
  sanitize_array(value)
28
- when Fixnum, String, Symbol
28
+ when Fixnum, String, Symbol, Float
29
29
  unmodified(value)
30
+ when TrueClass, FalseClass
31
+ stringified(value)
30
32
  else
31
33
  inspected(value)
32
34
  end
@@ -46,6 +48,10 @@ module Appsignal
46
48
  target_array
47
49
  end
48
50
 
51
+ def stringified(value)
52
+ value.to_s
53
+ end
54
+
49
55
  def unmodified(value)
50
56
  value
51
57
  end
@@ -62,7 +62,13 @@ module Appsignal
62
62
  end
63
63
 
64
64
  def http_client
65
- Net::HTTP.new(uri.host, uri.port, proxy_addr, proxy_port).tap do |http|
65
+ client = if config[:http_proxy]
66
+ Net::HTTP.new(uri.host, uri.port, proxy_addr, proxy_port)
67
+ else
68
+ Net::HTTP.new(uri.host, uri.port)
69
+ end
70
+
71
+ client.tap do |http|
66
72
  if uri.scheme == 'https'
67
73
  http.use_ssl = true
68
74
  http.ssl_version = :TLSv1
@@ -1,3 +1,3 @@
1
1
  module Appsignal
2
- VERSION = '0.11.13'
2
+ VERSION = '0.11.14.beta.1'
3
3
  end
@@ -6,20 +6,35 @@ describe "Rack integration" do
6
6
  let(:task) { Rake::Task.new('task', app) }
7
7
  before do
8
8
  load file
9
+ task.stub(
10
+ :name => 'task:name',
11
+ :invoke_without_appsignal => true
12
+ )
9
13
  end
10
14
 
11
15
  describe "#invoke" do
12
- before do
13
- task.stub(
14
- :name => 'task:name',
15
- :invoke_without_appsignal => true
16
- )
16
+ before { Appsignal.stub(:active? => true) }
17
+
18
+ it "should call with appsignal monitoring" do
19
+ expect( task ).to receive(:invoke_with_appsignal).with(['foo'])
17
20
  end
18
21
 
19
- it "should create a transaction" do
20
- expect( Appsignal::Transaction ).to receive(:create)
22
+ context "when not active" do
23
+ before { Appsignal.stub(:active? => false) }
24
+
25
+ it "should NOT call with appsignal monitoring" do
26
+ expect( task ).to_not receive(:invoke_with_appsignal).with(['foo'])
27
+ end
28
+
29
+ it "should call the original task" do
30
+ expect( task ).to receive(:invoke_without_appsignal).with(['foo'])
31
+ end
21
32
  end
22
33
 
34
+ after { task.invoke(['foo']) }
35
+ end
36
+
37
+ describe "#invoke_with_appsignal" do
23
38
  context "with transaction" do
24
39
  let!(:transaction) { Appsignal::Transaction.new('123', {}) }
25
40
  let!(:agent) { double('Agent', :send_queue => true) }
@@ -81,6 +96,6 @@ describe "Rack integration" do
81
96
  end
82
97
  end
83
98
 
84
- after { task.invoke('foo') rescue VerySpecificError }
99
+ after { task.invoke_with_appsignal('foo') rescue VerySpecificError }
85
100
  end
86
101
  end
@@ -47,6 +47,23 @@ describe "Sidekiq integration" do
47
47
  )
48
48
  end
49
49
 
50
+ it "reports the correct job class for a ActiveJob wrapped job" do
51
+ item['wrapped'] = 'ActiveJobClass'
52
+ Appsignal.should_receive(:monitor_transaction).with(
53
+ 'perform_job.sidekiq',
54
+ :class => 'ActiveJobClass',
55
+ :method => 'perform',
56
+ :metadata => {
57
+ 'retry_count' => "0",
58
+ 'queue' => 'default',
59
+ 'extra' => 'data',
60
+ 'wrapped' => 'ActiveJobClass'
61
+ },
62
+ :params => ['Model', "1"],
63
+ :queue_start => Time.parse('01-01-2001 10:00:00UTC')
64
+ )
65
+ end
66
+
50
67
  after do
51
68
  Timecop.freeze(Time.parse('01-01-2001 10:01:00UTC')) do
52
69
  Appsignal::Integrations::SidekiqPlugin.new.call(worker, item, queue) do
@@ -17,16 +17,20 @@ describe Appsignal::ParamsSanitizer do
17
17
  let(:file) { uploaded_file }
18
18
  let(:params) do
19
19
  {
20
- :text => 'string',
21
- :file => file,
22
- :hash => {
23
- :nested_text => 'string',
20
+ :text => 'string',
21
+ :file => file,
22
+ :float => 0.0,
23
+ :bool_true => true,
24
+ :bool_false => false,
25
+ :int => 1,
26
+ :hash => {
27
+ :nested_text => 'string',
24
28
  :nested_array => [
25
29
  'something',
26
30
  'else',
27
31
  file,
28
32
  {
29
- :key => 'value',
33
+ :key => 'value',
30
34
  :file => file,
31
35
  },
32
36
  ErrorOnInspect.new,
@@ -43,9 +47,13 @@ describe Appsignal::ParamsSanitizer do
43
47
  before { klass.sanitize!(subject) }
44
48
 
45
49
  it { should be_instance_of Hash }
46
- its([:text]) { should == 'string' }
47
- its([:file]) { should be_instance_of String }
48
- its([:file]) { should include '::UploadedFile' }
50
+ its([:text]) { should == 'string' }
51
+ its([:file]) { should be_instance_of String }
52
+ its([:file]) { should include '::UploadedFile' }
53
+ its([:float]) { should == 0.0 }
54
+ its([:int]) { should == 1 }
55
+ its([:bool_true]) { should == 'true' }
56
+ its([:bool_false]) { should == 'false' }
49
57
 
50
58
  context "hash" do
51
59
  subject { params[:hash] }
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.11.13
4
+ version: 0.11.14.beta.1
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-10 00:00:00.000000000 Z
15
+ date: 2015-08-31 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rack
@@ -261,9 +261,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
261
261
  version: '1.9'
262
262
  required_rubygems_version: !ruby/object:Gem::Requirement
263
263
  requirements:
264
- - - ">="
264
+ - - ">"
265
265
  - !ruby/object:Gem::Version
266
- version: '0'
266
+ version: 1.3.1
267
267
  requirements: []
268
268
  rubyforge_project:
269
269
  rubygems_version: 2.4.5