Class: TingYun::Instrumentation::MiddlewareProxy
- Inherits:
-
Object
- Object
- TingYun::Instrumentation::MiddlewareProxy
show all
- Includes:
- MiddlewareTracing
- Defined in:
- lib/ting_yun/instrumentation/middleware_proxy.rb
Constant Summary
TingYun::Instrumentation::MiddlewareTracing::CONTENT_TYPE, TingYun::Instrumentation::MiddlewareTracing::TXN_STARTED_KEY
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#_nr_has_middleware_tracing, #build_transaction_options, #call, #capture_http_response_code, #capture_response_content_type, #events, #merge_first_middleware_options, #note_transaction_started, #sinatra_static?
Constructor Details
#initialize(target, is_app = false) ⇒ MiddlewareProxy
Returns a new instance of MiddlewareProxy.
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 31
def initialize(target, is_app=false)
@target = target
@is_app = is_app
@category = determine_category
@target_class_name = determine_class_name
@transaction_name = "#{determine_prefix}#{@target_class_name}/call"
@transaction_options = {
:transaction_name => @transaction_name
}
end
|
Instance Attribute Details
#category ⇒ Object
Returns the value of attribute category.
29
30
31
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 29
def category
@category
end
|
#target ⇒ Object
Returns the value of attribute target.
29
30
31
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 29
def target
@target
end
|
#transaction_options ⇒ Object
Returns the value of attribute transaction_options.
29
30
31
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 29
def transaction_options
@transaction_options
end
|
Class Method Details
.is_sinatra_app?(target) ⇒ Boolean
12
13
14
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 12
def self.is_sinatra_app?(target)
defined?(::Sinatra::Base) && target.kind_of?(::Sinatra::Base)
end
|
.needs_wrapping?(target) ⇒ Boolean
16
17
18
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 16
def self.needs_wrapping?(target)
!target.respond_to?(:_nr_has_middleware_tracing)
end
|
.wrap(target, is_app = false) ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 20
def self.wrap(target, is_app=false)
if needs_wrapping?(target)
self.new(target, is_app)
else
target
end
end
|
Instance Method Details
#class_for_target ⇒ Object
63
64
65
66
67
68
69
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 63
def class_for_target
if @target.is_a?(Class)
@target
else
@target.class
end
end
|
#determine_category ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 43
def determine_category
if @is_app
:rack
else
:middleware
end
end
|
#determine_class_name ⇒ Object
55
56
57
58
59
60
61
|
# File 'lib/ting_yun/instrumentation/middleware_proxy.rb', line 55
def determine_class_name
clazz = class_for_target
name = clazz.name
name = clazz.superclass.name if name.nil? || name == ""
name
end
|
#determine_prefix ⇒ Object