class OpenTracingTestTracer::Span
Attributes
NOTE: These are not OT compliant. These are meant only for testing.
NOTE: These are not OT compliant. These are meant only for testing.
NOTE: These are not OT compliant. These are meant only for testing.
NOTE: These are not OT compliant. These are meant only for testing.
NOTE: These are not OT compliant. These are meant only for testing.
Public Class Methods
# File lib/signalfx_test_tracer/span.rb, line 10 def initialize( context:, operation_name:, start_time: Time.now, tags: {}, references: nil, tracer: nil ) @context = context @operation_name = operation_name @start_time = start_time @tags = tags @logs = [] @references = references @tracer = tracer end
Public Instance Methods
Finish the {Span}
@param end_time
[Time] custom end time, if not now
# File lib/signalfx_test_tracer/span.rb, line 88 def finish(end_time: Time.now) @end_time = end_time end
NOTE: This is not OT compliant. This is meant only for testing.
# File lib/signalfx_test_tracer/span.rb, line 102 def finished? @end_time != nil end
Get a baggage item
@param key [String] the key of the baggage item
@return Value of the baggage item
# File lib/signalfx_test_tracer/span.rb, line 54 def get_baggage_item(_key) nil end
Add a log entry to this span
@deprecated Use {#log_kv} instead.
# File lib/signalfx_test_tracer/span.rb, line 61 def log(*args) warn 'Span#log is deprecated. Please use Span#log_kv instead.' log_kv(*args) end
Add a log entry to this span
@param timestamp [Time] time of the log @param fields [Hash] Additional information to log
# File lib/signalfx_test_tracer/span.rb, line 70 def log_kv(timestamp: Time.now, **fields) @logs << fields.merge(timestamp: timestamp) nil end
Record an exception on this span
# File lib/signalfx_test_tracer/span.rb, line 76 def record_exception(exception, record_error=true) set_tag(:error, true) if record_error set_tag(:'sfx.error.kind', exception.class.to_s) set_tag(:'sfx.error.message', exception.message) if not exception.backtrace.nil? set_tag(:'sfx.error.stack', exception.backtrace.join('\n')) end end
Set a baggage item on the span
@param key [String] the key of the baggage item @param value [String] the value of the baggage item
# File lib/signalfx_test_tracer/span.rb, line 45 def set_baggage_item(_key, _value) self end
Set a tag value on this span
@param key [String] the key of the tag @param value [String, Numeric, Boolean] the value of the tag. If it's not a String, Numeric, or Boolean it will be encoded with to_s
# File lib/signalfx_test_tracer/span.rb, line 36 def set_tag(key, value) sanitized_value = valid_tag_value?(value) ? value : value.to_s @tags = @tags.merge(key.to_s => sanitized_value) end
# File lib/signalfx_test_tracer/span.rb, line 92 def to_s "Span(operation_name=#{@operation_name}, " \ "tags=#{@tags}, " \ "logs=#{@logs}, " \ "start_time=#{@start_time}, " \ "end_time=#{@end_time}, " \ "context=#{@context})" end
# File lib/signalfx_test_tracer/span.rb, line 27 def tracer @tracer end
Private Instance Methods
# File lib/signalfx_test_tracer/span.rb, line 108 def valid_tag_value?(value) value.is_a?(String) || value.is_a?(Numeric) || value.is_a?(TrueClass) || value.is_a?(FalseClass) end