class Sentry::Rails::Tracing::ActiveSupportSubscriber
def self.operation_name(event_name)
def self.operation_name(event_name) case when READ_EVENT_NAMES.include?(event_name) "cache.get" when WRITE_EVENT_NAMES.include?(event_name) "cache.put" when REMOVE_EVENT_NAMES.include?(event_name) "cache.remove" when FLUSH_EVENT_NAMES.include?(event_name) "cache.flush" else "other" end end
def self.subscribe!
def self.subscribe! subscribe_to_event(EVENT_NAMES) do |event_name, duration, payload| record_on_current_span( op: operation_name(event_name), origin: SPAN_ORIGIN, start_timestamp: payload[START_TIMESTAMP_NAME], description: payload[:store], duration: duration ) do |span| span.set_data("cache.key", [*payload[:key]].select { |key| Utils::EncodingHelper.valid_utf_8?(key) }) span.set_data("cache.hit", payload[:hit] == true) # Handle nil case end end end