Method: Sentry::Transport#serialize_envelope

Defined in:
lib/sentry/transport.rb

#serialize_envelope(envelope) ⇒ Object

[View source]

69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/sentry/transport.rb', line 69

def serialize_envelope(envelope)
  serialized_items = []
  serialized_results = []

  envelope.items.each do |item|
    result, oversized = item.serialize

    if oversized
      log_debug("Envelope item [#{item.type}] is still oversized after size reduction: {#{item.size_breakdown}}")

      next
    end

    serialized_results << result
    serialized_items << item
  end

  data = [JSON.generate(envelope.headers), *serialized_results].join("\n") unless serialized_results.empty?

  [data, serialized_items]
end