diff --git a/CHANGELOG.md b/CHANGELOG.md index ff0d3cf..24db3a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ - Added `multi_search` method - Added support for routing for Elasticsearch 2 - Added support for `search_document_id` and `search_document_type` in models +- Fixed error with instrumentation for searching multiple models - Fixed instrumentation for bulk updates ## 1.2.0 diff --git a/lib/searchkick.rb b/lib/searchkick.rb index 5018fff..719d729 100644 --- a/lib/searchkick.rb +++ b/lib/searchkick.rb @@ -9,7 +9,7 @@ require "searchkick/reindex_job" require "searchkick/model" require "searchkick/tasks" require "searchkick/middleware" -require "searchkick/logging" if defined?(Rails) +require "searchkick/logging" if defined?(ActiveSupport::Notifications) # background jobs begin diff --git a/lib/searchkick/logging.rb b/lib/searchkick/logging.rb index b23b99d..12190b3 100644 --- a/lib/searchkick/logging.rb +++ b/lib/searchkick/logging.rb @@ -1,10 +1,12 @@ # based on https://gist.github.com/mnutt/566725 +require "active_support/core_ext/module/attr_internal" module Searchkick module QueryWithInstrumentation def execute_search + name = searchkick_klass ? "#{searchkick_klass.name} Search" : "Search" event = { - name: "#{searchkick_klass.name} Search", + name: name, query: params } ActiveSupport::Notifications.instrument("search.searchkick", event) do @@ -29,8 +31,9 @@ module Searchkick end def remove(record) + name = record && record.searchkick_klass ? "#{record.searchkick_klass.name} Remove" : "Remove" event = { - name: "#{record.searchkick_klass.name} Remove", + name: name, id: search_id(record) } if Searchkick.callbacks_value == :bulk diff --git a/test/test_helper.rb b/test/test_helper.rb index 008fc6b..df34dea 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -4,13 +4,15 @@ require "minitest/autorun" require "minitest/pride" require "logger" require "active_support/core_ext" if defined?(NoBrainer) +require "active_support/logger" +require "active_support/notifications" ENV["RACK_ENV"] = "test" Minitest::Test = Minitest::Unit::TestCase unless defined?(Minitest::Test) File.delete("elasticsearch.log") if File.exist?("elasticsearch.log") -Searchkick.client.transport.logger = Logger.new("elasticsearch.log") +Searchkick.client.transport.logger = ActiveSupport::Logger.new("elasticsearch.log") Searchkick.search_timeout = 5 puts "Running against Elasticsearch #{Searchkick.server_version}" @@ -18,6 +20,7 @@ puts "Running against Elasticsearch #{Searchkick.server_version}" I18n.config.enforce_available_locales = true ActiveJob::Base.logger = nil if defined?(ActiveJob) +# ActiveSupport::LogSubscriber.logger = ActiveSupport::Logger.new(STDOUT) def elasticsearch2? Searchkick.server_version.starts_with?("2.") -- libgit2 0.21.0