Class: Observable::Persistence::Span

Inherits:
Dry::Struct
  • Object
show all
Defined in:
lib/observable/persistence/span.rb

Constant Summary collapse

RESET =

ANSI Color constants

"\e[0m"
BOLD =
"\e[1m"
DIM =
"\e[2m"
CYAN =
"\e[36m"
YELLOW =
"\e[33m"
GREEN =
"\e[32m"
BLUE =
"\e[34m"
MAGENTA =
"\e[35m"
WHITE =
"\e[37m"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_span_or_spandata(span_or_spandata) ⇒ Object



53
54
55
56
57
58
59
# File 'lib/observable/persistence/span.rb', line 53

def self.from_span_or_spandata(span_or_spandata)
  if span_or_spandata.is_a?(Span)
    span_or_spandata
  else
    from_spandata(span_or_spandata)
  end
end

.from_spandata(span_or_spandata) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/observable/persistence/span.rb', line 43

def self.from_spandata(span_or_spandata)
  new(
    id: span_or_spandata.hex_span_id,
    trace_id: span_or_spandata.hex_trace_id,
    name: span_or_spandata.name,
    kind: span_or_spandata.kind,
    attrs: span_or_spandata.attributes
  )
end

Instance Method Details

#aiObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/observable/persistence/span.rb', line 65

def ai
  output = []
  output << "  #{colorize(name, CYAN, BOLD)}"
  output << "  id: #{colorize(id, WHITE)}"

  if attrs.any?
    attrs.each do |key, value|
      output << "    #{colorize(key, YELLOW)}: #{colorize_value(value)}"
    end
  end

  output << ""
  output.join("\n")
end

#code_namespaceObject



31
32
33
# File 'lib/observable/persistence/span.rb', line 31

def code_namespace
  attrs["code.namespace"] || attrs["messaging.sidekiq.job_class"] || ""
end

#consumer?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/observable/persistence/span.rb', line 39

def consumer?
  kind == :consumer
end

#hex_span_idObject



27
28
29
# File 'lib/observable/persistence/span.rb', line 27

def hex_span_id
  id
end

#hex_trace_idObject



23
24
25
# File 'lib/observable/persistence/span.rb', line 23

def hex_trace_id
  trace_id
end

#inspectObject



61
62
63
# File 'lib/observable/persistence/span.rb', line 61

def inspect
  ai
end

#producer?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/observable/persistence/span.rb', line 35

def producer?
  kind == :producer
end