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