Module: LogBrew::SpanEvents

Defined in:
lib/logbrew/span_events.rb

Class Method Summary collapse

Class Method Details

.validate(events) ⇒ Object

Raises:



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/logbrew/span_events.rb', line 10

def validate(events)
  return nil if events.nil?
  raise SdkError.new("validation_error", "span events must be an array") unless events.is_a?(Array)
  raise SdkError.new("validation_error", "span events must contain at most #{LIMIT} entries") if events.length > LIMIT
  return nil if events.empty?

  events.map.with_index do |event, index|
    raise SdkError.new("validation_error", "span event #{index} must be an object") unless event.is_a?(Hash)

    event_name = Validation.read(event, "name")
    Validation.require_non_empty("span event name", event_name)
    event_timestamp = Validation.read(event, "timestamp")
    Validation.require_timestamp(event_timestamp) unless event_timestamp.nil?
     = Validation.(Validation.read(event, "metadata"))

    {
      "name" => event_name
    }.tap do |payload|
      payload["timestamp"] = event_timestamp unless event_timestamp.nil?
      payload["metadata"] =  unless .nil?
    end
  end
end