Come avere ActiveSupport::Notification a inizio/fine?

Eil,

stavo smanettando con un simpatico plugin per rails per tracciare come
viene speso il tempo durante una richiesta, e mostrarlo direttamente
in browser.

La cosa funzionicchia ma ho un problema: vorrei tracciare quello che
succede a diversi livelli di profondit es:

controller
render tutto
render contenuto vista
render partial
render altro partial
render layout

etc…

In teoria ActiveSupport ha le notification per questo scopo, il
problema gli eventi vengono mandati solo alla fine, per quel che
capisco io.

Esempio, voglio tracciare X durante il rendering della pagina, vorrei
fare, con un api ipotetica

  count = nil
  ActiveSupport::Notifications.subscribe /render/, :start do

|name, id, payload|
count = 0
start_tracking do |an_x| count+=1 end
end

  ActiveSupport::Notifications.subscribe /render/, :end do |name,

id, payload|
puts “X invoked #{count} times”
stop_tracking
end

il problema che l’API di ActiveSupport::Notification mi manda gli
event quando sono gi finiti (a intervallo) e quindi non posso
correlarli direttamente con quello che traccerei in #track_xs (nota:
alcuni eventi invece sono apparentemte fatti come dico io, tipo quelli
di start/end action processing)

A parte un monkey patching brutale di #subscribe qualcuno ha idee
alternative?
C’ un modo ovvio di fare questa cosa che io non ho capito?