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