Module: Lapsoss::Adapters::Concerns::StacktraceBuilder
- Extended by:
- ActiveSupport::Concern
- Included in:
- OtlpAdapter
- Defined in:
- lib/lapsoss/adapters/concerns/stacktrace_builder.rb
Overview
Shared stacktrace building logic for adapters Provides consistent frame formatting across Sentry, OpenObserve, OTLP, etc.
Instance Method Summary collapse
-
#build_frame(frame) ⇒ Hash
Build a single frame hash from a BacktraceFrame.
-
#build_frames(event, reverse: false) ⇒ Array<Hash>
Build frames from event backtrace.
-
#build_raw_stacktrace(event) ⇒ Array<String>
Build raw stacktrace string for logging/simple formats.
-
#build_stacktrace_string(event) ⇒ String
Build stacktrace as single string (for OTLP exception.stacktrace).
Instance Method Details
#build_frame(frame) ⇒ Hash
Build a single frame hash from a BacktraceFrame
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/lapsoss/adapters/concerns/stacktrace_builder.rb', line 28 def build_frame(frame) frame_hash = { filename: frame.filename, abs_path: frame.absolute_path || frame.filename, function: frame.method_name || frame.function, lineno: frame.line_number, in_app: frame.in_app } add_code_context(frame_hash, frame) if frame.code_context.present? frame_hash.compact end |
#build_frames(event, reverse: false) ⇒ Array<Hash>
Build frames from event backtrace
18 19 20 21 22 23 |
# File 'lib/lapsoss/adapters/concerns/stacktrace_builder.rb', line 18 def build_frames(event, reverse: false) return [] unless event.has_backtrace? frames = event.backtrace_frames.map { |frame| build_frame(frame) } reverse ? frames.reverse : frames end |
#build_raw_stacktrace(event) ⇒ Array<String>
Build raw stacktrace string for logging/simple formats
45 46 47 48 49 50 51 |
# File 'lib/lapsoss/adapters/concerns/stacktrace_builder.rb', line 45 def build_raw_stacktrace(event) return [] unless event.has_backtrace? event.backtrace_frames.map do |frame| "#{frame.absolute_path || frame.filename}:#{frame.line_number} in `#{frame.method_name}`" end end |
#build_stacktrace_string(event) ⇒ String
Build stacktrace as single string (for OTLP exception.stacktrace)
56 57 58 |
# File 'lib/lapsoss/adapters/concerns/stacktrace_builder.rb', line 56 def build_stacktrace_string(event) build_raw_stacktrace(event).join("\n") end |