class XRay::Subsegment
The work done in a single segment can be broke down into subsegments. Subsegments provide more granular timing information and details about downstream calls that your application made to fulfill the original request. A subsegment can contain additional details about a call to an AWS service, an external HTTP API, or an SQL database.
Attributes
segment[R]
sql[RW]
Public Class Methods
new(name:, segment:, namespace: 'local')
click to toggle source
@param [String] name The subsegment name. @param [Segment] segment The root parent segment. This segment
may not be its direct parent.
@param [String] namespace Currently supported namespaces are
'remote', 'aws', 'local'.
# File lib/aws-xray-sdk/model/subsegment.rb, line 20 def initialize(name:, segment:, namespace: 'local') @name = name @segment = segment @namespace = namespace @start_time = Time.now.to_f @sampled = true end
Public Instance Methods
add_subsegment(subsegment:)
click to toggle source
Calls superclass method
XRay::Entity#add_subsegment
# File lib/aws-xray-sdk/model/subsegment.rb, line 28 def add_subsegment(subsegment:) super subsegment: subsegment segment.ref_counter += 1 segment.subsegment_size += 1 end
all_children_count()
click to toggle source
Returns the number of its direct and indirect children. This is useful when we remove the reference to a subsegment and need to keep remaining subsegment size accurate.
# File lib/aws-xray-sdk/model/subsegment.rb, line 52 def all_children_count size = subsegments.count subsegments.each { |v| size += v.all_children_count } size end
close(end_time: nil)
click to toggle source
Calls superclass method
XRay::Entity#close
# File lib/aws-xray-sdk/model/subsegment.rb, line 40 def close(end_time: nil) super end_time: end_time segment.decrement_ref_counter end
remove_subsegment(subsegment:)
click to toggle source
Calls superclass method
XRay::Entity#remove_subsegment
# File lib/aws-xray-sdk/model/subsegment.rb, line 34 def remove_subsegment(subsegment:) super subsegment: subsegment cur = segment.subsegment_size segment.subsegment_size = cur - subsegment.all_children_count - 1 end
to_h()
click to toggle source
Calls superclass method
XRay::Entity#to_h
# File lib/aws-xray-sdk/model/subsegment.rb, line 58 def to_h h = super h[:trace_id] = segment.trace_id h[:sql] = sql unless sql.empty? h[:type] = 'subsegment' h[:namespace] = namespace if namespace h end