Module: Datadog::Contrib::ActiveSupport::Cache::Instrumentation::Fetch

Defined in:
lib/ddtrace/contrib/active_support/cache/instrumentation.rb

Overview

Defines instrumentation for ActiveSupport cache fetching

Instance Method Summary collapse

Instance Method Details

#fetch(*args, &block) ⇒ Object



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/ddtrace/contrib/active_support/cache/instrumentation.rb', line 141

def fetch(*args, &block)
  payload = {
    action: Ext::RESOURCE_CACHE_GET,
    key: args[0],
    tracing_context: {}
  }

  begin
    # process and catch cache exceptions
    Instrumentation.start_trace_cache(payload)
    super
  rescue Exception => e
    payload[:exception] = [e.class.name, e.message]
    payload[:exception_object] = e
    raise e
  end
ensure
  Instrumentation.finish_trace_cache(payload)
end