Module: ROM::Plugins::Relation::SQL::Instrumentation

Extended by:
Notifications::Listener
Defined in:
lib/rom/plugins/relation/sql/instrumentation.rb

Overview

Instrumentation for relations and commands

This plugin allows configuring a notification system, that will be used to instrument interactions with databases, it's based on an abstract API so it should work with any instrumentation object that provides instrument(identifier, payload) method.

By default, instrumentation is triggered with following arguments:

- `identifier` is set to `:sql`
- `payload` is set to a hash with following keys:
- `:name` database type, ie `:sqlite`, `:postgresql` etc.
- `:query` a string with an SQL statement that was executed

Examples:

configuring notifications

config = ROM::Configuration.new(:sqlite, 'sqlite::memory')

config.plugin(:sql, relations: :instrumentation) do |c|
  c.notifications = MyNotifications.new
end

Defined Under Namespace

Classes: Instrumenter

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Add :notifications option to a relation



92
93
94
95
# File 'lib/rom/plugins/relation/sql/instrumentation.rb', line 92

def self.included(klass)
  super
  klass.option :notifications
end