Method: Aws::Xray::Context#start_subsegment

Defined in:
lib/aws/xray/context.rb

#start_subsegment(remote:, name:) {|Aws::Xray::Subsegment| ... } ⇒ Object Also known as: child_trace

Use ‘Aws::Xray.start_subsegment` instead of this.

Parameters:

  • remote (Boolean)
  • name (String)

    Arbitrary name of the sub segment. e.g. “funccall_f”.

Yields:

Returns:

  • (Object)

    A value which given block returns.

Raises:



96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/aws/xray/context.rb', line 96

def start_subsegment(remote:, name:)
  raise SegmentDidNotStartError unless @base_segment_id
  sub = Subsegment.build(@trace, @base_segment_id, remote: remote, name: overwrite_name(name))

  begin
    yield sub
  rescue Exception => e
    sub.set_error(fault: true, e: e)
    raise e
  ensure
    sub.finish unless sub.finished?
    Client.send_segment(sub) if @trace.sampled?
  end
end