Class: Jaeger::Client::Span

Inherits:
Object
  • Object
show all
Defined in:
lib/jaeger/client/span.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context, operation_name, collector, start_time: Time.now, tags: {}) ⇒ Span

Creates a new Jaeger::Client::Span

Parameters:

  • context (SpanContext)

    the context of the span

  • context (String)

    the operation name

  • collector (Collector)

    span collector



15
16
17
18
19
20
21
22
# File 'lib/jaeger/client/span.rb', line 15

def initialize(context, operation_name, collector, start_time: Time.now, tags: {})
  @context = context
  @operation_name = operation_name
  @collector = collector
  @start_time = start_time
  @tags = tags
  @logs = []
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



6
7
8
# File 'lib/jaeger/client/span.rb', line 6

def context
  @context
end

#logsObject (readonly)

Returns the value of attribute logs.



6
7
8
# File 'lib/jaeger/client/span.rb', line 6

def logs
  @logs
end

#operation_nameObject

Returns the value of attribute operation_name.



4
5
6
# File 'lib/jaeger/client/span.rb', line 4

def operation_name
  @operation_name
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



6
7
8
# File 'lib/jaeger/client/span.rb', line 6

def start_time
  @start_time
end

#tagsObject (readonly)

Returns the value of attribute tags.



6
7
8
# File 'lib/jaeger/client/span.rb', line 6

def tags
  @tags
end

Instance Method Details

#finish(end_time: Time.now) ⇒ Object

Parameters:

  • end_time (Time) (defaults to: Time.now)

    custom end time, if not now



61
62
63
# File 'lib/jaeger/client/span.rb', line 61

def finish(end_time: Time.now)
  @collector.send_span(self, end_time)
end

#get_baggage_item(key) ⇒ Object

Get a baggage item

Parameters:

  • key (String)

    the key of the baggage item

Returns:

  • Value of the baggage item



46
47
48
# File 'lib/jaeger/client/span.rb', line 46

def get_baggage_item(key)
  nil
end

#log(timestamp: Time.now, **fields) ⇒ Object

Add a log entry to this span

Parameters:

  • timestamp (Time) (defaults to: Time.now)

    time of the log

  • fields (Hash)

    Additional information to log



54
55
56
# File 'lib/jaeger/client/span.rb', line 54

def log(timestamp: Time.now, **fields)
  @logs << {timestamp: timestamp, fields: fields}
end

#set_baggage_item(key, value) ⇒ Object

Set a baggage item on the span

Parameters:

  • key (String)

    the key of the baggage item

  • value (String)

    the value of the baggage item



37
38
39
# File 'lib/jaeger/client/span.rb', line 37

def set_baggage_item(key, value)
  self
end

#set_tag(key, value) ⇒ Object

Set a tag value on this span

a String, Numeric, or Boolean it will be encoded with to_s

Parameters:

  • key (String)

    the key of the tag

  • value (String, Numeric, Boolean)

    the value of the tag. If it’s not



29
30
31
# File 'lib/jaeger/client/span.rb', line 29

def set_tag(key, value)
  @tags = @tags.merge(key => value)
end