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



82
83
84
85
# File 'lib/rom/plugins/relation/sql/instrumentation.rb', line 82

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