appsignal 0.11.8.beta.1 → 0.11.8.beta.2
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.
- data/CHANGELOG.md +1 -0
- data/Rakefile +2 -0
- data/lib/appsignal/integrations/delayed_job.rb +5 -4
- data/lib/appsignal/transaction.rb +7 -3
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/integrations/delayed_job_spec.rb +8 -4
- data/spec/lib/appsignal/transaction_spec.rb +37 -23
- metadata +40 -24
- checksums.yaml +0 -7
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
* Add frontend error catcher
|
3
3
|
* Add background job metadata (queue, priority etc.) to transaction overview
|
4
4
|
* Add APPSIGNAL_APP_ENV variable to Rails config, so you can override the environment
|
5
|
+
* Handle http queue times in microseconds too
|
5
6
|
|
6
7
|
# 0.11.7
|
7
8
|
* Add option to override Job name in Delayed Job
|
data/Rakefile
CHANGED
@@ -20,12 +20,13 @@ if defined?(::Delayed::Plugin)
|
|
20
20
|
|
21
21
|
Appsignal.monitor_transaction(
|
22
22
|
'perform_job.delayed_job',
|
23
|
-
:class
|
24
|
-
:method
|
23
|
+
:class => class_name,
|
24
|
+
:method => method_name,
|
25
25
|
:metadata => {
|
26
|
-
:
|
27
|
-
:attempts => job.attempts,
|
26
|
+
:id => job.id,
|
28
27
|
:queue => job.queue,
|
28
|
+
:priority => job.priority || 0,
|
29
|
+
:attempts => job.attempts || 0
|
29
30
|
},
|
30
31
|
:queue_start => job.created_at
|
31
32
|
) do
|
@@ -181,9 +181,13 @@ module Appsignal
|
|
181
181
|
env_var = env['HTTP_X_QUEUE_START'] || env['HTTP_X_REQUEST_START']
|
182
182
|
if env_var
|
183
183
|
Appsignal.logger.debug("Setting http queue start: #{env_var}")
|
184
|
-
|
185
|
-
unless
|
186
|
-
|
184
|
+
cleaned_value = env_var.tr('^0-9', '')
|
185
|
+
unless cleaned_value.empty?
|
186
|
+
value = cleaned_value.to_i
|
187
|
+
[1_000_000.0, 1_000.0].each do |factor|
|
188
|
+
@queue_start = value / factor
|
189
|
+
break if @queue_start > 946_681_200.0 # Ok if it's later than 2000
|
190
|
+
end
|
187
191
|
end
|
188
192
|
end
|
189
193
|
end
|
data/lib/appsignal/version.rb
CHANGED
@@ -30,6 +30,7 @@ describe "Delayed Job integration" do
|
|
30
30
|
let(:time) { Time.parse('01-01-2001 10:01:00UTC') }
|
31
31
|
let(:job) do
|
32
32
|
double(
|
33
|
+
:id => 123,
|
33
34
|
:name => 'TestClass#perform',
|
34
35
|
:priority => 1,
|
35
36
|
:attempts => 1,
|
@@ -51,6 +52,7 @@ describe "Delayed Job integration" do
|
|
51
52
|
:priority => 1,
|
52
53
|
:attempts => 1,
|
53
54
|
:queue => 'default',
|
55
|
+
:id => 123
|
54
56
|
},
|
55
57
|
:queue_start => time - 60_000,
|
56
58
|
)
|
@@ -66,10 +68,11 @@ describe "Delayed Job integration" do
|
|
66
68
|
:payload_object => double(
|
67
69
|
:appsignal_name => 'CustomClass#perform'
|
68
70
|
),
|
69
|
-
:
|
70
|
-
:
|
71
|
-
:
|
72
|
-
:
|
71
|
+
:id => 123,
|
72
|
+
:name => 'TestClass#perform',
|
73
|
+
:priority => 1,
|
74
|
+
:attempts => 1,
|
75
|
+
:queue => 'default',
|
73
76
|
:created_at => time - 60_000
|
74
77
|
)
|
75
78
|
end
|
@@ -82,6 +85,7 @@ describe "Delayed Job integration" do
|
|
82
85
|
:priority => 1,
|
83
86
|
:attempts => 1,
|
84
87
|
:queue => 'default',
|
88
|
+
:id => 123
|
85
89
|
},
|
86
90
|
:queue_start => time - 60_000
|
87
91
|
)
|
@@ -482,45 +482,59 @@ describe Appsignal::Transaction do
|
|
482
482
|
|
483
483
|
describe "#set_http_queue_start" do
|
484
484
|
let(:slightly_earlier_time) { fixed_time - 0.4 }
|
485
|
-
let(:
|
485
|
+
let(:slightly_earlier_time_value) { (slightly_earlier_time * factor).to_i }
|
486
486
|
before { transaction.set_http_queue_start }
|
487
487
|
subject { transaction.queue_start }
|
488
488
|
|
489
|
-
|
490
|
-
|
489
|
+
shared_examples "http queue start" do
|
490
|
+
context "without env" do
|
491
|
+
let(:env) { nil }
|
491
492
|
|
492
|
-
|
493
|
-
|
493
|
+
it { should be_nil }
|
494
|
+
end
|
494
495
|
|
495
|
-
|
496
|
-
|
496
|
+
context "with no relevant header set" do
|
497
|
+
let(:env) { {} }
|
497
498
|
|
498
|
-
|
499
|
-
|
499
|
+
it { should be_nil }
|
500
|
+
end
|
500
501
|
|
501
|
-
|
502
|
-
|
502
|
+
context "with the HTTP_X_REQUEST_START header set" do
|
503
|
+
let(:env) { {'HTTP_X_REQUEST_START' => "t=#{slightly_earlier_time_value}"} }
|
503
504
|
|
504
|
-
|
505
|
+
it { should == 1389783599.6 }
|
505
506
|
|
506
|
-
|
507
|
-
|
507
|
+
context "with unparsable content" do
|
508
|
+
let(:env) { {'HTTP_X_REQUEST_START' => 'something'} }
|
508
509
|
|
509
|
-
|
510
|
-
|
510
|
+
it { should be_nil }
|
511
|
+
end
|
511
512
|
|
512
|
-
|
513
|
-
|
513
|
+
context "with some cruft" do
|
514
|
+
let(:env) { {'HTTP_X_REQUEST_START' => "t=#{slightly_earlier_time_value}aaaa"} }
|
514
515
|
|
515
|
-
|
516
|
-
|
516
|
+
it { should == 1389783599.6 }
|
517
|
+
end
|
517
518
|
|
518
|
-
|
519
|
-
|
519
|
+
context "with the alternate HTTP_X_QUEUE_START header set" do
|
520
|
+
let(:env) { {'HTTP_X_QUEUE_START' => "t=#{slightly_earlier_time_value}"} }
|
520
521
|
|
521
|
-
|
522
|
+
it { should == 1389783599.6 }
|
523
|
+
end
|
522
524
|
end
|
523
525
|
end
|
526
|
+
|
527
|
+
context "time in miliseconds" do
|
528
|
+
let(:factor) { 1_000 }
|
529
|
+
|
530
|
+
it_should_behave_like "http queue start"
|
531
|
+
end
|
532
|
+
|
533
|
+
context "time in microseconds" do
|
534
|
+
let(:factor) { 1_000_000 }
|
535
|
+
|
536
|
+
it_should_behave_like "http queue start"
|
537
|
+
end
|
524
538
|
end
|
525
539
|
|
526
540
|
# protected
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appsignal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.8.beta.
|
4
|
+
version: 0.11.8.beta.2
|
5
|
+
prerelease: 7
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Robert Beekman
|
@@ -12,104 +13,118 @@ authors:
|
|
12
13
|
autorequire:
|
13
14
|
bindir: bin
|
14
15
|
cert_chain: []
|
15
|
-
date: 2015-03-
|
16
|
+
date: 2015-03-12 00:00:00.000000000 Z
|
16
17
|
dependencies:
|
17
18
|
- !ruby/object:Gem::Dependency
|
18
19
|
name: rack
|
19
20
|
requirement: !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
20
22
|
requirements:
|
21
|
-
- -
|
23
|
+
- - ! '>='
|
22
24
|
- !ruby/object:Gem::Version
|
23
25
|
version: '0'
|
24
26
|
type: :runtime
|
25
27
|
prerelease: false
|
26
28
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
27
30
|
requirements:
|
28
|
-
- -
|
31
|
+
- - ! '>='
|
29
32
|
- !ruby/object:Gem::Version
|
30
33
|
version: '0'
|
31
34
|
- !ruby/object:Gem::Dependency
|
32
35
|
name: thread_safe
|
33
36
|
requirement: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
34
38
|
requirements:
|
35
|
-
- -
|
39
|
+
- - ! '>='
|
36
40
|
- !ruby/object:Gem::Version
|
37
41
|
version: '0'
|
38
42
|
type: :runtime
|
39
43
|
prerelease: false
|
40
44
|
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
41
46
|
requirements:
|
42
|
-
- -
|
47
|
+
- - ! '>='
|
43
48
|
- !ruby/object:Gem::Version
|
44
49
|
version: '0'
|
45
50
|
- !ruby/object:Gem::Dependency
|
46
51
|
name: rake
|
47
52
|
requirement: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
48
54
|
requirements:
|
49
|
-
- -
|
55
|
+
- - ! '>='
|
50
56
|
- !ruby/object:Gem::Version
|
51
57
|
version: '0'
|
52
58
|
type: :development
|
53
59
|
prerelease: false
|
54
60
|
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
55
62
|
requirements:
|
56
|
-
- -
|
63
|
+
- - ! '>='
|
57
64
|
- !ruby/object:Gem::Version
|
58
65
|
version: '0'
|
59
66
|
- !ruby/object:Gem::Dependency
|
60
67
|
name: rspec
|
61
68
|
requirement: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
62
70
|
requirements:
|
63
|
-
- -
|
71
|
+
- - ~>
|
64
72
|
- !ruby/object:Gem::Version
|
65
73
|
version: 2.14.1
|
66
74
|
type: :development
|
67
75
|
prerelease: false
|
68
76
|
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
69
78
|
requirements:
|
70
|
-
- -
|
79
|
+
- - ~>
|
71
80
|
- !ruby/object:Gem::Version
|
72
81
|
version: 2.14.1
|
73
82
|
- !ruby/object:Gem::Dependency
|
74
83
|
name: pry
|
75
84
|
requirement: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
76
86
|
requirements:
|
77
|
-
- -
|
87
|
+
- - ! '>='
|
78
88
|
- !ruby/object:Gem::Version
|
79
89
|
version: '0'
|
80
90
|
type: :development
|
81
91
|
prerelease: false
|
82
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
83
94
|
requirements:
|
84
|
-
- -
|
95
|
+
- - ! '>='
|
85
96
|
- !ruby/object:Gem::Version
|
86
97
|
version: '0'
|
87
98
|
- !ruby/object:Gem::Dependency
|
88
99
|
name: timecop
|
89
100
|
requirement: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
90
102
|
requirements:
|
91
|
-
- -
|
103
|
+
- - ! '>='
|
92
104
|
- !ruby/object:Gem::Version
|
93
105
|
version: '0'
|
94
106
|
type: :development
|
95
107
|
prerelease: false
|
96
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
97
110
|
requirements:
|
98
|
-
- -
|
111
|
+
- - ! '>='
|
99
112
|
- !ruby/object:Gem::Version
|
100
113
|
version: '0'
|
101
114
|
- !ruby/object:Gem::Dependency
|
102
115
|
name: webmock
|
103
116
|
requirement: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
104
118
|
requirements:
|
105
|
-
- -
|
119
|
+
- - ! '>='
|
106
120
|
- !ruby/object:Gem::Version
|
107
121
|
version: '0'
|
108
122
|
type: :development
|
109
123
|
prerelease: false
|
110
124
|
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
111
126
|
requirements:
|
112
|
-
- -
|
127
|
+
- - ! '>='
|
113
128
|
- !ruby/object:Gem::Version
|
114
129
|
version: '0'
|
115
130
|
description: The official appsignal.com gem
|
@@ -120,9 +135,9 @@ executables:
|
|
120
135
|
extensions: []
|
121
136
|
extra_rdoc_files: []
|
122
137
|
files:
|
123
|
-
-
|
124
|
-
-
|
125
|
-
-
|
138
|
+
- .gitignore
|
139
|
+
- .rspec
|
140
|
+
- .travis.yml
|
126
141
|
- CHANGELOG.md
|
127
142
|
- Gemfile
|
128
143
|
- LICENSE
|
@@ -242,26 +257,27 @@ files:
|
|
242
257
|
homepage: https://github.com/appsignal/appsignal
|
243
258
|
licenses:
|
244
259
|
- MIT
|
245
|
-
metadata: {}
|
246
260
|
post_install_message:
|
247
261
|
rdoc_options: []
|
248
262
|
require_paths:
|
249
263
|
- lib
|
250
264
|
required_ruby_version: !ruby/object:Gem::Requirement
|
265
|
+
none: false
|
251
266
|
requirements:
|
252
|
-
- -
|
267
|
+
- - ! '>='
|
253
268
|
- !ruby/object:Gem::Version
|
254
269
|
version: '1.9'
|
255
270
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
271
|
+
none: false
|
256
272
|
requirements:
|
257
|
-
- -
|
273
|
+
- - ! '>'
|
258
274
|
- !ruby/object:Gem::Version
|
259
275
|
version: 1.3.1
|
260
276
|
requirements: []
|
261
277
|
rubyforge_project:
|
262
|
-
rubygems_version:
|
278
|
+
rubygems_version: 1.8.23
|
263
279
|
signing_key:
|
264
|
-
specification_version:
|
280
|
+
specification_version: 3
|
265
281
|
summary: Logs performance and exception data from your app to appsignal.com
|
266
282
|
test_files:
|
267
283
|
- spec/lib/appsignal/agent_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: d352412d00bbd2c1cf81315d80ae4a5c08d8115e
|
4
|
-
data.tar.gz: df2cda49d433880e1c89b5c42c1c12cf1abb65bd
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 8347c842bde632030871bbe90392115a744d1676d1afc98c9f796987b587be7ce5d8c56a742019dd004b1f8b580fc05a9250e2b59ed099ef555d6e31052b1deb
|
7
|
-
data.tar.gz: cda5f26ebd0b612f46feca9952f1e420c6370e89e9682e8879e91f1250e9d47edcee7ff61e2cd5b11f6c2e0b08ae1a063451e92e008f1bc4cc10e1d006ec48ca
|