lib/searchkick/logging.rb in searchkick-4.1.1 vs lib/searchkick/logging.rb in searchkick-4.2.0
- old
+ new
@@ -130,11 +130,11 @@
module SearchkickWithInstrumentation
def multi_search(searches)
event = {
name: "Multi Search",
- body: searches.flat_map { |q| [q.params.except(:body).to_json, q.body.to_json] }.map { |v| "#{v}\n" }.join
+ body: searches.flat_map { |q| [q.params.except(:body).to_json, q.body.to_json] }.map { |v| "#{v}\n" }.join,
}
ActiveSupport::Notifications.instrument("multi_search.searchkick", event) do
super
end
end
@@ -160,18 +160,21 @@
self.class.runtime += event.duration
return unless logger.debug?
payload = event.payload
name = "#{payload[:name]} (#{event.duration.round(1)}ms)"
- type = payload[:query][:type]
+
index = payload[:query][:index].is_a?(Array) ? payload[:query][:index].join(",") : payload[:query][:index]
+ type = payload[:query][:type]
+ request_params = payload[:query].except(:index, :type, :body)
- # no easy way to tell which host the client will use
- host = Searchkick.client.transport.hosts.first
- params = ["pretty"]
- params << "scroll=#{payload[:query][:scroll]}" if payload[:query][:scroll]
- debug " #{color(name, YELLOW, true)} curl #{host[:protocol]}://#{host[:host]}:#{host[:port]}/#{CGI.escape(index)}#{type ? "/#{type.map { |t| CGI.escape(t) }.join(',')}" : ''}/_search?#{params.join('&')} -H 'Content-Type: application/json' -d '#{payload[:query][:body].to_json}'"
+ params = []
+ request_params.each do |k, v|
+ params << "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
+ end
+
+ debug " #{color(name, YELLOW, true)} #{index}#{type ? "/#{type.join(',')}" : ''}/_search#{params.any? ? '?' + params.join('&') : nil} #{payload[:query][:body].to_json}"
end
def request(event)
self.class.runtime += event.duration
return unless logger.debug?
@@ -187,12 +190,10 @@
return unless logger.debug?
payload = event.payload
name = "#{payload[:name]} (#{event.duration.round(1)}ms)"
- # no easy way to tell which host the client will use
- host = Searchkick.client.transport.hosts.first
- debug " #{color(name, YELLOW, true)} curl #{host[:protocol]}://#{host[:host]}:#{host[:port]}/_msearch?pretty -H 'Content-Type: application/json' -d '#{payload[:body]}'"
+ debug " #{color(name, YELLOW, true)} _msearch #{payload[:body]}"
end
end
# https://github.com/rails/rails/blob/master/activerecord/lib/active_record/railties/controller_runtime.rb
module ControllerRuntime