Method: Sentry::Scope#apply_to_event

Defined in:
lib/sentry/scope.rb

#apply_to_event(event, hint = nil) ⇒ Event

Applies stored attributes and event processors to the given event.

Parameters:

  • event (Event)
  • hint (Hash) (defaults to: nil)

    the hint data that’ll be passed to event processors.

Returns:

[View source]

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/sentry/scope.rb', line 48

def apply_to_event(event, hint = nil)
  unless event.is_a?(CheckInEvent)
    event.tags = tags.merge(event.tags)
    event.user = user.merge(event.user)
    event.extra = extra.merge(event.extra)
    event.contexts = contexts.merge(event.contexts)
    event.transaction = transaction_name if transaction_name
    event.transaction_info = { source: transaction_source } if transaction_source
    event.fingerprint = fingerprint
    event.level = level
    event.breadcrumbs = breadcrumbs
    event.rack_env = rack_env if rack_env
    event.attachments = attachments
  end

  if span
    event.contexts[:trace] ||= span.get_trace_context
    event.dynamic_sampling_context ||= span.get_dynamic_sampling_context
  else
    event.contexts[:trace] ||= propagation_context.get_trace_context
    event.dynamic_sampling_context ||= propagation_context.get_dynamic_sampling_context
  end

  all_event_processors = self.class.global_event_processors + @event_processors

  unless all_event_processors.empty?
    all_event_processors.each do |processor_block|
      event = processor_block.call(event, hint)
    end
  end

  event
end