Module: Elasticsearch::Rails::Instrumentation::Publishers::SearchRequest

Defined in:
lib/elasticsearch/rails/instrumentation/publishers.rb

Overview

Wraps the ‘SearchRequest` methods to perform the instrumentation

See Also:

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/elasticsearch/rails/instrumentation/publishers.rb', line 13

def self.included(base)
  base.class_eval do
    alias_method :execute_without_instrumentation!, :execute!

    def execute!
      execute_with_instrumentation!
    end

    # Wrap `Search#execute!` and perform instrumentation
    #
    def execute_with_instrumentation!
      ActiveSupport::Notifications.instrument "search.elasticsearch",
        name:   'Search',
        klass:  (self.klass.is_a?(Elasticsearch::Model::Proxy::ClassMethodsProxy) ? self.klass.target.to_s : self.klass.to_s),
        search: self.definition do
        execute_without_instrumentation!
      end
    end
  end
end