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