stackify-ruby-apm 1.10.2 → 1.10.4
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/lib/stackify_apm/config.rb +1 -0
- data/lib/stackify_apm/context.rb +1 -1
- data/lib/stackify_apm/helper/database_helper.rb +1 -1
- data/lib/stackify_apm/instrumenter_helper.rb +3 -4
- data/lib/stackify_apm/root_info.rb +1 -1
- data/lib/stackify_apm/spies/delayed_job.rb +49 -0
- data/lib/stackify_apm/version.rb +1 -1
- data/stackify-ruby-apm.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b2d9a08bd90459363bada0dcc980ab8ee610d5f7bbb41100c53f4d6dc8be6ac
|
4
|
+
data.tar.gz: 624b3bd6b64a48270927b77e94663e11416e8f0be84fd86b32b6f5c215251510
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e749581d00b6d425476dfd7683a86b4ccd67491a5713c50be3602668e666519d94ca3abc74f561454d8cb2283113426caee59e226cea4e2dd83ba1bd0fbc856
|
7
|
+
data.tar.gz: 9f6784afe5998f4d5c3b5c2501df118d19384b0bd00e9e57c20d58ccc1987021eed0ce114b642624b5ca11339d51c2a91d5527a6a10eab123f57fc8b61fd479b
|
data/lib/stackify_apm/config.rb
CHANGED
data/lib/stackify_apm/context.rb
CHANGED
@@ -90,9 +90,8 @@ module StackifyRubyAPM
|
|
90
90
|
)
|
91
91
|
end
|
92
92
|
|
93
|
-
req = #{current_method_without}(*args, &block)
|
94
93
|
StackifyRubyAPM.span name, type, context: ctx do
|
95
|
-
|
94
|
+
#{current_method_without}(*args, &block)
|
96
95
|
end
|
97
96
|
else
|
98
97
|
return #{current_method_without}(*args, &block)
|
@@ -169,9 +168,9 @@ module StackifyRubyAPM
|
|
169
168
|
CATEGORY: 'Ruby'
|
170
169
|
)
|
171
170
|
end
|
172
|
-
|
171
|
+
|
173
172
|
StackifyRubyAPM.span name, type, context: ctx do
|
174
|
-
|
173
|
+
_self_without_apm_#{current_method}(*args, &block)
|
175
174
|
end
|
176
175
|
else
|
177
176
|
return _self_without_apm_#{current_method}(*args, &block)
|
@@ -26,7 +26,7 @@ module StackifyRubyAPM
|
|
26
26
|
|
27
27
|
hash = {
|
28
28
|
PROFILER_VERSION: StackifyRubyAPM::VERSION,
|
29
|
-
CATEGORY: 'Ruby',
|
29
|
+
CATEGORY: @transaction.context.category || 'Ruby',
|
30
30
|
APPLICATION_PATH: '/',
|
31
31
|
APPLICATION_FILESYSTEM_PATH: @config.root_path,
|
32
32
|
APPLICATION_NAME: @config.application_name.strip,
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Monkey patch for the delayed_job class for running async tasks.
|
4
|
+
#
|
5
|
+
|
6
|
+
module StackifyRubyAPM
|
7
|
+
# @api private
|
8
|
+
module Spies
|
9
|
+
# @api private
|
10
|
+
class DelayedJobSpy
|
11
|
+
def install
|
12
|
+
Delayed::Backend::Base.class_eval do
|
13
|
+
alias_method 'invoke_job_without_apm', 'invoke_job'
|
14
|
+
|
15
|
+
def invoke_job(*args, &block)
|
16
|
+
ret = nil
|
17
|
+
begin
|
18
|
+
name = nil
|
19
|
+
if payload_object.is_a?(::Delayed::PerformableMethod)
|
20
|
+
object = payload_object.object
|
21
|
+
klass = object.is_a?(Class) ? object : object.class
|
22
|
+
class_name = klass.name
|
23
|
+
separator = payload_object.object.is_a?(Class) ? '.' : '#'
|
24
|
+
method_name = payload_object.method_name
|
25
|
+
name = "#{class_name}#{separator}#{method_name}"
|
26
|
+
else
|
27
|
+
name = payload_object.class.name
|
28
|
+
end
|
29
|
+
ctx = StackifyRubyAPM::Context.new
|
30
|
+
ctx.category = 'Delayed::Job'
|
31
|
+
transaction = StackifyRubyAPM.transaction name, 'TASK', context: ctx
|
32
|
+
ret = invoke_job_without_apm(*args, &block)
|
33
|
+
rescue StackifyRubyAPM::InternalError
|
34
|
+
raise # Don't report StackifyRubyAPM errors
|
35
|
+
rescue StandardError => e
|
36
|
+
StackifyRubyAPM.report e
|
37
|
+
raise e
|
38
|
+
ensure
|
39
|
+
transaction.submit()
|
40
|
+
end
|
41
|
+
ret
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
register 'Delayed::Backend::Base', 'delayed/backend/base', DelayedJobSpy.new
|
48
|
+
end
|
49
|
+
end
|
data/lib/stackify_apm/version.rb
CHANGED
data/stackify-ruby-apm.gemspec
CHANGED
@@ -54,6 +54,7 @@ Gem::Specification.new do |spec|
|
|
54
54
|
spec.add_development_dependency 'timecop'
|
55
55
|
spec.add_development_dependency 'to_bool'
|
56
56
|
spec.add_development_dependency 'webmock'
|
57
|
+
spec.add_development_dependency 'delayed_job'
|
57
58
|
|
58
59
|
spec.add_dependency('concurrent-ruby', '~> 1.0')
|
59
60
|
spec.add_dependency('delegate_matcher', '~> 0.4')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stackify-ruby-apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.
|
4
|
+
version: 1.10.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stackify
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -332,6 +332,20 @@ dependencies:
|
|
332
332
|
- - ">="
|
333
333
|
- !ruby/object:Gem::Version
|
334
334
|
version: '0'
|
335
|
+
- !ruby/object:Gem::Dependency
|
336
|
+
name: delayed_job
|
337
|
+
requirement: !ruby/object:Gem::Requirement
|
338
|
+
requirements:
|
339
|
+
- - ">="
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
version: '0'
|
342
|
+
type: :development
|
343
|
+
prerelease: false
|
344
|
+
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
requirements:
|
346
|
+
- - ">="
|
347
|
+
- !ruby/object:Gem::Version
|
348
|
+
version: '0'
|
335
349
|
- !ruby/object:Gem::Dependency
|
336
350
|
name: concurrent-ruby
|
337
351
|
requirement: !ruby/object:Gem::Requirement
|
@@ -457,6 +471,7 @@ files:
|
|
457
471
|
- lib/stackify_apm/spies/curb/easy.rb
|
458
472
|
- lib/stackify_apm/spies/curb/multi.rb
|
459
473
|
- lib/stackify_apm/spies/custom_instrumenter.rb
|
474
|
+
- lib/stackify_apm/spies/delayed_job.rb
|
460
475
|
- lib/stackify_apm/spies/httparty.rb
|
461
476
|
- lib/stackify_apm/spies/httpclient.rb
|
462
477
|
- lib/stackify_apm/spies/httprb.rb
|