appsignal 0.8.0 → 0.8.1.beta.0
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 +8 -8
- data/CHANGELOG.md +3 -0
- data/lib/appsignal/integrations/sidekiq.rb +1 -2
- data/lib/appsignal/transaction.rb +8 -9
- data/lib/appsignal/transaction/formatter.rb +2 -2
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/integrations/sidekiq_spec.rb +1 -1
- data/spec/lib/appsignal/transaction_spec.rb +36 -17
- data/spec/support/helpers/notification_helpers.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDBhODkxNDkwODA4NjY4Yjc5Zjc0Zjk2MTJiNmEwMjU2YjYxZjZjZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NzI5ZmExYmE1NGMxM2IyZGU1YzE0YWE4NjY5MjEzMzY0NWUxNWM3NA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODE2NGY5Zjc2Mjc0MTYzMmIwNGEyYThkNTQ5NGUxNzllYzAxOTYxMGVhMjQ5
|
10
|
+
MDg2NTdjMzFlNDk3YmQwN2ZlMzQ0NzhhNGYxYzI5MzRhZjVjZGNlNzZhZDI1
|
11
|
+
ODk1OWQ4OTUxMTAwOWRmOGIyODlmOGJlMGY3M2RhOTRiN2UxNjc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjQ5NmQxOGYzZGU3MDI4MzRkNDk3NDkzOTNhZjliODMyYTQ3ZmE4NzQxZmFk
|
14
|
+
MTMxNzdkZWQ4MWM4ZDU2NWQ0M2NkZmNiYTNmNzg4MjViOWE3OWU5OWI3MDQ3
|
15
|
+
YzE1MDVhN2IyZGE2Mzk1ZDdjOTU5ODBhNGU0MzAyODg3YWMyZWU=
|
data/CHANGELOG.md
CHANGED
@@ -6,14 +6,13 @@ if defined?(::Sidekiq)
|
|
6
6
|
class SidekiqPlugin
|
7
7
|
def call(worker, item, queue)
|
8
8
|
Appsignal::Transaction.create(SecureRandom.uuid, ENV.to_hash)
|
9
|
-
|
10
9
|
ActiveSupport::Notifications.instrument(
|
11
10
|
'perform_job.sidekiq',
|
12
11
|
:class => item['class'],
|
13
12
|
:method => 'perform',
|
14
13
|
:attempts => item['retry_count'],
|
15
14
|
:queue => item['queue'],
|
16
|
-
:
|
15
|
+
:queue_start => item['enqueued_at']
|
17
16
|
) do
|
18
17
|
yield
|
19
18
|
end
|
@@ -22,7 +22,7 @@ module Appsignal
|
|
22
22
|
end
|
23
23
|
|
24
24
|
attr_reader :request_id, :events, :process_action_event, :action, :exception,
|
25
|
-
:env, :fullpath, :time, :tags, :kind
|
25
|
+
:env, :fullpath, :time, :tags, :kind, :queue_start
|
26
26
|
|
27
27
|
def initialize(request_id, env)
|
28
28
|
@request_id = request_id
|
@@ -54,6 +54,7 @@ module Appsignal
|
|
54
54
|
return unless event && event.payload
|
55
55
|
@action = "#{event.payload[:controller]}##{event.payload[:action]}"
|
56
56
|
@kind = 'http_request'
|
57
|
+
set_http_queue_start
|
57
58
|
end
|
58
59
|
|
59
60
|
def set_perform_job_event(event)
|
@@ -61,6 +62,7 @@ module Appsignal
|
|
61
62
|
return unless event && event.payload
|
62
63
|
@action = "#{event.payload[:class]}##{event.payload[:method]}"
|
63
64
|
@kind = 'background_job'
|
65
|
+
set_background_queue_start
|
64
66
|
end
|
65
67
|
|
66
68
|
def add_event(event)
|
@@ -121,21 +123,18 @@ module Appsignal
|
|
121
123
|
end
|
122
124
|
end
|
123
125
|
|
124
|
-
def
|
125
|
-
|
126
|
-
|
127
|
-
else
|
128
|
-
http_queue_start
|
129
|
-
end
|
126
|
+
def set_background_queue_start
|
127
|
+
return unless process_action_event.payload[:queue_start]
|
128
|
+
@queue_start = process_action_event.payload[:queue_start].to_f
|
130
129
|
end
|
131
130
|
|
132
|
-
def
|
131
|
+
def set_http_queue_start
|
133
132
|
return unless env
|
134
133
|
env_var = env['HTTP_X_QUEUE_START'] || env['HTTP_X_REQUEST_START']
|
135
134
|
if env_var
|
136
135
|
value = env_var.tr('^0-9', '')
|
137
136
|
unless value.empty?
|
138
|
-
value.to_f / 1_000_000
|
137
|
+
@queue_start = value.to_f / 1_000_000
|
139
138
|
end
|
140
139
|
end
|
141
140
|
end
|
data/lib/appsignal/version.rb
CHANGED
@@ -32,7 +32,8 @@ describe Appsignal::Transaction do
|
|
32
32
|
{
|
33
33
|
'HTTP_USER_AGENT' => 'IE6',
|
34
34
|
'SERVER_NAME' => 'localhost',
|
35
|
-
'action_dispatch.routes' => 'not_available'
|
35
|
+
'action_dispatch.routes' => 'not_available',
|
36
|
+
'HTTP_X_REQUEST_START' => '1000000'
|
36
37
|
}
|
37
38
|
end
|
38
39
|
let(:transaction) { Appsignal::Transaction.create('1', env) }
|
@@ -45,6 +46,7 @@ describe Appsignal::Transaction do
|
|
45
46
|
|
46
47
|
describe '#set_process_action_event' do
|
47
48
|
before { transaction.set_process_action_event(process_action_event) }
|
49
|
+
|
48
50
|
let(:process_action_event) { notification_event }
|
49
51
|
|
50
52
|
it 'should add a process action event' do
|
@@ -58,14 +60,20 @@ describe Appsignal::Transaction do
|
|
58
60
|
it "should set the kind" do
|
59
61
|
transaction.kind.should == 'http_request'
|
60
62
|
end
|
63
|
+
|
64
|
+
it "should call set_http_queue_start" do
|
65
|
+
transaction.queue_start.should_not be_nil
|
66
|
+
end
|
61
67
|
end
|
62
68
|
|
63
69
|
describe "set_perform_job_event" do
|
64
70
|
before { transaction.set_perform_job_event(perform_job_event) }
|
71
|
+
|
72
|
+
let(:payload) { create_background_payload }
|
65
73
|
let(:perform_job_event) do
|
66
74
|
notification_event(
|
67
75
|
:name => 'perform_job.delayed_job',
|
68
|
-
:payload =>
|
76
|
+
:payload => payload
|
69
77
|
)
|
70
78
|
end
|
71
79
|
|
@@ -80,6 +88,10 @@ describe Appsignal::Transaction do
|
|
80
88
|
it "should set the kind" do
|
81
89
|
transaction.kind.should == 'background_job'
|
82
90
|
end
|
91
|
+
|
92
|
+
it "should set call set_background_queue_start" do
|
93
|
+
transaction.queue_start.should_not be_nil
|
94
|
+
end
|
83
95
|
end
|
84
96
|
|
85
97
|
describe "#set_tags" do
|
@@ -316,39 +328,46 @@ describe Appsignal::Transaction do
|
|
316
328
|
end
|
317
329
|
end
|
318
330
|
|
319
|
-
describe "#
|
331
|
+
describe "#set_background_queue_start" do
|
332
|
+
before do
|
333
|
+
transaction.stub(:process_action_event =>
|
334
|
+
notification_event(
|
335
|
+
:name => 'perform_job.delayed_job',
|
336
|
+
:payload => payload
|
337
|
+
)
|
338
|
+
)
|
339
|
+
transaction.set_background_queue_start
|
340
|
+
end
|
320
341
|
subject { transaction.queue_start }
|
321
342
|
|
322
|
-
context "
|
323
|
-
let(:
|
343
|
+
context "when queue start is nil" do
|
344
|
+
let(:payload) { create_background_payload(:queue_start => nil) }
|
324
345
|
|
325
|
-
it
|
326
|
-
transaction.should_receive(:http_queue_start)
|
327
|
-
subject
|
328
|
-
end
|
346
|
+
it { should be_nil }
|
329
347
|
end
|
330
348
|
|
331
|
-
context "
|
332
|
-
let(:
|
349
|
+
context "when queue start is set" do
|
350
|
+
let(:payload) { create_background_payload }
|
333
351
|
|
334
|
-
it
|
335
|
-
subject.should == 978364850.0
|
336
|
-
end
|
352
|
+
it { should == 978364850.0 }
|
337
353
|
end
|
338
354
|
end
|
339
355
|
|
340
|
-
describe "#
|
356
|
+
describe "#set_http_queue_start" do
|
341
357
|
let(:slightly_earlier_time) { fixed_time - 10.0 }
|
342
358
|
let(:slightly_earlier_time_in_msec) { (slightly_earlier_time.to_f * 1_000_000).to_i }
|
343
|
-
|
359
|
+
before { transaction.set_http_queue_start }
|
360
|
+
subject { transaction.queue_start }
|
344
361
|
|
345
|
-
context "without
|
362
|
+
context "without env" do
|
346
363
|
let(:env) { nil }
|
347
364
|
|
348
365
|
it { should be_nil }
|
349
366
|
end
|
350
367
|
|
351
368
|
context "with no relevant header set" do
|
369
|
+
let(:env) { {} }
|
370
|
+
|
352
371
|
it { should be_nil }
|
353
372
|
end
|
354
373
|
|
@@ -12,7 +12,7 @@ module NotificationHelpers
|
|
12
12
|
)
|
13
13
|
end
|
14
14
|
|
15
|
-
def create_payload(args
|
15
|
+
def create_payload(args={})
|
16
16
|
{
|
17
17
|
:path => '/blog',
|
18
18
|
:action => 'show',
|
@@ -33,6 +33,6 @@ module NotificationHelpers
|
|
33
33
|
:attempts => 0,
|
34
34
|
:queue => 'default',
|
35
35
|
:queue_start => fixed_time - 10,
|
36
|
-
}
|
36
|
+
}.merge(args)
|
37
37
|
end
|
38
38
|
end
|
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.8.0
|
4
|
+
version: 0.8.1.beta.0
|
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: 2014-01-
|
15
|
+
date: 2014-01-04 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activesupport
|
@@ -237,9 +237,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
237
237
|
version: 1.9.3
|
238
238
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
239
|
requirements:
|
240
|
-
- - ! '
|
240
|
+
- - ! '>'
|
241
241
|
- !ruby/object:Gem::Version
|
242
|
-
version:
|
242
|
+
version: 1.3.1
|
243
243
|
requirements: []
|
244
244
|
rubyforge_project:
|
245
245
|
rubygems_version: 2.0.3
|