1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Merge pull request #14137 from dasch/better-fragment-cache-instrumentation

Add controller and action name to the fragment caching instrumentation payload

Conflicts:
	actionpack/CHANGELOG.md
This commit is contained in:
Rafael Mendonça França 2014-05-14 20:04:43 -03:00
commit f2bff250a0
3 changed files with 31 additions and 1 deletions

View file

@ -1,3 +1,11 @@
* Instrument fragment cache metrics.
Adds `:controller`: and `:action` keys to the instrumentation payload
for the `*_fragment.action_controller` notifications. This allows tracking
e.g. the fragment cache hit rates for each controller action.
*Daniel Schierbeck*
* Always use the provided port if the protocol is relative.
Fixes #15043.

View file

@ -90,7 +90,13 @@ module ActionController
end
def instrument_fragment_cache(name, key) # :nodoc:
ActiveSupport::Notifications.instrument("#{name}.action_controller", :key => key){ yield }
payload = {
controller: controller_name,
action: action_name,
key: key
}
ActiveSupport::Notifications.instrument("#{name}.action_controller", payload) { yield }
end
end
end

View file

@ -227,6 +227,22 @@ CACHED
@store.read("views/test.host/functional_caching/inline_fragment_cached/#{template_digest("functional_caching/inline_fragment_cached")}"))
end
def test_fragment_cache_instrumentation
payload = nil
subscriber = proc do |*args|
event = ActiveSupport::Notifications::Event.new(*args)
payload = event.payload
end
ActiveSupport::Notifications.subscribed(subscriber, "read_fragment.action_controller") do
get :inline_fragment_cached
end
assert_equal "functional_caching", payload[:controller]
assert_equal "inline_fragment_cached", payload[:action]
end
def test_html_formatted_fragment_caching
get :formatted_fragment_cached, :format => "html"
assert_response :success