lib/appsignal-elasticsearch.rb in appsignal-elasticsearch-0.0.3 vs lib/appsignal-elasticsearch.rb in appsignal-elasticsearch-0.0.4
- old
+ new
@@ -1,24 +1,48 @@
-require 'appsignal/elasticsearch'
+require 'elasticsearch'
+require 'active_support'
+
+module Appsignal
+ module Elasticsearch
+ module Instrumentation
+
+ def perform_request_with_appsignal_instrumentation(method, path, params, body, &block)
+ args = { method: method, path: path, params: params, body: body }
+ ActiveSupport::Notifications.instrument(
+ 'query.elasticsearch', :query => args) do
+ perform_request_without_appsignal_instrumentation(method, path, params, body, &block)
+ end
+ end
+
+ end
+ end
+end
+
+::Elasticsearch::Transport::Client.class_eval do
+ include Appsignal::Elasticsearch::Instrumentation
+
+ alias_method :perform_request_without_appsignal_instrumentation, :perform_request
+ alias_method :perform_request, :perform_request_with_appsignal_instrumentation
+end