module ViewComponent::Instrumentation
def self.included(mod)
def self.included(mod) mod.prepend(self) unless self <= ViewComponent::Instrumentation end
def around_render
def around_render result = super @__vc_instrumentation_view_identifier = current_template&.path result end
def render_in(view_context, **_, &block)
def render_in(view_context, **_, &block) return super if !Rails.application.config.view_component.instrumentation_enabled.present? payload = { name: self.class.name, identifier: self.class.identifier, view_identifier: nil } ActiveSupport::Notifications.instrument( "render.view_component", payload ) do result = super payload[:view_identifier] = @__vc_instrumentation_view_identifier result end ensure @__vc_instrumentation_view_identifier = nil end