Class: NurseAndrea::InstrumentationSubscriber
- Inherits:
-
Object
- Object
- NurseAndrea::InstrumentationSubscriber
- Defined in:
- lib/nurse_andrea/instrumentation_subscriber.rb
Constant Summary collapse
- SUBSCRIPTIONS =
{ "sql.active_record" => :on_sql, "transaction.active_record" => :on_transaction, "cache_read.active_support" => :on_cache_read, "cache_write.active_support" => :on_cache_write, "cache_delete.active_support" => :on_cache_delete, "perform.active_job" => :on_job_perform, "enqueue.active_job" => :on_job_enqueue, "deliver.action_mailer" => :on_mailer, }.freeze
Instance Attribute Summary collapse
-
#discovered_components ⇒ Object
readonly
Returns the value of attribute discovered_components.
-
#telemetry ⇒ Object
readonly
Returns the value of attribute telemetry.
Instance Method Summary collapse
-
#initialize ⇒ InstrumentationSubscriber
constructor
A new instance of InstrumentationSubscriber.
- #subscribe_all ⇒ Object
Constructor Details
#initialize ⇒ InstrumentationSubscriber
Returns a new instance of InstrumentationSubscriber.
22 23 24 25 26 |
# File 'lib/nurse_andrea/instrumentation_subscriber.rb', line 22 def initialize @telemetry = ComponentTelemetry.new @discovered_components = Set.new @subscribed = false end |
Instance Attribute Details
#discovered_components ⇒ Object (readonly)
Returns the value of attribute discovered_components.
20 21 22 |
# File 'lib/nurse_andrea/instrumentation_subscriber.rb', line 20 def discovered_components @discovered_components end |
#telemetry ⇒ Object (readonly)
Returns the value of attribute telemetry.
20 21 22 |
# File 'lib/nurse_andrea/instrumentation_subscriber.rb', line 20 def telemetry @telemetry end |
Instance Method Details
#subscribe_all ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/nurse_andrea/instrumentation_subscriber.rb', line 28 def subscribe_all return if @subscribed return unless defined?(ActiveSupport::Notifications) SUBSCRIPTIONS.each do |event_name, handler| ActiveSupport::Notifications.monotonic_subscribe(event_name) do |event| begin send(handler, event) rescue => e NurseAndrea.debug("[InstrumentationSubscriber] #{handler} error: #{e.}") end end end @subscribed = true end |